

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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)
+ [Qubit 使用 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 測量特定 qubit](braket-openqasm-measure-qubits.md)

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

Open Quantum Assembly Language (OpenQASM) 是量子指示的[中繼表示](https://en.wikipedia.org/wiki/Intermediate_representation)法。OpenQASM 是一種開放原始碼架構，廣泛用於閘道型裝置的量子程式規格。使用 OpenQASM，使用者可以程式設計構成量子運算建置區塊的量子閘道和測量操作。舊版 OpenQASM (2.0) 已由多個量子程式設計程式庫用來描述基本程式。

新版本的 OpenQASM (3.0) 擴展先前的版本以包含更多功能，例如脈衝層級控制、閘道計時和傳統控制流程，以彌補最終使用者界面和硬體描述語言之間的差距。目前 3.0 版的詳細資訊和規格可在 GitHub [OpenQASM 3.x Live Specification](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/)管理，該委員會 AWS 是 IBM、Microsoft 和 University of Innsbruck 的成員。

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

OpenQASM 提供表達式架構，透過非架構特定性的低階控制項來指定量子程式，因此非常適合做為多個閘道型裝置的表示。對 OpenQASM 的 Braket 支援進一步將其採用為開發閘道式量子演算法的一致方法，減少使用者在多個架構中學習和維護程式庫的需求。

如果您在 OpenQASM 3.0 中有現有的程式庫，您可以調整它們以與 Braket 搭配使用，而不是完全重寫這些電路。研究人員和開發人員也應受益於越來越多的可用第三方程式庫，並支援 OpenQASM 中的演算法開發。

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

從 Braket 支援 OpenQASM 3.0，可提供與目前中繼表示法相同的功能。這表示您現在可以在硬體裝置和隨需模擬器上使用 Braket 執行的任何操作，您可以使用 Braket 使用 OpenQASM 執行API。您可以透過直接提供 OpenQASM 字串給所有以閘道為基礎的裝置來執行 OpenQASM 3.0 程式，其方式類似於目前將電路提供給 Braket 上的裝置的方式。 OpenQASM Braket 使用者也可以整合支援 OpenQASM 3.0 的第三方程式庫。本指南的其餘部分會詳細說明如何開發 OpenQASM 表示法以搭配 Braket 使用。

## 先決條件
<a name="braket-openqasm-prerequisites"></a>

若要在 Amazon Braket 上使用 OpenQASM 3.0，您必須擁有 [Amazon Braket Python Schemas ](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)。