

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 OpenQASM 3.0 运行您的电路
<a name="braket-openqasm"></a>

 Amazon Braket 现在支持适用于基于门的量子设备和模拟器的 [OpenQASM 3.0](https://openqasm.com/)。本用户指南提供了有关 Braket 支持的 OpenQASM 3.0 子集的信息。Braket 客户现在可以选择使用 [SDK](braket-constructing-circuit.md) 提交 Braket 电路，也可以使用 [Amazon Braket API](https://docs.aws.amazon.com/braket/latest/APIReference/Welcome.html) 和 [Amazon Braket Python SDK](https://github.com/aws/amazon-braket-sdk-python) 直接向所有基于门的设备提供 OpenQASM 3.0 字符型。

本指南中的主题将引导您了解如何完成以下量子任务的各种示例。
+  [在不同的 Braket 设备上创建和提交 OpenQASM 量子任务](braket-openqasm-create-submit-task.md) 
+  [访问受支持的操作和结果类型](braket-openqasm-device-support.md#braket-openqasm-supported-operations-results-result-types) 
+  [使用 OpenQASM 模拟噪声](braket-openqasm-noise-simulation.md) 
+  [在 OpenQASM 中使用逐字记录编译](braket-openqasm-verbatim-compilation.md) 
+  [排查 OpenQASM 问题](https://docs.aws.amazon.com/braket/latest/developerguide/braket-troubleshooting-openqasm.html) 

本指南还介绍了某些硬件特有的功能，这些功能可以通过 Braket 上的 OpenQASM 3.0 实现，并提供了更多资源的链接。

**Topics**
+ [什么是 OpenQASM 3.0？](#braket-openqasm-what-is)
+ [何时使用 OpenQASM 3.0](#braket-openqasm-when-to-use)
+ [OpenQASM 3.0 的工作方式](#braket-openqasm-how-it-works)
+ [先决条件](#braket-openqasm-prerequisites)
+ [Braket 支持哪些 OpenQASM 功能？](braket-openqasm-supported-features.md)
+ [创建并提交示例 OpenQASM 3.0 量子任务](braket-openqasm-create-submit-task.md)
+ [在不同的 Braket 设备上支持 OpenQASM](braket-openqasm-device-support.md)
+ [使用 OpenQASM 3.0 模拟噪声](braket-openqasm-noise-simulation.md)
+ [量子比特 使用 OpenQasm 3.0 重新布线](braket-openqasm-rewire-qubits.md)
+ [使用 OpenQASM 3.0 进行逐字记录编译](braket-openqasm-verbatim-compilation.md)
+ [Braket 控制台](#braket-openqasm-braket-console)
+ [其他资源](#braket-openqasm-more-resources)
+ [使用 OpenQASM 3.0 计算梯度](braket-openqasm-computing-gradients.md)
+ [使用 OpenQASM 3.0 测量特定的量子比特](braket-openqasm-measure-qubits.md)

## 什么是 OpenQASM 3.0？
<a name="braket-openqasm-what-is"></a>

开放量子汇编语言（OpenQASM）是量子指令的[中间表示形式](https://en.wikipedia.org/wiki/Intermediate_representation)。OpenQASM 是一个开源框架，广泛用于规范基于门的设备的量子程序。使用 OpenQASM，用户可以对构成量子计算基块的量子门和测量操作进行编程。许多量子编程库都使用先前版本的 OpenQASM (2.0) 来描述基本程序。

新版本的 OpenQASM (3.0) 扩展了之前的版本，增加了更多功能，如脉冲电平控制、门定时和经典控制流，以弥合最终用户界面和硬件描述语言之间的差距。当前版本 3.0 的详细信息和规格可在 GitHub [OpenQasm 3.x](https://github.com/openqasm/openqasm) 实时规格中找到。OpenQasm的未来发展由OpenQasm 3.0 [技术指导委员会管理，该委员会](https://aws.amazon.com/blogs/quantum-computing/aws-joins-the-openqasm-3-0-technical-steering-committee/)与IBM、微软和因斯布鲁克大学一起 AWS 是该委员会的成员。

## 何时使用 OpenQASM 3.0
<a name="braket-openqasm-when-to-use"></a>

OpenQASM 提供了一个富有表现力的框架，可通过非特定架构的低级控件来指定量子程序，因而非常适合作为多个基于门的设备的表示形式。Braket 对 OpenQASM 的支持进一步推动了其作为开发基于门的量子算法的一致方法的采用，从而减少了用户在多个框架中学习和维护库的需求。

如果您在 OpenQASM 3.0 中已有程序库，则可以对其进行调整，使其与 Braket 配合使用，而不必完全重写这些电路。研究人员和开发人员还应受益于越来越多的支持 OpenQASM 算法开发的可用第三方库。

## OpenQASM 3.0 的工作方式
<a name="braket-openqasm-how-it-works"></a>

Braket 对 OpenQASM 3.0 的支持提供了与当前中间表示法相同的功能。这意味着，您今天在硬件设备和使用 Braket 的按需模拟器上能做的任何事情，都可以使用 Braket API 在 OpenQASM 上处理。您可以通过直接向所有基于门的设备提供 OpenQASM 字符串来运行 OpenQASM 3.0 程序，其方式类似于当前向 Braket 上的设备提供电路。Braket 用户还可以集成支持 OpenQASM 3.0 的第三方库。本指南的其他部分详细介绍了如何开发用于 Braket 的 OpenQASM 表示形式。

## 先决条件
<a name="braket-openqasm-prerequisites"></a>

要在 Amazon Braket 上使用 OpenQASM 3.0，您必须拥有 [Amazon Braket Python 架构](https://github.com/aws/amazon-braket-schemas-python)的 1.8.0 版本和 [Amazon Braket Python SDK](https://github.com/aws/amazon-braket-sdk-python) 的 1.17.0 版本或更高版本。

如果您是首次接触 Amazon Braket 的用户，则需要启用 Amazon Braket。有关说明，请参阅[启用 Amazon Braket](https://docs.aws.amazon.com/braket/latest/developerguide/braket-enable-overview.html)。

## Braket 控制台
<a name="braket-openqasm-braket-console"></a>

OpenQASM 3.0 任务可用，可在 Amazon Braket 控制台中进行管理。在控制台上，您在 OpenQASM 3.0 中提交量子任务的体验与提交现有量子任务的体验相同。

## 其他资源
<a name="braket-openqasm-more-resources"></a>

OpenQASM 在所有 Amazon Braket 区域中都可用。

[有关在 Amazon Braket 上开始使用 OpenQasm 的笔记本示例，请参阅 Braket 教程。 GitHub](https://github.com/aws/amazon-braket-examples/blob/main/examples/braket_features/Getting_Started_with_OpenQASM_on_Braket.ipynb)