跳转至

11 OpenQASM 兼容配置

目的

本章定义 UQCI 与 OpenQASM 之间通过 compatibility profile 建立的关系。

Profile 模型

OpenQASM 兼容必须由 profile 驱动。Profile 指定导出表面中允许携带多少 timing、calibration 与 UQCI 扩展信息。

本章继续遵循前文与仓库架构说明中的核心原则:

  • UQCI IR 保持 canonical
  • OpenQASM 保持兼容层与交换层角色
  • OpenQASM 不能被视为量子操作系统本身

因此,compatibility profile 描述的是导出能力边界,而不是语义归属关系。

兼容层边界

profile 的作用,是让导出预期显式化。一个 profile 需要回答的问题包括:

  • 是否只允许可移植的门级语法
  • 是否允许表达时序意图
  • 是否允许发射 calibration-aware 构造
  • 是否允许附带 UQCI namespaced annotations 或 pragmas

这种 profile 驱动方式使兼容层保持务实,同时避免让人误以为单一 .qasm 文件就能承载完整运行时契约。

Profiles

OQ-0 Portable Circuit

仅包含门级程序、测量与经典控制。这是最大可移植性的交换与云任务提交 profile。

当可移植性比时序或校准保真度更重要时,应优先考虑 OQ-0。

OQ-1 Timed Circuit

在 OQ-0 上增加 durationdelayboxstretch 等时序意图表达,面向需要时序信息的编译器与调度器。

当导出需要保留时序意图,而又不想进入校准绑定层时,OQ-1 是更合适的选择。

OQ-2 Calibrated Circuit

在 OQ-1 上增加 defcalcal 或 OpenPulse 对齐的校准绑定,面向固定目标设备与近硬件执行。

OQ-2 主要适用于接近硬件或固定目标设备的导出场景。

OQ-X UQCI Extended

在 OQ-2 上增加 UQCI namespaced annotations、pragmas 与显式 bundle sidecar 感知,适用于更深的 QOS 内部执行与全栈互操作。

OQ-X 是 v0.1 中表达能力最强的仓库侧兼容 profile,但它仍然只是兼容层,而不是对 canonical UQCI 对象的替代。

扩展清单

可与 OpenQASM 一起携带的 UQCI 扩展示例包括:

  • @uqci.profile
  • @uqci.device_class
  • @uqci.bundle
  • @uqci.semantic
  • @uqci.sync.group
  • pragma uqci.calset
  • pragma uqci.shots
  • pragma uqci.capture
  • pragma uqci.routing

参考草案还给出了误差预算提示、目标提示、结果格式提示、同步标签、校准绑定标记等扩展示例。这些都应被视作带命名空间的兼容机制,而不是规范性 sidecar 的替代物。

与 Sidecar 的关系

compatibility profile 不会消除规范性 sidecar 的必要性。即使在更高 profile 中:

  • Manifest 仍是 Bundle 的入口描述
  • DeviceSpec 仍是能力与约束声明
  • CalSet 仍是运行时校准上下文
  • Bundle 仍是可审计、可转移的执行单元

导出的 program.qasm 可以引用这些上下文,但不应被期待内联承载全部内容。

规范性规则

OpenQASM profile 是导出表面,不是对 UQCI 的替代。兼容必须是显式分层的增强,而不是对 canonical model 的静默替换。

延后范围

与仓库 doctrine 一致,v0.1 不要求:

  • 完整通用 OpenQASM parser
  • 通用 OpenPulse 编译器
  • 覆盖全部厂商的 defcal
  • 面向所有后端家族的 pulse-native lowering

本仓库追求的是务实可用的兼容桥,而不是语法覆盖的理论完备性。

相关章节