Braket Pulse - Amazon Braket

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Braket Pulse

Pulsa adalah sinyal analog yang mengontrol qubit di komputer kuantum. Dengan perangkat tertentu di Amazon Braket, Anda dapat mengakses fitur kontrol pulsa untuk mengirimkan sirkuit menggunakan pulsa. Anda dapat mengakses kontrol pulsa melalui Braket SDK, menggunakan OpenQASM 3.0, atau langsung melalui Braket API. Pertama, mari kita perkenalkan beberapa konsep kunci untuk kontrol pulsa di Braket.

Bingkai

Bingkai adalah abstraksi perangkat lunak yang bertindak sebagai jam dalam program kuantum dan fase. Waktu jam bertambah pada setiap penggunaan dan sinyal pembawa stateful yang ditentukan oleh frekuensi. Saat mentransmisikan sinyal ke qubit, bingkai menentukan frekuensi pembawa qubit, offset fase, dan waktu di mana amplop bentuk gelombang dipancarkan. Dalam Braket Pulse, membangun frame tergantung pada perangkat, frekuensi, dan fase. Bergantung pada perangkat, Anda dapat memilih bingkai yang telah ditentukan atau membuat instance frame baru dengan menyediakan port.

from braket.pulse import Frame device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3") drive_frame = device.frames["q0_rf_frame"] device = AwsDevice("arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy") readout_frame = Frame(name="r0_measure", port=port0, frequency=5e9, phase=0)

Port

Port adalah abstraksi perangkat lunak yang mewakili setiap komponen perangkat keras input/output yang mengendalikan qubit. Ini membantu vendor perangkat keras menyediakan antarmuka yang dengannya pengguna dapat berinteraksi untuk memanipulasi dan mengamati qubit. Port dicirikan oleh string tunggal yang mewakili nama konektor. String ini juga memperlihatkan kenaikan waktu minimum yang menentukan seberapa halus kita dapat mendefinisikan bentuk gelombang.

from braket.pulse import Port Port0 = Port("channel_0", dt=1e-9)

Bentuk gelombang

Bentuk gelombang adalah amplop yang bergantung pada waktu yang dapat kita gunakan untuk memancarkan sinyal pada port output atau menangkap sinyal melalui port input. Anda dapat menentukan bentuk gelombang Anda secara langsung baik melalui daftar bilangan kompleks atau dengan menggunakan templat bentuk gelombang untuk menghasilkan daftar dari penyedia perangkat keras.

from braket.pulse import ArbitraryWaveform, ConstantWaveform cst_wfm = ConstantWaveform(length=1e-7, iq=0.1) arb_wf = ArbitraryWaveform(amplitudes=np.linspace(0, 100))

Braket Pulse menyediakan perpustakaan standar bentuk gelombang, termasuk bentuk gelombang konstan, bentuk gelombang Gaussian, dan bentuk gelombang Penghapusan Derivatif oleh Gerbang Adiabatik (DRAG). Anda dapat mengambil data bentuk gelombang melalui sample fungsi untuk menggambar bentuk bentuk gelombang seperti yang ditunjukkan pada contoh berikut.

gaussian_waveform = GaussianWaveform(1e-7, 25e-9, 0.1) x = np.arange(0, gaussian_waveform.length, drive_frame.port.dt) plt.plot(x, gaussian_waveform.sample(drive_frame.port.dt))
Grafik yang menunjukkan amplitudo dari waktu ke waktu untuk dua kasus: ZaE = Benar (kurva bawah) dan ZaE = Salah (kurva atas). Kurva memiliki bentuk lonceng memuncak sekitar 0,5 detik dengan amplitudo 0,10 a. u..

Gambar sebelumnya menggambarkan bentuk gelombang Gaussian yang dibuat dari. GaussianWaveform Kami memilih panjang pulsa 100 ns, lebar 25 ns, dan amplitudo 0,1 (unit arbitrer). Bentuk gelombang berpusat di jendela pulsa. GaussianWaveformmenerima argumen boolean zero_at_edges (ZaE dalam legenda). Ketika diatur keTrue, argumen ini mengimbangi bentuk gelombang Gaussian sedemikian rupa sehingga titik pada t=0 dan t= length berada pada nol dan mengubah skala amplitudonya sedemikian rupa sehingga nilai maksimum sesuai dengan argumen. amplitude

Sekarang kita telah membahas konsep dasar untuk akses tingkat pulsa, selanjutnya kita akan melihat bagaimana membangun sirkuit menggunakan gerbang dan pulsa.