本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Open 3.0 进行逐字编译 QASM
当你在供应商提供的量子计算机上运行量子电路时,例如 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;
有关逐字编译过程的更多详细信息,包括示例和最佳实践,请参阅 github 存储库中提供的 Verbatim 编译