Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan CUDA-Q dengan Amazon Braket
NVIDIA's CUDA-Qadalah perpustakaan perangkat lunak yang dirancang untuk pemrograman algoritma kuantum hibrida yang menggabungkan CPU, GPU, dan unit pemrosesan kuantum (QPU). Ini menyediakan model pemrograman terpadu, memungkinkan pengembang untuk mengekspresikan instruksi klasik dan kuantum dalam satu program, merampingkan alur kerja. CUDA-Qmempercepat simulasi program kuantum dan runtime dengan simulator CPU dan GPU bawaan. CUDA-Qtersedia dengan instans notebook Braket asli (NBI) dan Amazon Braket Hybrid Jobs.
Di bagian ini:
CUDA-Q dalam NBiS
CUDA-Qdiinstal secara default di lingkungan Braket NBI. Anda dapat membuka notebook CUDA-Q contoh dengan membuka halaman peluncur Jupyter dan memilih ubin dan Braket. CUDA-Q Ini membuka contoh notebook 0_Getting_started_with_CUDA-Q.ipynb di jendela utama. Untuk CUDA-Q contoh lebih lanjut, lihat panel kiri di nvidia_cuda_q/ direktori.
Anda juga dapat memverifikasi versi CUDA-Q atau paket pihak ketiga lainnya yang diinstal di NBI Anda. Misalnya, Anda dapat menjalankan perintah berikut di sel kode notebook untuk memverifikasi versiCUDA-Q, Qiskit, PennyLane, dan paket Braket yang diinstal di lingkungan.
%pip freeze | grep -i -e cudaq -e qiskit -e pennylane -e braket
CUDA-Q dalam Pekerjaan Hybrid
Menggunakan CUDA-Q di Amazon Braket Hybrid Jobs menawarkan lingkungan komputasi sesuai permintaan yang fleksibel. Instans komputasi hanya berjalan selama durasi beban kerja Anda, memastikan Anda membayar hanya untuk apa yang Anda gunakan. Amazon Braket Hybrid Jobs juga memberikan pengalaman yang dapat diskalakan. Pengguna dapat memulai dengan instance yang lebih kecil untuk pembuatan prototipe dan pengujian, kemudian menskalakan ke instans yang lebih besar yang mampu menangani beban kerja yang lebih besar untuk eksperimen penuh.
Amazon Braket Hybrid Jobs mendukung GPU yang penting untuk memaksimalkan potensiCUDA-Q. GPU secara signifikan mempercepat simulasi program kuantum dibandingkan dengan CPU-based simulator, terutama ketika bekerja dengan sirkuit jumlah qubit tinggi. Paralelisasi menjadi mudah saat menggunakan CUDA-Q di Amazon Braket Hybrid Jobs. Hybrid Jobs menyederhanakan distribusi pengambilan sampel sirkuit dan evaluasi yang dapat diamati di beberapa node komputasi. Paralelisasi CUDA-Q beban kerja yang mulus ini memungkinkan pengguna untuk lebih fokus pada pengembangan beban kerja mereka daripada menyiapkan infrastruktur untuk eksperimen skala besar.
Untuk memulai, lihat contoh CUDA-Q starter
Cuplikan kode berikut adalah hello-world contoh untuk menjalankan CUDA-Q program dengan Amazon Braket Hybrid Jobs.
image_uri = retrieve_image(Framework.CUDAQ, AwsSession().region) @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
Contoh di atas mensimulasikan sirkuit Bell pada simulator CPU. Contoh ini berjalan secara lokal di laptop Anda atau notebook Braket Jupyter. Karena local=True pengaturan, ketika Anda menjalankan skrip ini, sebuah wadah akan dimulai di lingkungan lokal Anda untuk menjalankan CUDA-Q program untuk pengujian dan debugging. Setelah selesai pengujian, Anda dapat menghapus ben local=True dera dan menjalankan pekerjaan Anda AWS. Untuk mempelajari selengkapnya, lihat Bek erja dengan Amazon Braket Hybrid Jobs.
Jika beban kerja Anda memiliki jumlah qubit yang tinggi, sejumlah besar sirkuit atau sejumlah besar iterasi, Anda dapat menggunakan sumber daya komputasi CPU yang lebih kuat dengan menentukan setelan. instance_config Cuplikan kode berikut menunjukkan cara mengkonfigurasi instance_config pengaturan di hybrid_job dekorator. Untuk informasi selengkapnya tentang jenis instans yang didukung, lihat Meng onfigurasi instance pekerjaan hibrida Anda. Untuk daftar jenis instans, lihat Jenis Instans Amazon EC2.
@hybrid_job( device="local:nvidia/qpp-cpu", image_uri=image_uri, instance_config=InstanceConfig(instanceType="ml.c5.2xlarge"), ) def my_job_script(): ...
Untuk beban kerja yang lebih menuntut, Anda dapat menjalankan beban kerja Anda di simulator CUDA-Q GPU. Untuk mengaktifkan simulator GPU, gunakan nama nvidia backend. nvidiaBackend beroperasi sebagai simulator CUDA-Q GPU. Selanjutnya, pilih jenis instans Amazon EC2 yang mendukung NVIDIA GPU. Cuplikan kode berikut menunjukkan GPU-configured hybrid_job dekorator.
@hybrid_job( device="local:nvidia/nvidia", image_uri=image_uri, instance_config=InstanceConfig(instanceType="ml.g4dn.xlarge"), ) def my_job_script(): ...
Amazon Braket Hybrid Jobs dan NBI mendukung simulasi GPU paralel dengan. CUDA-Q Anda dapat memparalelkan evaluasi beberapa observable atau beberapa sirkuit untuk meningkatkan kinerja beban kerja Anda. Untuk memparalelkan beberapa observable, buat perubahan berikut pada skrip algoritma Anda.
Atur mgpu opsi nvidia backend. Ini diperlukan untuk paralelisasi yang dapat diamati. Paralelisasi menggunakan MPI untuk komunikasi antar GPU, sehingga MPI perlu diinisialisasi sebelum eksekusi dan diselesaikan setelahnya.
Selanjutnya, tentukan mode eksekusi dengan mengaturexecution=cudaq.parallel.mpi. Cuplikan kode berikut menunjukkan perubahan ini.
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()
Di hybrid_job dekorator tentukan jenis instance yang menghosting beberapa GPU seperti yang ditunjukkan dalam cuplikan kode berikut.
@hybrid_job( device="local:nvidia/nvidia-mqpu", instance_config=InstanceConfig(instanceType="ml.g4dn.12xlarge", instanceCount=1), image_uri=image_uri, ) def parallel_observables_gpu_job(sagemaker_mpi_enabled=True): ...
Notebook simulasi paralel
Menjalankan beban kerja Anda di komputer kuantum
Setelah menyelesaikan pengujian simulator, Anda dapat beralih ke menjalankan eksperimen pada QPU. Cukup alihkan target ke Amazon Braket QPU, sepertiIQM,IonQ, atau Rigetti perangkat. Cuplikan kode berikut menggambarkan cara mengatur target ke IQM Garnet perangkat. Untuk daftar QPU yang tersedia, lihat konsol Amazon Braket.
device_arn = "arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet" cudaq.set_target("braket", machine=device_arn)
Untuk informasi selengkapnya tentang Pekerjaan Hibrida, lihat Bek erja dengan Amazon Braket Hybrid Jobs di panduan pengembang. Untuk mempelajari selengkapnya tentang CUDA-Q, lihat NVIDIA CUDA-Q dokumentasi