Cirq¶
注意¶
我们仅记录与 Google 的 qsimcirq
不同的地方。有关更多信息,请查看 Google 的文档。有关使用 qsim 的信息,请参阅 其文档。有关开始使用带有 Cirq 的 NVIDIA cuQuantum Appliance 的信息,请访问 NGC 上的概述。
API 参考¶
qsimcirq.QSimOptions
¶
class QSimOptions:
max_fused_gate_size: int = 4
max_fused_diagonal_gate_size: int = -1
cpu_threads: int = 1
ev_noisy_repetitions: int = 1
disable_gpu: bool = False
gpu_mode: Union[int, Sequence[int]] = (0,)
gpu_network: int = 0
gpu_state_threads: int = 512
gpu_data_blocks: int = 16
verbosity: int = 0
denormals_are_zeros: bool = False
n_subsvs: int = -1
use_sampler: Union[bool, None] = None
关键词 |
描述 |
|
要使用的 GPU 模拟器后端。如果 |
|
状态向量分区的数量。除非使用多 GPU 后端,否则此选项将被忽略。如果 |
|
如果为 |
|
GPU 间数据传输网络的拓扑结构。启用多 GPU 支持时,此选项有效。支持的网络拓扑结构包括交换网络和全网状网络。如果指定为 0,则自动检测网络拓扑结构。如果指定为 1 或 2,则分别选择交换网络或全网状网络。交换网络旨在支持 DGX A100 和 DGX-2 中的 GPU 数据传输网络,其中所有 GPU 通过 NVLink 连接到 NVSwitch。通过 PCIe 交换机连接的 GPU 也被视为交换网络。全网状网络旨在支持 DGX Station A100/V100 中看到的 GPU 数据传输网络,其中所有设备通过 NVLink 直接连接。 |
|
是否禁用 GPU 模拟器后端。仅当此项为 |
|
每个融合对角门允许的最大量子比特数。除非使用 NGC 多 GPU 后端,否则此选项将被忽略。如果为 |
注意
NVIDIA cuQuantum Appliance 提供 GPU 和多 GPU 模拟器。如果需要在 qsimcirq 中运行 CPU 模拟器,建议使用 Google Quantum AI 团队 发布的 qsimcirq 包。如果需要在 NVIDIA cuQuantum Appliance 中安装的 CPU 后端,请指定选项 qsimcirq.QSimOptions(disable_gpu=True)
。
一些示例¶
options = qsimcirq.QSimOptions(gpu_mode=1) # use cuStateVec (single-GPU) backend
options = qsimcirq.QSimOptions(gpu_mode=(0,)) # use multi-GPU backend with GPU #0
options = qsimcirq.QSimOptions(gpu_mode=2) # use multi-GPU backend with the first 2 devices
options = qsimcirq.QSimOptions(gpu_mode=(0,2)) # use multi-GPU backend with GPU #0 & #2
options = qsimcirq.QSimOptions(gpu_mode=()) # use multi-GPU backend with GPU #0