OpenQASM 3.0 を使用した逐語的なコンパイル - Amazon Braket

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OpenQASM 3.0 を使用した逐語的なコンパイル

Rigetti や IonQ などのベンダーで提供される量子コンピュータで量子回路を実行する場合、変更を加えることなく、回路を定義したとおりに正確に実行するようにコンパイラーに指示することができます。この機能は逐語的なコンパイルと呼ばれます。Rigetti デバイスを使用すると、回路全体または回路の特定部分のみで、保持されるものを正確に指定できます。回路の特定部分のみを保持するには、保持対象のリージョン内でネイティブゲートを使用する必要があります。現在、IonQ は回路全体の逐語的なコンパイルのみをサポートしているため、回路内のすべての命令を逐語的なボックスで囲む必要があります。

OpenQASM では、コードボックスの周囲に逐語的なプラグマを明示的に指定できます。このプラグマは、ハードウェアの低レベルコンパイルルーチンでは変更されず、最適化されません。次のコード例は、 #pragma braket verbatim ディレクティブを使用してこれを実現する方法を示しています。

OPENQASM 3; bit[2] c; #pragma braket verbatim box{ rx(0.314159) $0; rz(0.628318) $0, $1; cz $0, $1; } c[0] = measure $0; c[1] = measure $1;

例やベストプラクティスなど、逐語的なコンパイルプロセスの詳細については、amazon-braket-examples github リポジトリにある Verbatim compilation サンプルノートブックを参照してください。