新功能和重要更新
- 量子模拟器的 CPUQVM 类现已支持在 CPU 上模拟具有指定噪声模型和哈密顿量或泡利算子的量子系统,并支持计算该系统中量子程序 QProg 的期望值。
- 云平台上的全振幅模拟器现已支持模拟具有指定噪声模型和哈密顿量或泡利算子的量子系统,并支持计算该系统中量子程序 QProg 的期望值。
- 量子模拟器的 CPUQVM 类在 CPU 上模拟无噪声且具有指定哈密顿量或泡利算子的量子系统,并计算量子程序 QProg 期望值的接口已更改。新的接口适用于两种情况:既可以用于设置特定的噪声模型进行计算,也可以在不设置噪声模型的情况下进行计算。
- 云平台上的全振幅模拟器在模拟无噪声且具有指定哈密顿量或泡利算子的量子系统,并计算量子程序 QProg 期望值的接口已更改。新的接口适用于两种情况:既可以用于设置特定的噪声模型进行计算,也可以在不设置噪声模型的情况下进行计算。
- Hamiltonian 类新增接口
to_hamiltonian_pq2。该接口返回的结果与 QPanda2(pyqpanda)中 PauliOperator 类的成员函数 toHamiltonian 返回的结果一致。
- PauliOperator 类新增接口
to_hamiltonian_pq2。该接口返回的结果与 QPanda2(pyqpanda)中 PauliOperator 类的成员函数 toHamiltonian 返回的结果一致。
- 我们对量子云计算服务中与量子计算相关的真实芯片信息获取接口进行了重构和更新,使得获取的信息更加丰富。
api_key = "302e020100301006010b6d33ad8772eb9705e844394453a3c8a"
service = QCloudService(api_key)
service.setup_logging(LogOutput.CONSOLE)
backend = service.backend("origin_wukong")
chip_info = backend.chip_info()
print(backend.name(), "all qubits :", chip_info.qubits_num())
print(backend.name(), "all available_qubits :", chip_info.available_qubits())
print(backend.name(), "all high_frequency_qubits :", chip_info.high_frequency_qubits())
输出:
origin_wukong all qubits : 72
origin_wukong all available_qubits : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71]
origin_wukong all high_frequency_qubits : [0, 4, 9, 13, 16, 21, 24, 29, 32, 37, 41, 52, 57, 61, 65, 2, 14, 25, 33, 45, 62, 69, 6, 11, 26, 31, 35, 38, 47, 50, 55, 58, 67, 71, 7, 15, 19, 28, 40, 63, 48, 34, 60, 70, 53, 30,
54, 44]
- 获取每个单量子逻辑门及每组双量子逻辑门的保真度及其他信息
api_key = "302e020100301006072a8648ce3d020106052b8104001c0417"
service = QCloudService(api_key)
service.setup_logging(LogOutput.CONSOLE)
backend = service.backend("origin_wukong")
chip_info = backend.chip_info()
single_qubit_info_list = chip_info.single_qubit_info()
for qubit_info in single_qubit_info_list:
print(qubit_info)
double_qubits_info_list = chip_info.double_qubits_info()
for double_qubits in double_qubits_info_list:
print("double qubits ",double_qubits.get_qubits(),
"fidelity : ", double_qubits.get_fidelity())
输出:
+---------------------------------------------------------------------------------------------------------------+
|Qubit ID |Single Gate Fidelity|Readout Fidelity |Frequency |T1 |T2
+----------------------------------------------------------------------------------------------------------------+
|0 |0.995 |0.9234 |4764 |9.254 |1.128
+----------------------------------------------------------------------------------------------------------------+
+----------------------------------------------------------------------------------------------------------------+
|Qubit ID |Single Gate Fidelity|Readout Fidelity |Frequency |T1 |T2
+----------------------------------------------------------------------------------------------------------------+
|1 |0.9973 |0.9417 |4041 |17.436 |1.844
+----------------------------------------------------------------------------------------------------------------+
......
double qubits [38, 44] fidelity : 0.9831
double qubits [44, 50] fidelity : 0.0
double qubits [39, 45] fidelity : 0.0
double qubits [45, 46] fidelity : 0.9519
double qubits [45, 51] fidelity : 0.9589
double qubits [40, 46] fidelity : 0.0
double qubits [45, 46] fidelity : 0.9519
double qubits [46, 47] fidelity : 0.0
double qubits [41, 47] fidelity : 0.964
......
8. 修改了 QCircuit 的 control() 方法,使其成为原地操作,不再返回控制后的线路。
cir = QCircuit()
cir = cir.control([1])
cir = QCircuit()
cir.control([1])
修复的错误
- 修正了 CPU 量子模拟器 CPUQVM 类、云平台上的全振幅模拟器以及云平台上的真实量子机在计算哈密顿量或泡利算子期望值时输出错误结果的问题。
- 解决了 GPU 计算中多控制门错误的问题。
- 修复了量子云计算服务在提交超大批量任务查询时发生的崩溃和计算异常问题。
- 适配 Mac 环境的使用场景,解决了多个 Mac 环境下的编译和运行异常问题。
- 修复了
Transpiler 接口在遇到非连续拓扑时导致程序崩溃的错误。
优化
- 量子信息模块中的 Unitary 类支持当前枚举类型
GateType 中列出的所有量子逻辑门。
- 量子信息模块中 Unitary 类的内部实现采用优化的计算逻辑,提高了计算效率。
- 在将 OriginIR 转换为 QProg 以及将 QASM 转换为 QProg 的相关接口中,如果生成的 QProg 对象不包含量子逻辑门,则会抛出异常。
- 对于 RPhi 门,由 QProg 转换为 OriginIR 的相关接口生成的 OriginIR 指令字符串可被 QPanda2(pyqpanda)识别。