QLLVM介绍
QLLVM是一个基于LLVM构建的经典-量子混合编译框架,具备卓越的可扩展性以及与经典高性能计算生态的无缝集成能力。
QLLVM支持多种量子编程语言及后端,所支持的编程语言包括Qiskit、Cirq、Qpanda、openQASM等,后端指令包括openQASM2.0、OriginIR、qcis等。
QLLVM支持量子程序、CUDA程序和经典C++程序的统一编译,为经典-量子软件开发提供了高效、灵活且工业级的编译基础设施。
总体功能
QLLVM 将高级量子程序编译为目标后端可执行代码,主要功能包括:
多语言前端:支持 OpenQASM 2.0、Qiskit QuantumCircuit、QPanda、Cirq 等输入
MLIR 优化:单比特门合并、抵消、对角门移除、门综合等优化 Pass
QIR 生成:将 MLIR 方言 Lowering 为 QIR(LLVM IR 形式的量子中间表示)
SABRE 映射:C++/Qiskit 实现的量子比特布局与 SWAP 插入
多后端发射:输出 OpenQASM、硬件特定格式等
技术路线
QLLVM编译框架
前端:负责语言解析和中间代码生成,将高级语言转换为 MLIR Quantum 方言
中端:基于 MLIR 进行量子程序优化,并将 MLIR 进一步 Lowering 为 QIR(LLVM IR)
后端:基于 QIR 和 QIR 运行时库,将程序转换为目标硬件支持的代码格式
依托 LLVM 生态,QLLVM 能够实现与经典编译 Pass、CUDA 编程模型和 HPC 运行时的集成,从而实现高效的经典量子混合任务编译。
经典量子混合程序编译机制
混合程序代码编写示例
主要优势
工业级 IR 基础设施:基于 MLIR/LLVM,便于扩展新方言和新 Pass
多种输入形式:OpenQASM、Qiskit 等,适配不同编程习惯
灵活优化:-O0/-O1 等级、自定义 Pass 序列、合成优化
物理约束映射:SABRE 等布局与 SWAP 策略,适配真实硬件拓扑
项目结构概览
目录 |
说明 |
|---|---|
|
MLIR 方言、解析器、转换、Lowering |
|
Quantum 方言定义 |
|
OpenQASM3、Qiskit 解析器 |
|
优化 Pass(门合并、抵消、综合等) |
|
|
|
LLVM IR Pass(SABRE 等) |
|
QIR → 后端代码(如 QasmBackend) |
|
驱动脚本 |
|
测试与示例 QASM |
|
安装指南、设计文档 |