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 CPUs, GPUs, dan unit pemrosesan Quantum (QPUs). 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 bawaannya. CUDA-Qtersedia dengan instance notebook Braket asli (NBIs) dan Pekerjaan Hibrida Amazon Braket.
Di bagian ini:
CUDA-Q di NBIs
CUDA-Qdiinstal secara default di lingkungan Braket NBI. Anda dapat membuka CUDA-Q contoh notebook dengan membuka halaman peluncur Jupyter dan memilih ubin dan BraketCUDA-Q. Ini membuka contoh notebook 0_hello_cudaq_jobs.ipynb di jendela utama. Untuk CUDA-Q contoh lainnya, 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 yang fleksibel dan sesuai permintaan. Instans komputasi hanya berjalan selama durasi beban kerja Anda, memastikan Anda hanya membayar untuk apa yang Anda gunakan. Amazon Braket Hybrid Jobs juga memberikan pengalaman yang terukur. Pengguna dapat memulai dengan instance yang lebih kecil untuk pembuatan prototipe dan pengujian, kemudian meningkatkan skala ke instance yang lebih besar yang mampu menangani beban kerja yang lebih besar untuk eksperimen penuh.
Dukungan Amazon Braket Hybrid Jobs GPUs yang penting untuk memaksimalkan potensiCUDA-Q. GPUs secara signifikan mempercepat simulasi program kuantum dibandingkan dengan simulator berbasis CPU, terutama ketika bekerja dengan sirkuit hitungan qubit tinggi. Paralelisasi menjadi mudah saat menggunakan di Amazon CUDA-Q Braket Hybrid Jobs. Hybrid Jobs menyederhanakan distribusi circuit sampling 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 pada contoh
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 atau notebook Braket Jupyter Anda. Karena local=True pengaturan, ketika Anda menjalankan skrip ini, sebuah wadah akan mulai di lingkungan lokal Anda untuk menjalankan CUDA-Q program untuk pengujian dan debugging. Setelah Anda selesai menguji, Anda dapat menghapus local=True bendera dan menjalankan pekerjaan Anda AWS. Untuk mempelajari lebih lanjut, lihat Bekerja dengan Pekerjaan Hibrida Amazon Braket.
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 pengaturan. instance_config Cuplikan kode berikut menunjukkan cara mengkonfigurasi instance_config pengaturan di dekorator. hybrid_job Untuk informasi selengkapnya tentang jenis instans yang didukung, lihat Mengonfigurasi instance pekerjaan hibrid 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 pada simulator CUDA-Q GPU. Untuk mengaktifkan simulator GPU, gunakan nama backend. nvidia nvidiaBackend beroperasi sebagai simulator CUDA-Q GPU. Selanjutnya, pilih jenis instans Amazon EC2 yang mendukung GPU. NVIDIA Cuplikan kode berikut menunjukkan dekorator yang dikonfigurasi hybrid_job GPU.
@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 mendukung simulasi GPU NBIs paralel dengan. CUDA-Q Anda dapat memparalelkan evaluasi beberapa yang dapat diamati atau beberapa sirkuit untuk meningkatkan kinerja beban kerja Anda. Untuk memparalelkan beberapa observable, buat perubahan berikut pada skrip algoritme Anda.
Tetapkan mgpu opsi nvidia backend. Ini diperlukan untuk memparalelkan yang dapat diamati. Paralelisasi menggunakan MPI untuk komunikasi antara GPUs, sehingga MPI perlu diinisialisasi sebelum eksekusi dan diselesaikan setelahnya.
Selanjutnya, tentukan mode eksekusi dengan pengaturanexecution=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()
Dalam hybrid_job dekorator tentukan jenis instance yang meng-host beberapa GPUs 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 QPUs. Cukup alihkan target ke QPU Amazon Braket, seperti,, atau IQM perangkatIonQ. Rigetti Cuplikan kode berikut menggambarkan cara mengatur target ke perangkat. IQM Garnet Untuk daftar yang tersedia QPUs, 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 Hybrid, lihat Bekerja dengan Pekerjaan Hibrida Amazon Braket di panduan pengembang. Untuk mempelajari selengkapnya tentang CUDA-Q, lihat NVIDIA CUDA-Q dokumentasi