選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

搭配 Amazon Braket 使用 CUDA-Q

焦點模式
搭配 Amazon Braket 使用 CUDA-Q - Amazon Braket

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

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

NVIDIA’s CUDA-Q 是一種軟體程式庫,專為程式設計混合量子演算法而設計,結合 CPUs、GPUs 和 Quantum 處理單元 QPUs)。它提供統一的程式設計模型,可讓開發人員在單一程式中同時表達傳統和量子指令,簡化工作流程。 使用其內建 CPU 和 GPU 模擬器CUDA-Q加速量子程式模擬和執行時間。

在 Amazon Braket Hybrid Jobs CUDA-Q上使用 可提供彈性的隨需運算環境。運算執行個體只會在工作負載期間執行,確保您只需為使用的項目付費。Amazon Braket Hybrid Jobs 也提供可擴展的體驗。使用者可以從較小的執行個體開始進行原型設計和測試,然後擴展到能夠處理更大工作負載的大型執行個體,以進行完整的實驗。

Amazon Braket Hybrid Jobs 支援 GPUs,對於最大化 CUDA-Q的潛力至關重要。相較於 CPU 型模擬器,GPUs 可大幅加速量子程式模擬,特別是在使用高 qubit 計數電路時。在 Amazon Braket 混合任務CUDA-Q上使用 時,平行化會變得直接。混合任務簡化了電路取樣和可觀測評估在多個運算節點之間的分佈。這種無縫平行化的CUDA-Q工作負載可讓使用者更專注於開發工作負載,而不是為大規模實驗設定基礎設施。

若要開始使用,請參閱 Amazon Braket 範例 Github 上的CUDA-Q入門範例,以建立CUDA-Q透過自帶容器 (BYOC) 支援的任務容器。請確定您擁有適當的 IAM 許可,以建置容器並將其發佈CUDA-Q至 Amazon ECR 儲存庫。

下列程式碼片段是使用 Amazon Braket Hybrid Jobs 執行CUDA-Q程式hello-world的範例。

image_uri = "<ecr-image-uri>" @hybrid_job(device='local:nvidia/qpp-cpu', image_uri=image_uri) def hello_quantum(): import cudaq # define the backend device=get_job_device_arn() cudaq.set_target(device.split('/')[-1]) # define the Bell circuit kernel = cudaq.make_kernel() qubits = kernel.qalloc(2) kernel.h(qubits[0]) kernel.cx(qubits[0], qubits[1]) # sample the Bell circuit result = cudaq.sample(kernel, shots_count=1000) measurement_probabilities = dict(result.items()) return measurement_probabilities

上述範例模擬 CPU 模擬器上的 Bell 電路。此範例會在您的筆記型電腦或 Braket Jupyter 筆記本上執行。由於local=True設定,當您執行此指令碼時,容器會在您的本機環境中啟動,以執行 CUDA-Q 程式進行測試和偵錯。完成測試後,您可以移除local=True旗標並執行任務 AWS。若要進一步了解,請參閱 Amazon Braket 混合任務入門

如果您的工作負載具有高 qubit 計數、大量電路或大量反覆運算,您可以透過指定 instance_config設定來使用更強大的 CPU 運算資源。下列程式碼片段說明如何在hybrid_job裝飾工具中設定 instance_config 設定。如需支援執行個體類型的詳細資訊,請參閱設定混合任務執行個體以執行指令碼。如需執行個體類型的清單,請參閱 Amazon EC2 執行個體類型

@hybrid_job( device="local:nvidia/qpp-cpu", image_uri=image_uri, instance_config=InstanceConfig(instanceType="ml.c5.2xlarge"), ) def my_job_script(): ...

對於要求更高的工作負載,您可以在 CUDA-Q GPU 模擬器上執行工作負載。若要啟用 GPU 模擬器,請使用後端名稱 nvidianvidia 後端以 CUDA-Q GPU 模擬器的形式運作。接著,選取支援 NVIDIA GPU 的 Amazon EC2 執行個體類型。下列程式碼片段顯示 GPU 設定的hybrid_job裝飾項目。

@hybrid_job( device="local:nvidia/nvidia", image_uri=image_uri, instance_config=InstanceConfig(instanceType="ml.p3.2xlarge"), ) def my_job_script(): ...

Amazon Braket Hybrid Jobs 支援使用 的平行 GPU 模擬CUDA-Q。您可以平行評估多個可觀測項目或多個電路,以提升工作負載的效能。若要平行處理多個可觀測項目,請對演算法指令碼進行下列變更。

設定nvidia後端mgpu的選項。這是平行化可觀測項目的必要項目。平行處理使用 MPI 進行 GPUs 之間的通訊,因此 MPI 需要在執行前初始化,並在執行後完成。

接著,設定 來指定執行模式execution=cudaq.parallel.mpi。下列程式碼片段顯示這些變更。

cudaq.set_target("nvidia", option="mqpu") cudaq.mpi.initialize() result = cudaq.observe( kernel, hamiltonian, shots_count=n_shots, execution=cudaq.parallel.mpi ) cudaq.mpi.finalize()

hybrid_job裝飾工具中,指定託管多個 GPUs 的執行個體類型,如下列程式碼片段所示。

@hybrid_job( device="local:nvidia/nvidia-mqpu", instance_config=InstanceConfig(instanceType="ml.p3.8xlarge", instanceCount=1), image_uri=image_uri, ) def parallel_observables_gpu_job(sagemaker_mpi_enabled=True): ...

Amazon Braket 範例 Github 中的平行模擬筆記本提供end-to-end範例,示範如何在 GPU 後端上執行量子程式模擬,以及對可觀測項目和電路批次執行平行模擬。

在量子電腦上執行工作負載

完成模擬器測試後,您可以轉換至在 QPUs 上執行實驗。只要將目標切換到 Amazon Braket QPU,例如 IQM、 IonQ或 Rigetti 裝置。下列程式碼片段說明如何將目標設定為 IQM Garnet 裝置。如需可用 QPUs的清單,請參閱 Amazon Braket 主控台

device_arn = "arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet" cudaq.set_target("braket", machine=device_arn)

如需 Amazon Braket 混合任務的詳細資訊,請參閱 開發人員指南中的使用 Amazon Braket 混合任務。若要進一步了解 CUDA-Q,請參閱 CUDA-Q 文件

在本頁面

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。