Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

CUDA-Q mit Amazon Braket verwenden

Fokusmodus
CUDA-Q mit Amazon Braket verwenden - Amazon Braket

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

NVIDIA’s CUDA-Q ist eine Softwarebibliothek, die für die Programmierung hybrider Quantenalgorithmen entwickelt wurde CPUs GPUs, die, und Quantenverarbeitungseinheiten (QPUs) kombinieren. Sie bietet ein einheitliches Programmiermodell, das es Entwicklern ermöglicht, sowohl klassische als auch Quantenbefehle in einem einzigen Programm auszudrücken und so Arbeitsabläufe zu rationalisieren. CUDA-Q beschleunigt die Simulation und Laufzeit von Quantenprogrammen mit seinen integrierten CPU- und GPU-Simulatoren.

Die Verwendung von CUDA-Q auf Amazon Braket Hybrid Jobs bietet eine flexible On-Demand-Computerumgebung. Recheninstanzen werden nur für die Dauer Ihrer Arbeitslast ausgeführt, sodass sichergestellt ist, dass Sie nur für das bezahlen, was Sie tatsächlich nutzen. Amazon Braket Hybrid Jobs bietet auch ein skalierbares Erlebnis. Benutzer können mit kleineren Instances für das Prototyping und Testen beginnen und dann auf größere Instances skalieren, die größere Workloads für vollständige Experimente bewältigen können.

Amazon Braket Hybrid Jobs-Unterstützung GPUs , die für die Maximierung unerlässlich ist CUDA-Qist Potenzial. GPUs beschleunigt die Simulationen von Quantenprogrammen im Vergleich zu CPU-basierten Simulatoren erheblich, insbesondere bei der Arbeit mit Schaltungen mit hoher Qubitzahl. Die Parallelisierung wird bei der Verwendung von CUDA-Q auf Amazon Braket Hybrid Jobs. Hybrid Jobs vereinfacht die Verteilung von Schaltkreisabtastungen und beobachtbaren Auswertungen auf mehrere Rechenknoten. Diese nahtlose Parallelisierung von CUDA-Q Workloads ermöglichen es Benutzern, sich mehr auf die Entwicklung ihrer Workloads zu konzentrieren, anstatt die Infrastruktur für groß angelegte Experimente einzurichten.

Informationen zu den ersten Schritten finden Sie im CUDA-Q Starter-Beispiel auf dem Github von Amazon Braket Examples zum Erstellen eines Job-Containers, der CUDA-Q durch Bring Your Own Container (BYOC). Stellen Sie sicher, dass Sie über die entsprechenden IAM-Berechtigungen verfügen, um Ihre zu erstellen und zu veröffentlichen CUDA-Q Container zu einem Amazon ECR-Repo.

Der folgende Codeausschnitt ist ein Beispiel für die Ausführung eines hello-world CUDA-Q Programm mit Amazon Braket Hybrid Jobs.

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

Das obige Beispiel simuliert eine Bell-Schaltung auf einem CPU-Simulator. Dieses Beispiel wird lokal auf Ihrem Laptop oder Braket Jupyter-Notebook ausgeführt. Aufgrund der local=True Einstellung wird bei der Ausführung dieses Skripts ein Container in Ihrer lokalen Umgebung gestartet, um das CUDA-Q-Programm zum Testen und Debuggen auszuführen. Nachdem Sie den Test abgeschlossen haben, können Sie das local=True Flag entfernen und Ihren Job ausführen. AWS Weitere Informationen finden Sie unter Erste Schritte mit Amazon Braket Hybrid Jobs.

Wenn Ihre Workloads eine hohe Qubit-Anzahl, eine große Anzahl von Schaltungen oder eine große Anzahl von Iterationen aufweisen, können Sie leistungsstärkere CPU-Rechenressourcen verwenden, indem Sie die Einstellung angeben. instance_config Der folgende Codeausschnitt zeigt, wie Sie die Einstellung im Decorator konfigurieren. instance_config hybrid_job Weitere Informationen zu den unterstützten Instanztypen finden Sie unter Konfigurieren der Hybrid-Job-Instanz zur Ausführung Ihres Skripts. Eine Liste der Instance-Typen finden Sie unter EC2 Amazon-Instance-Typen.

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

Für anspruchsvollere Workloads können Sie Ihre Workloads auf einem ausführen CUDA-Q GPU-Simulator. Verwenden Sie den Backend-Namennvidia, um einen GPU-Simulator zu aktivieren. Das nvidia Backend funktioniert als CUDA-Q GPU-Simulator. Wählen Sie als Nächstes einen EC2 Amazon-Instance-Typ aus, der eine unterstützt NVIDIA GPU. Der folgende Codeausschnitt zeigt den hybrid_job GPU-konfigurierten Decorator.

@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 unterstützt parallel GPU-Simulationen mit CUDA-Q. Sie können die Auswertung mehrerer Observables oder mehrerer Schaltungen parallelisieren, um die Leistung Ihres Workloads zu steigern. Um mehrere Observables zu parallelisieren, nehmen Sie die folgenden Änderungen an Ihrem Algorithmus-Skript vor.

Stellen Sie die mgpu Option des Backends ein. nvidia Dies ist erforderlich, um die Observablen zu parallelisieren. Bei der Parallelisierung wird MPI für die Kommunikation zwischen beiden verwendet. GPUs Daher muss MPI vor der Ausführung initialisiert und danach finalisiert werden.

Geben Sie als Nächstes den Ausführungsmodus durch Einstellung an. execution=cudaq.parallel.mpi Der folgende Codeausschnitt zeigt diese Änderungen.

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()

Geben Sie im hybrid_job Decorator einen Instanztyp an, der mehrere Instanzen hostet, GPUs wie im folgenden Codeausschnitt gezeigt.

@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): ...

Das Notizbuch für parallel Simulationen im Github Amazon Braket-Beispiele enthält end-to-end Beispiele, die zeigen, wie Quantenprogrammsimulationen auf GPU-Backends ausgeführt und parallel Simulationen von Observablen und Schaltkreisstapeln durchgeführt werden können.

Ihre Workloads auf Quantencomputern ausführen

Nach Abschluss der Simulatortests können Sie mit der Durchführung von Experimenten am QPUs beginnen. Wechseln Sie einfach das Ziel zu einer Amazon Braket-QPU, z. B. IQM, IonQ, oder Rigetti Geräte. Der folgende Codeausschnitt veranschaulicht, wie Sie das Ziel auf das setzen IQM Garnet Gerät. Eine Liste der verfügbaren QPUs Produkte finden Sie in der Amazon Braket-Konsole.

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

Weitere Informationen zu Amazon Braket Hybrid Jobs finden Sie unter Arbeiten mit Amazon Braket Hybrid Jobs im Entwicklerhandbuch. Für weitere Informationen über CUDA-Q, siehe CUDA-Q Dokumentation.

Auf dieser Seite

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.