量子程序编译器QLLVM入门:基于LLVM的经典-量子混合编译器

0 阅读3分钟

QLLVM 入门指南:基于 LLVM 的经典-量子混合编译器

一、QLLVM 是什么

QLLVM 是一个基于 LLVM 构建的经典-量子混合编译框架,具备卓越的可扩展性以及与经典高性能计算生态的无缝集成能力。

QLLVM经典-量子混合编译框架

它能做什么

  • 把量子程序(Qiskit/Cirq/openQASM 等)和 C++/CUDA 程序放在一起编译,生成一个可执行文件

解决什么问题

  • 量子编程框架存在的生态碎片化问题,前端接口不统一、后端硬件强耦合、编译能力重复构建,且与 HPC 生态脱节
  • 现有“量-超-智”融合方案存在的局限性问题,CUDA Quantum 对传统 HPC 场景支持不足,Qiskit Runtime 通信延迟大、无法实现编译层全局优化
  • 现有 LLVM/MLIR 路径在物理比特映射等关键环节支持不成熟问题,多数量子编译器以“量子为中心”,未将 CUDA、OpenMP/MPI 等纳入统一编译视图

核心优势

  • ✅ 统一编译:量子+经典代码一次性编译,无需胶水代码
  • ✅ 多前端支持:Qiskit、Cirq、Qpanda、openQASM
  • ✅ 多后端输出:openQASM 2.0、OriginIR、qcis
  • ✅ 支持 C++/CUDA 与量子程序混合编译
  • ✅ 无量子硬件也能跑(内置模拟器)
  • ✅ 开放性与互操作性:基于 LLVM 开放标准,硬件无关、平台中立,避免厂商生态锁定
  • ✅ 全栈性能优化:内置 SABRE 物理比特映射算法
  • ✅ 模块化设计:框架采用模块化架构,便于后续功能扩展

项目地址:github.com/QCFlow/QLLV…

二、安装方式

方式一:VSCode 插件(推荐)

如果不想折腾编译环境,可以直接用 VSCode 插件。

在这里插入图片描述

安装步骤:

  1. 打开 VSCode,进入扩展面板(Ctrl+Shift+X
  2. 搜索 qcflow-publisher.qcoder-chat
  3. 点击安装

安装后会自动带上编译插件,不需要额外配置。

在这里插入图片描述

使用:

  • 左侧侧边栏打开 Qcoder
  • 在代码区域写量子程序
  • 点击编译按钮
  • 点击运行按钮
  • 输出结果在下方显示

方式二:从源码安装

如果需要命令行使用,可以从源码编译。

详细安装要求参考官方文档:qllvm-documentation.readthedocs.io

三、基本用法

3.1 编译纯量子程序

qllvm test_bell.qasm -qrt nisq -qpu qasm-backend -O1

这条命令会编译 test_bell.qasm,输出优化后的量子电路文件 test_bell_compiled.qasm

参数说明:

  • -qrt nisq:运行时模式,目前用 nisq
  • -qpu qasm-backend:后端选择,qasm-backend 是模拟器
  • -O1:优化级别,可选 O0/O1/O2/O3

3.2 编译 C++ 和量子混合程序

qllvm main.cpp bell.qasm -o hybrid_bell
./hybrid_bell

前提是 main.cpp 里调用了量子电路接口。具体接口写法可以参考仓库 examples/hybrid/ 目录下的示例。

3.3 编译 C++ + CUDA + 量子混合程序

cd examples/hybrid_cuda
qllvm main.cpp kernel.cu circuit.qasm -o hybrid_app -cuda-arch sm_86
./hybrid_app -shots 1024

这里:

  • -cuda-arch sm_86:指定 CUDA 架构,根据本地 GPU 修改
  • 需要本地已安装 CUDA 工具链

以上示例均来自官方仓库:github.com/QCFlow/QLLV…

更详细的使用示例请参考:

四、常见问题

Q1:没有量子硬件能不能用?

可以。qasm-backend 是模拟器,在经典计算机上运行量子电路。

Q2:支持哪些量子编程框架?

前端支持 QiskitCirqQpandaopenQASM。也就是说你可以用这些框架写量子程序,然后通过 QLLVM 编译成目标指令。

Q3:插件和命令行有什么区别?

  • 插件:适合快速体验、教学、不关心底层配置
  • 命令行:适合集成到现有构建流程、脚本自动化

Q4:编译报错怎么办?

  1. 先确认依赖是否完整(LLVMCUDA 如果需要)
  2. 查看官方文档的安装部分
  3. 在 GitHub 提交 Issue

五、更多资源

以上是 QLLVM 的基本使用方法。如果有具体的使用问题,建议先看官方文档,或者直接提交 Issue。