Poskytovatel Rigetti

Kvantové procesory Rigetti jsou univerzální počítače s vrátným modelem založené na vyladěných superkondukčních qubitech. Mezi systémové funkce a charakteristiky zařízení patří vylepšené možnosti čtení, zrychlení časů kvantového zpracování, rychlé časy bran pro různé rodiny propletených bran, rychlé vzorkování prostřednictvím aktivního resetu registru a parametrické řízení.

  • Publisher: Rigetti
  • ID zprostředkovatele: rigetti

Poskytovatel Rigetti zpřístupňuje následující targets :

Cílový název ID cíle Počet qubitů Popis
Kvantový virtuální počítač (QVM) rigetti.sim.qvm - Opensourcový simulátor pro programy Quil, Q# a Qiskit. Zdarma
Cepheus-1-108Q rigetti.qpu.cepheus-1-108q 108 qubitů

Poznámka:

Simulátory Rigetti a hardware targets nepodporují programy Cirq.

Rigettiho targets odpovídají QIR Base profilu. Další informace o tomto profilu target a jeho omezeních najdete v tématu Podstatné target typy profilů v Azure Quantum.

Kvantové počítače

Všechny veřejně dostupné QPUs od Rigetti jsou dostupné přes Azure Quantum. Tento seznam se může změnit bez předchozího upozornění.

Cepheus-1-108Q

Kvantový procesor o velikosti 108 qubitů sestavený z pole 9 qubitových čipů, které jsou společně uspořádané.

  • Typ úlohy: Quantum Program
  • Formát dat: rigetti.quil.v1, rigetti.qir.v1
  • ID cíle: rigetti.qpu.cepheus-1-108q
  • Profil provedení cíle: QIR Base

Simulátory

Kvantový virtuální počítač (QVM) je opensourcový simulátor pro Quil. rigetti.sim.qvm target přijímá program Quil jako text a tento program spustí na QVM hostovaném v cloudu, přičemž vrátí simulované výsledky.

  • Typ úlohy: Simulation
  • Formáty dat: rigetti.quil.v1, rigetti.qir.v1
  • ID cíle: rigetti.sim.qvm
  • Profil provedení cíle: QIR Base
  • Ceny: Free (0 USD)

Ceny

Pokud se chcete podívat na plán účtování od Rigetti, navštivte cenovou stránku Azure Quantum.

Vstupní formát

Všechny Rigetti targets aktuálně přijímají dva formáty:

  • rigetti.quil.v1, což je text programu Quil .
  • rigetti.qir.v1, což je QIR bitcode.

Všechny targets také přebírají volitelný count celočíselnou parametr pro definování počtu snímků, které se mají spustit. Pokud tento parametr vynecháte, program se spustí jenom jednou.

Quil

Všechny Rigetti targets přijímají rigetti.quil.v1 vstupní formát, což je text programu Quil , který je zkratkou pro Quantum Instruction Language. Ve výchozím nastavení se programy před spuštěním kompilují pomocí nástroje quilc . quilc však nepodporuje funkce řízení na úrovni impulsu (Quil-T), takže pokud chcete tyto funkce používat, musíte jako vstup poskytnout program Native Quil (také obsahující Quil-T) a specifikovat vstupní parametr skipQuilc: true.

Chcete-li zjednodušit vytváření programu Quil, můžete použít pyQuil společně s balíčkem pyquil-for-azure-quantum . Bez tohoto balíčku lze pyQuil použít k konstrukční programy Quil, ale ne k jejich odeslání do Azure Quantum.

QIR

Veškerý hardware Rigetti podporuje provádění úloh kompatibilních s technologií Quantum Intermediate Representation(QIR) s profilem QIR Base v1 jako rigetti.qir.v1. QIR poskytuje společné rozhraní, které podporuje mnoho kvantových jazyků a target platforem pro kvantové výpočty a umožňuje komunikaci mezi jazyky vysoké úrovně a počítači. Můžete například odeslat úlohy Q#, Quil nebo Qiskit do hardwaru Rigetti a Azure Quantum automaticky zpracuje vstup za vás. Další informace najdete na webu Quantum Intermediate Representation.

Výběr správného formátu vstupu

Měli byste použít Quil nebo jiný jazyk kompatibilní s QIR? Záleží na tom, jak to chcete použít. QIR je pro mnoho uživatelů přístupnější, zatímco Quil je dnes výkonnější.

Pokud používáte Qiskit, Q# nebo jinou sadu nástrojů, která podporuje generování QIR, a vaše aplikace funguje na Rigetti targets prostřednictvím Azure Quantum, pak je QIR pro vás nejvhodnější! QIR má rychle se vyvíjející specifikaci a Rigetti i nadále zvyšuje podporu pro pokročilejší programy QIR, jak čas plyne – to, co dnes nelze zkompilovat, může být zkompilováno zítra.

Na druhou stranu programy Quil vyjadřují úplnou sadu funkcí, které jsou k dispozici uživatelům systémů Rigetti z jakékoli platformy včetně Azure Quantum. Pokud chcete přizpůsobit rozklad kvantových bran nebo psát programy na úrovni impulsu, budete chtít pracovat v Quilu, protože tyto funkce ještě nejsou dostupné prostřednictvím QIR.

Příklady

Nejjednodušší způsob, jak odeslat úlohy Quil, je použít pyquil-for-azure-quantum balíček, protože umožňuje používat nástroje a dokumentaci pyQuil knihovny.

Programy Quil můžete také sestavit ručně a odeslat je přímo pomocí azure-quantum balíčku.

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}")