你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft Quantum 开发工具包(QDK)包含一组量子模拟器,可用于在本地计算机上运行量子程序。 在将程序提交到Azure Quantum目标上运行之前,请使用本地模拟器迭代程序。
QDK 有四个模拟器。
- 稀疏模拟器
- Clifford模拟器
- GPU模拟器
- CPU模拟器
稀疏模拟器
稀疏模拟器是QDK中的默认模拟器。 此模拟器将量子比特状态表示为稀疏向量,以利用稀疏矩阵代数进行快速模拟,尤其是对于不生成许多叠加状态的程序。 如果希望快速模拟 Q#、 OpenQASM或 Qiskit 程序或在模拟期间显示程序的量子状态,请使用稀疏模拟器。
稀疏模拟器在Visual Studio Code(VS Code)和包的QDKPython扩展中QDK都可用。 此扩展中,只有此模拟器是可用的,因此当您在 VS Code 中运行QDKQ#程序时,编译器会自动调用稀疏模拟器。 使用 VS Code 中的稀疏模拟器,可以使用 Q#DumpMachine 函数或调试器在模拟中的不同点显示量子比特状态向量。
VS Code 扩展和 Python 包都支持用于稀疏模拟 Q# 和 OpenQASM 程序的干扰模型。 Python只有包支持程序稀疏模拟Qiskit,但不支持噪音模型。
有关稀疏模拟器的详细信息,请参阅 稀疏模拟器。
Clifford模拟器
对于多达数千个量子比特的程序,Clifford 模拟器速度快且效率高,但只能模拟仅包含 Clifford 门的程序。 Clifford 门是错误更正线路的常见组件。 门集 Clifford 由 H、S 和 CX 门组成,以及可从这三个入口构造的所有入口。 以下 Clifford 门是量子线路的常见组件:
- $X$、$Y$和 $Z$
- $S$ 和 $S^\dagger$
- $H$或 Hadamard
- $CX$、$CY$和 $CZ$
- SWAP 和 iSWAP
模拟器Clifford在包Q#中PythonQDK提供 ,OpenQASMQiskit和QIR程序,但在 VS Code 的扩展中QDK不可用。
GPU模拟器
GPU 模拟器是一个全状态模拟器,它使用计算机的 GPU 并行运行量子程序的许多镜头。 此模拟器可以运行包含任何类型的门的程序,但运行成本高昂。 模拟器最多可为 27 个量子比特建模。 计算机 GPU 的强大功能决定了性能,但对于具有大约 20 个量子比特和大量镜头的程序而言,性能是最佳的。
模拟器 GPU 采用 QIR 或 Qiskit 作为输入,可通过某些 QDKPython 包 API 提供,但不支持 VS Code 扩展。 对于任何类型的量子门或运算的噪声模型,也提供了丰富的支持。
CPU模拟器
与 GPU 模拟器一样,模拟器是一个全状态模拟器, CPU 可以运行包含任何类型的量子门的程序。 但是, CPU 模拟器速度较慢,因为它无法并行运行多个镜头。 由于内存问题,此模拟器最多可支持约 25 个量子比特,但随着量子比特的增加,运行速度会因内存问题而呈指数级变慢。 当你的计算机没有 CPU 时,或者当你的程序包含的量子比特较少且无需运行大量模拟运行时,请使用 GPU 模拟器。
模拟器 CPU 采用 QIR 或 Qiskit 作为输入,可通过某些 QDKPython 包 API 提供,但不支持 VS Code 扩展。 此外,还针对任何类型的量子门或操作提供了丰富的噪声模型支持。
我应该使用什么模拟器?
要使用的最佳模拟器取决于多种因素,例如:
- 开发环境 (VS Code 或 Python)
- 你正在开发的量子编程框架
- 程序的复杂性和拍摄次数
- 本地计算机的硬件功能
- 要在其上运行程序的 Azure Quantum 目标或其他量子硬件
- 要生成的噪音模型
下表总结了 QDK 可用于每个模拟器的选项和量子编程框架:
| 模拟器 | Availability | 支持的框架 |
|---|---|---|
| 稀疏 | VS Code 扩展和 Python 包 | Q#、OpenQASM、Qiskit |
| Clifford | Python 包 | Q#、OpenQASM、Qiskit、QIR |
| GPU | Python 包 | Qiskit、QIR |
| CPU | Python 包 | Qiskit、QIR |
VS Code 的 QDK 扩展中的模拟
稀疏模拟器是 VS Code 的 QDK 扩展中唯一可用的模拟器。 若要使用稀疏模拟器,请在 VS Code 中运行 Q# 或 OpenQASM 文件。 可以在 VS Code 中为 Q# 程序的稀疏模拟器添加有限的噪音模型,但对于 OpenQASM 程序则不适用。
包中的 QDKPython 模拟
QDK Python 开发环境支持多个量子框架和所有四个 QDK 模拟器,但并非所有模拟器都与所有框架和 API 兼容。
下表显示了可用于调用Python模拟器的每个 QDK API 的模拟器,以及每个 API 支持的编程框架:
| Python API(应用程序接口) | 稀疏 | Clifford | GPU | CPU | 编程框架 |
|---|---|---|---|---|---|
qsharp.run |
✅ | ✅ | Q# | ||
openqasm.run |
✅ | ✅ | OpenQASM | ||
qiskit.QSharpBackend |
✅ | Qiskit | |||
simulation.NeutralAtomDevice |
✅ | ✅ | ✅ | QIR | |
simulation.NeutralAtomBackend |
✅ | ✅ | ✅ | Qiskit | |
simulation.run_qir |
✅ | ✅ | ✅ | QIR |