Aracılığıyla paylaş


Rigetti sağlayıcısı

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
Cepheus-1-36Q rigetti.qpu.cepheus-1-36q 36 kubit

Not

Rigetti simülatörleri ve donanımları targets Cirq programlarını desteklemez.

Rigetti'nin targets bir profile karşılık gelir QIR Base. Bu target profil ve sınırlamaları hakkında daha fazla bilgi için Azure Quantum'da target profil türlerini anlama bölümüne bakın.

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

Cepheus-1-36Q

Birlikte kutucuklanmış 9 kubitli yongalardan oluşan bir diziden oluşturulan 36 kubit kuantum işlemci.

  • İş Türü: Quantum Program
  • Veri Biçimi: rigetti.quil.v1, rigetti.qir.v1
  • Hedef Kimliği: rigetti.qpu.cepheus-1-36q
  • 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.qvmtarget 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:

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: truebelirtmeniz gerekir.

Quil programı oluşturmayı kolaylaştırmak için pyQuil ile birlikte pyquil-for-azure-quantum paketini kullanabilirsiniz. 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ı, Quantum Intermediate Representation (QIR) ile uyumlu işlerin QIR Base Profili, v1 olarak rigetti.qir.v1 yürütülmesini 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? Bu, nihai kullanım durumunuza bağlıdı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'in hızla gelişen bir spesifikasyona sahiptir ve Rigetti, zaman geçtikçe daha gelişmiş QIR programlarına yönelik desteği artırmaya devam ediyor - bugün derlenemeyenler, yarın derlenebilir hale gelebilir.

Ö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, pyquil-for-azure-quantum paketini kullanmaktır, çünkü bu, pyQuil kitaplığının araçlarını ve belgelerini kullanmanıza olanak tanı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}")