Releases: OriginQ/QPanda-2
QPanda v2.2.0
新增功能和重要更新
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
模拟器添加了噪声模拟,目前仅支持比特翻转,相位反转,比特相位反转,去极化以及相位阻尼这五个噪声模型
-
将关于算法部分全部移植到
pyqpanda-algorithm
算法库,这个是一个独立于pyqpanda的算法模块包,详细模块和接口功能具体可见
https://pyqpanda-algorithm-tutorial.readthedocs.io/en/latest/index.html -
密度矩阵噪声设置现在可以正确叠加
-
ClassicalCondition添加c_and、c_or、c_not功能,用于构建量子逻辑分支程序时实现复杂的表达式判断
修复和解决的问题
-
修复量子态编码中关于复数数据重载函数在python中调用出现丢失虚部,导致只索引double类型接口错误。
-
解决某些使用GPU虚拟机情况下,cuda与Eigen3的运行冲突问题
-
修改了经典寄存器部分情况下有误,造成无法使用qif和qwhile的问题
-
优化了量子线路映射和转化过程中的错误
-
解决CPUQVM部分初始化和虚拟机释放场景下使用引入的内存泄漏问题
-
解决了部分映射接口在使用时异常出现程序崩溃和死循环的错误
-
修改了所有模拟器可能在计算含有BARRIER的量子程序过程中出错的问题
-
解决控制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进制与二进制转换未正确生效以及结果前后不一致的问题
QPanda v2.1.16
QPanda
1.新增密度矩阵模拟器,适用于小型量子系统下的密度矩阵模拟,同时提供约化密度矩阵,概率分布,哈密顿量期望以及噪声线路模拟等接口,具体可以参考 密度矩阵模拟器 。
2.添加单振幅虚拟机获取对应振幅接口。
3.优化了泡利算符的构造方式,新增了通过矩阵来构造泡利算符的接口。
4.优化了泡利算符的构造方式,新增了形如 operator = 1.5 * x(0) + 0.6 * y(1) + 2.1 * z(2) 的更简洁的构造方式。
5.修复在只有measure线路等情况下,输出latex信息显示和转换失败的问题。
6.更新变分组件,添加三角函数相关接口。
7.优化了获取矩阵接口,现在可以添加了量子比特可选参数,获取一个量子线路中指定比特对应的矩阵。
8.修复退相干噪声计算错误的问题。
9.修复某些情况下GPU模拟器运行错误问题。
10.修复ISWAP门默认参数未统一的问题。
11.删除Encode类中归一化函数,并修改为入参检测归一化。
pyqpanda
1.添加GPU虚拟机
2.添加泡利矩阵分解
3.添加单个哈密顿量模拟
4.修复线路优化bug
5.修改QPanda中QST命名冲突问题
QPanda v2.1.14
QPanda
- 解决映射算法出错的问题
- 修改overall_csan报错问题
- 解决多个量子虚拟机并行计算问题
- 对QProgProgress加锁
- 优化HHL算法
- 添加测试用例
pyQPanda
- 解决映射算法出错的问题
- 修改overall_csan报错问题
- 解决多个量子虚拟机并行计算问题
- 优化HHL算法
QPanda v2.1.13
QPanda
1.增加测量优化接口功能
2.修复云虚拟机通信异常问题
3.修复云虚拟机无法提示转换错误信息问题
pyQPanda
1.增加测量优化接口功能
2.修复云虚拟机通信异常问题
3.修复云虚拟机无法提示转换错误信息问题
4. 重新封装QVec为py::list对象
QPanda v2.1.12
QPanda
1.添加QOracle逻辑门
2.添加多种量子态编码功能
3.增加接口参数提示和函数自动补全功能
4.完成噪声解耦
5.实现LDD算法多控门分解功能;
6.openmp并行方法优化,提供设置最大并行数功能
7.新增RXX、RYY、RZZ、RZX逻辑门
8.添加RXX、RYY、RZZ、RZX、QOracle等复杂逻辑门的可视化
9.解决QProg、QCircuit的全局对象初始化失败问题
pyQPanda
1.添加QOracle逻辑门
2.添加多种量子态编码功能
3.增加接口参数提示和函数自动补全功能
4.完成噪声解耦
5.实现LDD算法多控门分解功能;
6.openmp并行方法优化,提供设置最大并行数功能
7.新增RXX、RYY、RZZ、RZX逻辑门
8.添加RXX、RYY、RZZ、RZX、QOracle等复杂逻辑门的可视化
9.解决QProg、QCircuit的全局对象初始化失败问题
10.添加pyqpanda参数提示功能
QPanda v2.1.11
QPanda
1.添加GPU虚拟机
2.添加泡利矩阵分解
3.添加单个哈密顿量模拟
4.修复线路优化bug
5.修改QPanda中QST命名冲突问题
pyQPanda
1.添加GPU虚拟机
2.添加泡利矩阵分解
3.添加单个哈密顿量模拟
4.修复线路优化bug
5.修改QPanda中QST命名冲突问题
QPanda v2.1.10
QPanda
- 添加LaTeX可视化量子线路方法
- 修改qst接口使用方法
pyQPanda
- 添加LaTeX可视化量子线路方法
- 修改schmdit编码orcle实现,添加mottonen编码python实现
QPanda v2.1.9
QPanda
- 量子云虚拟机添加比特限制功能
- 添加多种量子编码功能
- 修改量子逻辑门转换错误问题
- 修改矩阵分解bug
pyQPanda
- 量子云虚拟机添加比特限制功能
- 添加多种量子编码功能
- 修改依赖numpy库的版本
- 修改量子逻辑门转换错误问题
- 修改矩阵分解bug
QPanda v2.1.8
QPanda
- 修改量子云虚拟机
- 优化量子线路字符画接口
- 添加测试框架
pyqpanda
- 修改量子云虚拟机
- 优化量子线路字符画接口
- 添加测试框架
QPanda v2.1.7
QPanda
- 虚拟机添加同时对多种量子逻辑门噪声设置接口
- 修改control信息遍历方式
- 修改PMeasure算法
- 修改GTest测试框架
- Grover测试用例整改
pyQPanda
- 虚拟机添加同时对多种量子逻辑门噪声设置接口
- 修改control信息遍历方式
- 修改PMeasure算法
- OBMT_mapping映射算法接口优化
- HHL应用程序优化