Skip to main content

UnifiedQuantum - A unified, non-commercial quantum computing aggregation framework.

Project description

UnifiedQuantum Banner

UnifiedQuantum

PyPI version codecov Build and Test Quantum | AI Skill

English | 中文版

UnifiedQuantum — 非商业性量子计算聚合框架。

UnifiedQuantum 是一个轻量级 Python 框架,为量子线路构建、模拟和云端执行提供统一接口,聚合 OriginQ、Quafu、IBM Quantum 等多平台后端于一套一致的 API 下。

除了核心的线路构建和执行能力,UnifiedQuantum 还提供完整的本地芯片校准与量子错误缓解(QEM)工具链

  • XEB 交叉熵基准测试uniqc calibrate xeb 测量每层门保真度,支持单比特、双比特和并行 2q 模式
  • 读出误差校准 + M3 缓解:混淆矩阵标定与线性求逆修正
  • 本地含噪模拟:通过 dummy:<platform>:<backend> 复用真实芯片的拓扑和校准数据,先 compile/transpile,再在本地重现硬件噪声特性
  • DSatur 并行调度:自动将 2q 门分配到最小并行轮次

所有校准结果写入 ~/.uniqc/calibration_cache/,QEM 模块读取并强制 TTL 新鲜度策略。


核心工作流

UnifiedQuantum 围绕一个简洁的工作流设计:任意方式构建线路 → uniqc CLI 统一执行

1. 安装

# 推荐:通过 uv 安装 CLI 工具(全局可用,无需虚拟环境)
uv tool install unified-quantum

# 或从 PyPI 安装 Python 包(提供 Python API)
uv pip install unified-quantum

2. 构建线路(支持原生 API 或任意第三方工具)

from uniqc import Circuit

c = Circuit()
c.h(0)
c.cnot(0, 1)
c.measure(0)
c.measure(1)

# 输出 OriginIR 格式,可供 CLI 使用
open('circuit.ir', 'w').write(c.originir)

你也可以使用 Qiskit、Cirq 等工具构建线路,只需最终输出 OriginIR 或 OpenQASM 2.0 格式。

3. CLI 统一执行

# 本地模拟
uniqc simulate circuit.ir --shots 1000

# 提交到云端
uniqc submit circuit.ir --platform originq --shots 1000

# dummy backend 编号规则
uniqc submit circuit.ir --platform dummy --shots 1000
uniqc submit circuit.ir --platform dummy --backend virtual-line-3 --shots 1000
uniqc submit circuit.ir --platform dummy --backend originq:WK_C180 --shots 1000

# 查询任务结果
uniqc result <task_id>

dummy 表示无约束、无噪声本地虚拟机;dummy:virtual-line-N / dummy:virtual-grid-RxC 表示带虚拟拓扑约束的无噪声本地 backend;dummy:<platform>:<backend> 表示先按真实 backend compile/transpile,再用真实芯片标定数据在本地含噪执行。


设计理念

UnifiedQuantum 是一个非商业性的开源项目,致力于打造 AI 时代原生的量子计算应用框架:

  • AI 原生:专为 AI 工作流设计,无缝集成到现代开发与推理流程中
  • CLI-first:开箱即用的命令行工具,一条命令完成线路构建、模拟、提交与结果分析
  • 聚合:整合多种量子云平台(OriginQ、Quafu、IBM Quantum),提供统一接口
  • 统一:一致的 API 设计,屏蔽各平台差异
  • 透明:清晰的量子程序组装与执行方式,无隐藏行为
  • 轻量:纯 Python 实现,安装简单,集成方便

配套 Skill:在 IAI-USTC-Quantum/quantum-computing.skill 中获取 Claude Code 集成指南与 AI 辅助量子编程工作流。

UnifiedQuantum 统一接入概念图


Features

  • 多平台提交:一个 submit_task(或 uniqc submit)即可将同一份 OriginIR 发往 OriginQ、Quafu、IBM Quantum,或本地 dummy 模拟器。
  • 本地模拟:自带 OriginIR Simulator、QASM Simulator,支持 statevector / density matrix 两种后端,以及带噪声的变体。
  • 算法组件:内置 HEA、UCCSD、QAOA 等常用 ansatz,可直接用于 VQE / QAOA 研究。
  • PyTorch 集成:提供 QuantumLayer、参数偏移梯度、批处理执行,便于构建混合量子—经典模型。
  • 可互操作:线路既可用原生 API 构建,也可来自 Qiskit、Cirq 等第三方工具,只要最终产出 OriginIR 或 OpenQASM 2.0。
  • 同步 / 异步并存submit_task 立即返回 task_idwait_for_result--wait 可阻塞至完成。
  • 易扩展:门集、错误模型、平台适配器都按接口组织,添加新后端只需实现一个 adapter。

结果格式差异:各平台 wait_for_result() 返回的 result 内层结构不同:

  • OriginQ / Dummy:{"00": 512, "11": 488}(扁平 {bitstring: shots} dict)
  • Quafu:{"counts": {"00": 512, "11": 488}, "probabilities": {...}}(嵌套 dict)
  • IBM:[{"00": 512}, {"01": 300}](counts dict 的列表,批量时每个电路一个元素) 详见平台约定文档

Installation

Supported Platforms

  • Windows / Linux / macOS

Requirements

  • Python 3.10 – 3.13

从 PyPI 安装(推荐)

# 安装 CLI 工具(全局可用,无需虚拟环境)
uv tool install unified-quantum

# 安装 Python 包(提供 Python API,可与 uv tool 安装共存)
uv pip install unified-quantum

中国大陆用户推荐配置清华源,可大幅提升下载速度:

# 临时使用(仅本次)
uv pip install unified-quantum --index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 永久生效
uv pip install --python-preference managed --index-url https://pypi.tuna.tsinghua.edu.cn/simple/

从源码构建

如果你需要开发新版、安装开发版本或启用 C++ 模拟器:

git clone --recurse-submodules https://github.com/IAI-USTC-Quantum/UnifiedQuantum.git
cd UnifiedQuantum

# Maintainer / 全量开发环境:安装 dev、docs 和全部可选后端依赖,并按当前包索引升级解析
uv sync --all-extras --group dev --group docs --upgrade

# 运行完整测试套件
uv run pytest uniqc/test

# 包含真实云平台量子线路执行测试
uv run pytest uniqc/test --real-cloud-test

维护者环境不应把 qiskit、QuTiP、Sphinx 等当前维护的可选或文档模块缺失视为正常跳过条件。pyproject.toml 不钉住第三方依赖版本,主分支也不提交 uv.lock;全量开发和 CI 应按当前包索引解析最新可用依赖,及时暴露上游兼容性问题。Quafu/pyquafu 是例外:该平台 SDK 已 deprecated,且 pyquafu 依赖 numpy<2,因此不再包含在 [all] 中。

真实云平台测试中,读取后端、验证 token、查询平台 status/API 的测试默认执行;只有会实际提交量子线路的测试默认跳过,需要显式传 --real-cloud-test

Requirements:

  • CMake >= 3.26
  • C++ compiler with C++17 support
  • Git submodules (pybind11, fmt)

如果系统 CMake 版本过低(< 3.26),先升级:

pip install cmake --upgrade

pip 备选方案

pip 不支持 uv tool install 的 CLI 全局安装方式(无需虚拟环境即可全局调用 uniqc 命令)。如无特殊需求,推荐使用上面的 uv 安装方式。

# 从 PyPI 安装
pip install unified-quantum

# 从源码安装
pip install .
pip install -e . --no-build-isolation

可选依赖

核心依赖(包括 scipy)在默认安装中已包含。以下为可选功能依赖:

功能 安装命令(uv) pip 备选
OriginQ 云平台 uv pip install unified-quantum[originq] pip install unified-quantum[originq]
Quafu 执行后端(deprecated,单独安装) uv pip install unified-quantum[quafu] pip install unified-quantum[quafu]
Qiskit 执行后端 uv pip install unified-quantum[qiskit] pip install unified-quantum[qiskit]
高级模拟 (QuTiP) uv pip install unified-quantum[simulation] pip install unified-quantum[simulation]
可视化 uv pip install unified-quantum[visualization] pip install unified-quantum[visualization]
PyTorch 集成 uv pip install unified-quantum[pytorch] pip install unified-quantum[pytorch]
安装所有可选依赖 uv pip install unified-quantum[all] pip install unified-quantum[all]

[all] 不包含 Quafu/pyquafu。如需使用旧 Quafu 后端,需要单独安装 [quafu],并接受 pyquafu 可能把环境降到 numpy<2 的风险;该平台已 deprecated,后续不保证相关代码一致性和完整性,支持可能随时停止。

TorchQuantum 后端当前不包含在 PyPI extras 中,需要手动安装:

uv pip install unified-quantum[pytorch]
uv pip install "torchquantum @ git+https://github.com/Agony5757/torchquantum.git@fix/optional-qiskit-deps"

不安装 TorchQuantum 不会影响核心功能、QuTiP 模拟、云平台适配器或常规 uniqc.torch_adapter 功能;只有 TorchQuantum 专用后端与示例会在实际使用时提示缺少该依赖。


CLI Quick Reference

# 查看帮助
uniqc --help

# 本地模拟
uniqc simulate circuit.ir --shots 1000

# 提交到云端(支持 originq / quafu / ibm / dummy)
uniqc submit circuit.ir --platform originq --shots 1000

# 查询任务结果
uniqc result <task_id>

# 配置云平台 Token
uniqc config init
uniqc config set originq.token YOUR_TOKEN

# 备选模块入口
python -m uniqc.cli simulate circuit.ir

# 校准与 QEM 数据准备
uniqc calibrate readout --backend dummy --qubits 0 1 --shots 1000
uniqc calibrate xeb --backend dummy --type 1q --qubits 0 1 --depths 5 10

后端信息查询

# 列出所有可用后端(默认隐藏 unavailable/deprecated)
uniqc backend list

# 显示所有后端(包括 unavailable/deprecated)
uniqc backend list --all

# 显示带保真度信息的表格
uniqc backend list --info

# 查看单个后端详情(含保真度、相干时间、拓扑)
uniqc backend show originq:WK_C180

# 强制刷新后端缓存(update 始终全量拉取最新数据)
uniqc backend update

Examples

📁 examples/ — Runnable demonstrations

Getting Started

Example Description
Circuit Remapping Build a circuit and remap qubits for real hardware
Dummy Server Submit tasks to the local dummy simulator
Result Post-Processing Convert and analyze results

Algorithms

Example Description
Grover Search Unstructured search with quadratic speedup
Quantum Phase Estimation Eigenvalue phase estimation

Documentation

📖 GitHub Pages

Release Notes


关于我们

UnifiedQuantumIAI-USTC-Quantum 团队开发和维护。

欢迎提交 Issues、Pull Request,或通过邮件联系我们。如果您对量子计算研究感兴趣,欢迎加入我们。


Status

🚧 Actively developing. API may change.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

unified_quantum-0.0.8-cp313-cp313-win_amd64.whl (724.3 kB view details)

Uploaded CPython 3.13Windows x86-64

unified_quantum-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (802.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (815.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

unified_quantum-0.0.8-cp312-cp312-win_amd64.whl (724.3 kB view details)

Uploaded CPython 3.12Windows x86-64

unified_quantum-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (802.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (815.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

unified_quantum-0.0.8-cp311-cp311-win_amd64.whl (723.7 kB view details)

Uploaded CPython 3.11Windows x86-64

unified_quantum-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (801.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (814.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

unified_quantum-0.0.8-cp310-cp310-win_amd64.whl (723.3 kB view details)

Uploaded CPython 3.10Windows x86-64

unified_quantum-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (800.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.8-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (813.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

File details

Details for the file unified_quantum-0.0.8-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a9f0eba8d55cb72b1839fc56cedd2caad471fd914ab9acba7a3093577b3a94b8
MD5 206aa55c948b3d55f89c85575758436b
BLAKE2b-256 ea847cd806db93cbd33af33647c9428094816325101d2b47ffadf7916a7bbba3

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c437616491701ed629ee5341c35c5f43002442f3786b5e70ecc49dfe59257814
MD5 77a80a704b866268a2d2ab29dd03623e
BLAKE2b-256 59e75fac2d1c8454e5acbff75e437d95a9994b096aadc71e03c8a342dcdab2a2

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2384c68580d2aeab160ad8f295c8f32cc8ca03a0cc6f98aa9cee88c19b703ad4
MD5 f11a3ced9d4695924e0dddd1b2e95aa8
BLAKE2b-256 a77a78f2dcab98534875d1e6888dbbbfd573f66b7c0607f73ca6bf72e77b196c

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b6f5fb1db103d0350af485d944d08803509a13e410217801af88b43ec159dbaf
MD5 9d700808ed63e12b32d129e223a92463
BLAKE2b-256 26b2f59116064ad6d1ea69de9ef96689010b548b64ce6263f736d6cdb7a40ec2

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce7bce43efcd9660e5c3e328d29f7a65b17261a7569882e134b32c98343d79cd
MD5 d9ec44b6bad24dcfbab43390325b9425
BLAKE2b-256 7ff3bbc8f2bb597400416b3108c6b6287f3fd4365e3587272656a73c8e28c75c

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9117f911e3e37842dcca5d9b8dbbe361ae41999f706c3b766456543ac854e229
MD5 6fc440242ff4787991d419fcaccb0c8a
BLAKE2b-256 66a064d3cea51c36ac7cd8abed7c09776591339bee2a51b98d72c2aa1032daf7

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ca571c29bf48e0a2d8b0440aa29b89be2564e75a1d5441ae25f2bc7a0e12dc01
MD5 8596fe7ed63e6d349ff72813801bc3ef
BLAKE2b-256 7c0cb82bfae73b6a55998c315fc775332e91a2ffaaf5bb7bec58057bc48f69e3

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58349d83258e8d7e42928c18c3bbb3ca8c5ad8a98e4e3bb53f79fb35a2bd548e
MD5 8f3f66b3ecf6e3192d0b9b0ed956692a
BLAKE2b-256 3b699fa0724ec1ad3512438bfbed752d904b66ea6ed5c063fbbc36bfea70988d

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 451b313e0da8245b8bb14e4ee145d0a574510cca8de902d9c258f6285929f34d
MD5 912734ad4fb5cbc838b747c286946ea4
BLAKE2b-256 4212710380438c48df10b2fa11af7812c64bfc80b396166ee751abb9b94e9356

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ddf2d32047dbb1c5495648fa4e396a0dc6679962d99fa0d0204457966581996a
MD5 4c0140e2045a8a4565983e7a2d1e2a35
BLAKE2b-256 f502408e9caf64bb0d2e205c9e71277acc2a087c3979430e69287eb8b4bc68e3

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 decd66f18625a15a29aed34aad9bb9902093ae12e81d113b8895e1d94c342d53
MD5 3974b6644699cbbfe499f2a4481db750
BLAKE2b-256 961cf09e9c4eb9e956933280b3651ed8ac674167439f79e462a6539cd03ea56c

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.8-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.8-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0b9bee993553cc9514dfe093f11bff7698b259b8c239ff4a768696b507e81236
MD5 ef6240523d16d012a962a3ec02184d63
BLAKE2b-256 7549b101d56397430c188c307332a0a0a2c6f99a9b2e34800881ab6d8bfe9d37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page