Rigetti sağlayıcısı
Önemli
1 Haziran 2025 tarihinden itibaren Azure Quantum Kredileri artık kullanamayacaksınız. Azure Quantum Kredilerinin kalan bakiyesi varsa bu tarihten önce bunları kullandığınızdan emin olun.
Rigetti kuantum işlemcileri , ayarlanabilir süper iletken kubitleri temel alan evrensel, geçit modeli makinelerdir. Sistem özellikleri ve cihaz özellikleri arasında gelişmiş okuma özellikleri, kuantum işleme sürelerinde hız artırma, birden çok dolaşık kapı ailesi için hızlı geçit süreleri, etkin yazmaç sıfırlama yoluyla hızlı örnekleme ve parametrik denetim yer alır.
- Yayımcı: Rigetti
- Sağlayıcı Kimliği:
rigetti
Rigetti sağlayıcısı aşağıdakileri targets kullanılabilir hale getirir:
Hedef adı | Hedef Kimliği | Kubit sayısı | Açıklama |
---|---|---|---|
Kuantum Sanal Makinesi (QVM) | rigetti.sim.qvm | - | Quil, Q# ve Qiskit programları için açık kaynak simülatörü. Ücretsiz. |
Ankaa-3 | rigetti.qpu.ankaa-3 | 84 kubit | |
Ankaa-9Q-3 | rigetti.qpu.ankaa-9q-3 | 9 kubit |
Not
Rigetti simülatörleri ve donanımları targets Cirq programlarını desteklemez.
Rigetti bir targets profile karşılık geliyor QIR Base . Bu target profil ve sınırlamaları hakkında daha fazla bilgi için bkztarget profil türlerini anlama.
Kuantum bilgisayarlar
Rigetti'nin genel kullanıma sunulan tüm QPU'ları Azure Quantum aracılığıyla kullanılabilir. Bu liste önceden bildirimde bulunmadan değiştirilebilir.
Ankaa-3
84 kubit kuantum işlemcisi.
- İş Türü:
Quantum Program
- Veri Biçimi:
rigetti.quil.v1
,rigetti.qir.v1
- Hedef Kimliği:
rigetti.qpu.ankaa-3
- Hedef Yürütme Profili: QIR Base
Ankaa-9Q-3
9 kubit kuantum işlemcisi.
- İş Türü:
Quantum Program
- Veri Biçimi:
rigetti.quil.v1
,rigetti.qir.v1
- Hedef Kimliği:
rigetti.qpu.ankaa-9q-3
- Hedef Yürütme Profili: QIR Base
Simülatörler
Quantum Sanal Makinesi (QVM), Quil için açık kaynaklı bir simülatördür. Bir rigetti.sim.qvm
target Quil programını metin olarak kabul eder ve bu programı bulutta barındırılan QVM'de çalıştırarak simülasyon sonuçlarını döndürür.
- İş Türü:
Simulation
- Veri Biçimleri:
rigetti.quil.v1
,rigetti.qir.v1
- Hedef Kimliği:
rigetti.sim.qvm
- Hedef Yürütme Profili: QIR Base
- Fiyatlandırma: Ücretsiz (0 ABD doları)
Fiyatlandırma
Rigetti'nin faturalama planını görmek için Azure Quantum fiyatlandırması'na bakın.
Giriş biçimi
Tüm Rigetti targets şu anda iki biçimi kabul etmekte:
-
rigetti.quil.v1
, Quil programının metnidir. -
rigetti.qir.v1
, QIR bit kodudur.
Tümü targets , çalıştırılacak çekim sayısını tanımlamak için isteğe bağlı count
tamsayı parametresini de alır. Atlanırsa, program yalnızca bir kez çalışır.
Quil
Tüm Rigettitargets, Kuantum Yönerge Dili anlamına gelen Quil rigetti.quil.v1
programının metni olan giriş biçimini kabul eder. Varsayılan olarak, programlar çalıştırmadan önce quilc kullanılarak derlenir. Ancak, quilc darbe düzeyi kontrol özelliklerini (Quil-T) desteklemez, bu nedenle bu özellikleri kullanmak istiyorsanız giriş olarak bir Yerel Quil programı (Quil-T de içerir) sağlamanız ve giriş parametresini skipQuilc: true
belirtmeniz gerekir.
Quil programı oluşturmayı kolaylaştırmak için paketiyle pyQuil
birlikte kullanabilirsinizpyquil-for-azure-quantum
. Bu paket olmadan Quil pyQuil
programları oluşturmak için kullanılabilir ancak bunları Azure Quantum'a göndermek için kullanılamaz.
QIR
Tüm Rigetti donanımları, (QIR) ile uyumlu işlerin Profili, v1 olarak Quantum Intermediate Representationyürütülmesini QIR Baserigetti.qir.v1
destekler. QIR, kuantum hesaplaması için birçok kuantum dilini ve platformlarını destekleyen ve target üst düzey dillerle makineler arasında iletişim sağlayan ortak bir arabirim sağlar. Örneğin Q#, Quil veya Qiskit işlerini Rigetti donanımına gönderebilirsiniz ve Azure Quantum girişi sizin için otomatik olarak işler. Daha fazla bilgi için bkz. Quantum Intermediate Representation.
Doğru giriş biçimini seçme
Quil mi yoksa başka bir QIR uyumlu dil mi kullanmalısınız? Son kullanım örneğine kadar uzanır. QIR birçok kullanıcı için daha erişilebilirken Quil bugün daha güçlüdür.
Qiskit, Q# veya QIR oluşturmayı destekleyen başka bir araç seti kullanıyorsanız ve uygulamanız Azure Quantum aracılığıyla Rigetti targets üzerinde çalışıyorsa QIR tam size göre! QIR'nin hızla gelişen bir belirtimi vardır ve Rigetti zaman geçtikçe daha gelişmiş QIR programlarına yönelik desteği artırmaya devam ediyor- bugün derlenemediklerinin yarın da derlenmesi iyi olabilir.
Öte yandan Quil programları, Azure Quantum dahil olmak üzere herhangi bir platformdan Rigetti sistemlerinin kullanıcılarına sunulan tüm işlevleri ifade edebilir. Kuantum geçitlerinizin ayrıştırılmasını veya program yazmayı darbe düzeyinde uyarlamak istiyorsanız, bu özellikler henüz QIR aracılığıyla kullanılamadığından Quil'de çalışmak istersiniz.
Örnekler
Quil işlerini göndermenin en kolay yolu, kitaplığın pyquil-for-azure-quantum
araçlarını ve belgelerini pyQuil
kullanmanıza olanak sağladığından paketi kullanmaktır.
Quil programlarını el ile de oluşturabilir ve doğrudan paketi kullanarak azure-quantum
gönderebilirsiniz.
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}")