Skip to content

QPanda v2.2.0

Latest
Compare
Choose a tag to compare
@ArrowYL ArrowYL released this 04 Nov 11:01
· 8 commits to master since this release
3c5d3b2

新增功能和重要更新

1.提供根据配置选择硬件计算资源运行全振幅虚拟机FullAmplitudeQVM

2.更新接口,完善了将QASM指令字符串转换为OriginIR指令字符串的的功能。支持转换的QASM指令字符串对应的操作有:barrer、ccx、ch、cp、crx、cry、crz、cswap、csx、cu、cx、cy、cz、h、id、measure、p、rccx、rx、ry、rz、reset、rzz、s、sx、sdg、sxdg、swap、t、tdg、u、x、y、z。

3.更新接口,完善了将QASM指令字符串转换为QProg对象的功能。支持转换的QASM指令字符串对应的操作有:barrer、ccx、ch、cp、crx、cry、crz、cswap、csx、cu、cx、cy、cz、h、id、measure、p、rccx、rx、ry、rz、reset、rzz、s、sx、sdg、sxdg、swap、t、tdg、u、x、y、z。

4.更新接口,完善了将Pyquil指令字符串转换为OriginIR指令字符串的功能。支持转换的Pyquil指令字符串对应的操作有:I、Z、Y、X、H、S、T、CZ、CNOT、SWAP、PSWAP、ISWAP、XY。

5.更新接口,完善了将Pyquil指令字符串转换为QProg对象的功能。支持转换的Pyquil指令字符串对应的操作有:I、Z、Y、X、H、S、T、CZ、CNOT、SWAP、PSWAP、ISWAP、XY。

6.调整了基准测试三个算法接口参数和用法,包括 单双门随机基准测试 , 双门交叉熵基准测试 ,和 量子体积QV

7.本源量子云计算服务新增了混合加密配置使用选项,用于对量子计算任务传输和通信中的任务数据开启 混合加密 从而保护数据安全和隐私,可以根据需要选择开启或打开。

开启方式为:将 QCloudMchine 初始化函数的参数 enable_pqc_encryption 设置为 True 即可,默认为 False 不开启。

混合加密: 混合加密是一种结合了两种密码算法的模式,该模式或部分或完整地继承各部分密码模块的某些特性,用于混合的两个功能相近的算法可以均为经典密码算法,也可以同时来自PQC。考虑到现有公钥密码算法面对量子计算机的脆弱性以及现阶段PQC算法潜在的风险,混合算法的两部分“原料”一般一半来自经典,一半来自PQC。例如,苹果于最近推出的iMessage加密方案以及谷歌在其浏览器中部署的混合加密方案均为Kyber(PQC的一种)与ECC类算法的混合。

本源量子云采用的混合加密方法来自NIST将要形成标准的 格基密码算法Kyber 以及 ECC类算法 ,并且在具体的实现过程中尽量采用国家认证的SM系列算法,例如,ECC类算法选取SM2算法,混合流程中用以密钥导出的函数(KDF)选用SM3算法,建立会话密钥后后续加解密采用SM4算法,并使用了安全度较高的CBC模式。

8.解决了部分情况下由于全局虚拟机导致的originir转换异常

9.电路模块可视化完善,包括:
- 修复导出text偶尔丢失量子逻辑门的错误
- 对png格式下自定义名称过长进行限制

10.量子云计算服务芯片任务添加了相关限制,单个任务的层数不能超过 500 层,并且单门控制比特数量不能超过 2 个(Toffoli门除外)

11.量子计算服务适配了本源悟空芯片上线,并且可以支持originir量子程序参数

12.ldd多控门分解接口( ldd_decompose )适配了RXX,RYY,RZX,RZZ,MS等特殊双门以及 QOracle 的受控形式

13.新增了稀疏态量子态初态接口,用于稀疏方式进行初态制备,需要满足初态归一化条件

14.量子云虚拟机添加了批量任务提交,目前仅可用于芯片任务的批量任务提交。

15.虚拟机计算模拟和originir指令添加了Mlmer–Srensen"逻辑门(MS门)

16.修复量子虚拟机set_configure设置与init的冲突,该问题会导致部分情况下的内存泄露

1.7 基于Clifford的 stabilizer 模拟器添加了噪声模拟,目前仅支持比特翻转,相位反转,比特相位反转,去极化以及相位阻尼这五个噪声模型

  1. 将关于算法部分全部移植到 pyqpanda-algorithm 算法库,这个是一个独立于pyqpanda的算法模块包,详细模块和接口功能具体可见
    https://pyqpanda-algorithm-tutorial.readthedocs.io/en/latest/index.html

  2. 密度矩阵噪声设置现在可以正确叠加

  3. ClassicalCondition添加c_and、c_or、c_not功能,用于构建量子逻辑分支程序时实现复杂的表达式判断

修复和解决的问题

  1. 修复量子态编码中关于复数数据重载函数在python中调用出现丢失虚部,导致只索引double类型接口错误。

  2. 解决某些使用GPU虚拟机情况下,cuda与Eigen3的运行冲突问题

  3. 修改了经典寄存器部分情况下有误,造成无法使用qif和qwhile的问题

  4. 优化了量子线路映射和转化过程中的错误

  5. 解决CPUQVM部分初始化和虚拟机释放场景下使用引入的内存泄漏问题

  6. 解决了部分映射接口在使用时异常出现程序崩溃和死循环的错误

  7. 修改了所有模拟器可能在计算含有BARRIER的量子程序过程中出错的问题

  8. 解决控制swap逻辑门,进行多控门分解时,控制信息丢失问题

9.修复了ISWAP的dagger形式在多个虚拟机下的计算结果错误

10.修复了部分情况下pyqpanda导入依旧需要libcurl的问题

11.修改了量子虚拟机初始化错误,该错误会导致多个量子虚拟机重复初始化过程引发未知异常,涉及到的虚拟机有张量网络虚拟机,部分振幅虚拟机,单振幅虚拟机,密度矩阵模拟器和Clifford模拟器等

12.解决了mac部分python环境(3.10,3.11)下的包的导入异常问题

13.修改了量子比特池初始化和清空操作不彻底的错误,该错误会导致清空后设置最大容量时内存异常

14.修改了可视化模块的实际显示问题,包括数字偏移及换行乱码问题修复,以及latex可视化未添加measure操作会崩溃的bug。

15.修改了几处由于C++17升级导致的GPU量子虚拟机运行异常错误

16.修改了量子云计算服务12进制与二进制转换未正确生效以及结果前后不一致的问题