Aracılığıyla paylaş


Rigetti sağlayıcısı

İpucu

Bir Azure Quantum çalışma alanı oluşturduğunuzda, her kuantum donanım sağlayıcısı için otomatik olarak 500 ABD doları ücretsiz Azure Quantum Kredisi alırsınız. İlk kuantum programlarınızı gerçek kuantum donanımına göndermek için Azure Quantum Kredileri'ni kullanabilirsiniz.

Not

Ankaa-2 QPU, 4 Ekim 2024 itibarıyla Azure Quantum hizmetinden kullanım dışı bırakılmıştır.

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:

Target ad Target KİMLİĞİ 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.

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 bkz. Azure Quantum'da profil türlerini anlamatarget.

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
  • Target KİMLİĞİ: rigetti.sim.qvm
  • Target 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 programının metni olan giriş biçimini kabul rigetti.quil.v1 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 paketiyle pyquil-for-azure-quantum birlikte kullanabilirsinizpyQuil. 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 rigetti.qir.v1yürütülmesini Quantum Intermediate Representation QIR Base 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}")