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 上增加 duration、delay、box、stretch 等时序意图表达,面向需要时序信息的编译器与调度器。
当导出需要保留时序意图,而又不想进入校准绑定层时,OQ-1 是更合适的选择。
OQ-2 Calibrated Circuit¶
在 OQ-1 上增加 defcal、cal 或 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.grouppragma uqci.calsetpragma uqci.shotspragma uqci.capturepragma 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
本仓库追求的是务实可用的兼容桥,而不是语法覆盖的理论完备性。