Penyedia Rigetti

Prosesor kuantum Rigetti adalah mesin universal model gerbang berdasarkan kubit superkonduktor yang dapat disetel. Fitur sistem dan karakteristik perangkat termasuk kemampuan pembacaan yang ditingkatkan, waktu pemrosesan kuantum yang dipercepat, waktu gerbang cepat untuk beberapa keluarga gerbang yang mengikat, pengambilan sampel yang cepat melalui pengaturan kembali register aktif, dan pengendalian parametrik.

  • Publisher: Rigetti
  • ID Penyedia: rigetti

Penyedia Rigetti menyediakan hal berikut targets :

Nama sasaran ID Sasaran Jumlah kubit Deskripsi
Quantum Virtual Machine (QVM) rigetti.sim.qvm - Simulator sumber terbuka untuk program Quil, Q#, dan Qiskit. Bebas biaya.
Cepheus-1-108Q rigetti.qpu.cepheus-1-108q 108 kubit

Catatan

Simulator dan perangkat keras targets Rigetti tidak mendukung program Cirq.

Rigetti targets sesuai dengan profil QIR Base. Untuk informasi selengkapnya tentang profil target ini dan batasannya, lihat Mahami jenis profil target di Azure Quantum.

Komputer quantum

Semua QPU rigetti yang tersedia untuk umum tersedia melalui Azure Quantum. Daftar ini dapat berubah tanpa pemberitahuan terlebih dahulu.

Cepheus-1-108Q

Prosesor kuantum 108-qubit yang dibangun dari susunan chip 9-qubit yang disusun bersama.

  • Jenis Pekerjaan: Quantum Program
  • Format Data: rigetti.quil.v1, rigetti.qir.v1
  • ID Target: rigetti.qpu.cepheus-1-108q
  • Profil Eksekusi Target: QIR Base

Simulator

Quantum Virtual Machine (QVM) adalah simulator sumber terbuka untuk Quil. menerima rigetti.sim.qvmtargetprogram Quil sebagai teks dan menjalankan program tersebut di QVM yang dihosting di cloud, mengembalikan hasil yang disimulasikan.

  • Jenis Pekerjaan: Simulation
  • Format-format Data: rigetti.quil.v1, rigetti.qir.v1
  • ID Target: rigetti.sim.qvm
  • Profil Eksekusi Target: QIR Base
  • Harga: Gratis ($0)

Harga

Untuk melihat paket penagihan Rigetti, kunjungi harga Azure Quantum.

Format masukan

Semua Rigetti targets saat ini menerima dua format:

  • rigetti.quil.v1, yang merupakan teks dari program Quil .
  • rigetti.qir.v1, yang merupakan kode bit QIR.

Semua targets juga memiliki parameter bilangan bulat opsional count untuk menentukan jumlah bidikan yang akan dijalankan. Jika dihilangkan, program hanya berjalan sekali.

Quil

Semua Rigetti targets menerima rigetti.quil.v1 format masukan, yang merupakan teks dari sebuah program Quil, yang merupakan singkatan dari Quantum Instruction Language. Secara default, program dikompilasi menggunakan quilc sebelum berjalan. Namun, quilc tidak mendukung fitur kontrol tingkat pulsa (Quil-T), jadi jika Anda ingin menggunakan fitur tersebut, Anda harus menyediakan program Native Quil (juga berisi Quil-T) sebagai input dan menentukan parameter skipQuilc: trueinput .

Untuk membuat pembuatan program Quil lebih mudah, Anda dapat menggunakan pyQuil bersama dengan pyquil-for-azure-quantum paket. Tanpa paket ini, pyQuil dapat digunakan untuk konstruksi program Quil tetapi tidak mengirimkannya ke Azure Quantum.

QIR

Semua perangkat keras Rigetti mendukung eksekusi Quantum Intermediate Representation tugas yang sesuai (QIR) dengan QIR Base Profil, v1 sebagai rigetti.qir.v1. QIR menyediakan antarmuka umum yang mendukung banyak bahasa dan target platform kuantum untuk komputasi kuantum dan memungkinkan komunikasi antara bahasa dan mesin tingkat tinggi. Misalnya, Anda dapat mengirimkan pekerjaan Q#, Quil, atau Qiskit ke perangkat keras Rigetti, dan Azure Quantum secara otomatis menangani input untuk Anda. Untuk informasi selengkapnya, lihat Quantum Intermediate Representation .

Memilih format input yang tepat

Haruskah Anda menggunakan Quil atau bahasa lain yang sesuai dengan QIR? Ini datang ke kasus penggunaan akhir Anda. QIR lebih mudah diakses oleh banyak pengguna, sementara Quil lebih kuat saat ini.

Jika Anda menggunakan Qiskit, Q#, atau toolkit lain yang mendukung generasi QIR, dan aplikasi Anda berfungsi di Rigetti targets melalui Azure Quantum, maka QIR tepat untuk Anda! QIR memiliki spesifikasi yang berkembang pesat, dan Rigetti terus meningkatkan dukungan untuk program QIR yang lebih canggih seiring berjalannya waktu - apa yang tidak dapat dikompilasi hari ini mungkin akan dikompilasi besok.

Di sisi lain, program Quil mengekspresikan serangkaian fungsionalitas lengkap yang tersedia untuk pengguna sistem Rigetti dari platform apa pun termasuk Azure Quantum. Jika Anda ingin menyesuaikan penguraian gerbang kuantum atau menulis program pada tingkat pulsa, maka Anda harus bekerja di Quil, karena kemampuan tersebut saat ini belum tersedia melalui QIR.

Contoh

Cara termudah untuk mengirimkan tugas Quil adalah dengan menggunakan paket perangkat lunak pyquil-for-azure-quantum, karena memungkinkan Anda untuk memanfaatkan alat dan dokumentasi pustaka pyQuil.

Anda juga dapat membuat program Quil secara manual dan mengirimkannya secara langsung menggunakan paket azure-quantum.

from pyquil.gates import CNOT, MEASURE, H
from pyquil.quil import Program
from pyquil.quilbase import Declare
from pyquil_for_azure_quantum import get_qpu, get_qvm

# Note that some environment variables must be set to authenticate with Azure Quantum
qc = get_qvm()  # For simulation

program = Program(
    Declare("ro", "BIT", 2),
    H(0),
    CNOT(0, 1),
    MEASURE(0, ("ro", 0)),
    MEASURE(1, ("ro", 1)),
).wrap_in_numshots_loop(5)

# Optionally pass to_native_gates=False to .compile() to skip the compilation stage
result = qc.run(qc.compile(program))
data_per_shot = result.readout_data["ro"]
# Here, data_per_shot is a numpy array, so you can use numpy methods
assert data_per_shot.shape == (5, 2)
ro_data_first_shot = data_per_shot[0]
assert ro_data_first_shot[0] == 1 or ro_data_first_shot[0] == 0

# Let's print out all the data
print("Data from 'ro' register:")
for i, shot in enumerate(data_per_shot):
    print(f"Shot {i}: {shot}")