Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Квантовые процессоры Rigetti — это универсальные компьютеры с моделью шлюзов на основе настраиваемых сверхпроводящих кубитов. Системные функции и характеристики устройства включают расширенные возможности чтения, ускорение квантовой обработки, быстрое время шлюза для нескольких запутанных семейств шлюзов, быструю выборку с помощью активного сброса регистра и параметрическое управление.
- Publisher: Rigetti
- Идентификатор поставщика:
rigetti
Поставщик Rigetti предоставляет следующие targets возможности:
| Целевое имя | Идентификатор целевого объекта | Количество кубит | Описание |
|---|---|---|---|
| Виртуальная машина Quantum (QVM) | rigetti.sim.qvm | - | Симулятор с открытым исходным кодом для программ Quil, Q#и Qiskit. Бесплатно. |
| Cepheus-1-108Q | rigetti.qpu.cepheus-1-108q | 108 кубитов |
Примечание.
Симуляторы Rigetti и оборудование targets не поддерживают программы Cirq.
Rigetti targets соответствует профилю QIR Base . Дополнительные сведения об этом профиле target и его ограничениях см. в разделе Understanding target типы профилей в Azure Quantum.
Квантовые компьютеры
Все общедоступные QPUs доступны через Azure Quantum. Этот список подлежит изменению без предварительного уведомления.
Cepheus-1-108Q
108-кубитный квантовый процессор, состоящий из набора 9-кубитных чипов, расположенных вместе.
- Тип задания:
Quantum Program - Формат данных:
rigetti.quil.v1,rigetti.qir.v1 - Идентификатор целевого объекта:
rigetti.qpu.cepheus-1-108q - Профиль целевого выполнения: QIR Base
Симуляторы
The Quantum Virtual Machine (QVM) — это симулятор с открытым кодом для Quil.
rigetti.sim.qvm
target принимает программу Quil в виде текста и выполняет ее на QVM, размещенном в облаке, возвращая имитированные результаты.
- Тип задания:
Simulation - Форматы данных:
rigetti.quil.v1,rigetti.qir.v1 - Идентификатор целевого объекта:
rigetti.sim.qvm - Профиль целевого выполнения: QIR Base
- Ценовая категория: бесплатно (0 долл. США)
Цены
Чтобы просмотреть план выставления счетов Rigetti, посетите раздел цен на Azure Quantum.
Формат входных данных
Все Rigetti targets в настоящее время принимают два формата:
-
rigetti.quil.v1, который является текстом программы Quil. -
rigetti.qir.v1, который является QIR биткод.
Все targets также принимают необязательный count целочисленный параметр для определения количества кадров, которые нужно выполнить. Если опущено, программа выполняется только один раз.
Куил
Все Rigetti targets принимают входной rigetti.quil.v1 формат, который представляет собой текст программы Quil, что расшифровывается как Язык квантовых инструкций. По умолчанию программы компилируются с помощью quilc перед выполнением. Однако quilc не поддерживает функции управления на уровне импульса (Quil-T), поэтому если вы хотите использовать эти функции, необходимо предоставить собственную программу Quil (также содержащую Quil-T) в качестве входных данных и указать входной параметр skipQuilc: true.
Чтобы упростить создание программы Quil, можно использовать pyQuil вместе с пакетом pyquil-for-azure-quantum. Без этого пакета pyQuil можно использовать для создания программ Quil, но не для их отправки в Azure Quantum.
QIR
Все оборудование Rigetti поддерживает выполнение заданий, совместимых с QIR в соответствии с профилем Quantum Intermediate Representation, как QIR Base. QIR предоставляет общий интерфейс, который поддерживает множество квантовых языков и target платформ для квантовых вычислений и обеспечивает взаимодействие между высокоуровневые языки и компьютеры. Например, можно отправлять задания Q#, Quil или Qiskit в оборудование Rigetti, а Azure Quantum автоматически обрабатывает входные данные. Дополнительные сведения см. в разделе Quantum Intermediate Representation.
Выбор правильного формата ввода
Следует ли использовать Quil или другой язык, совместимый с QIR? Это зависит от вашего конечного сценария использования. QIR является более доступным для многих пользователей, в то время как Quil на данный момент является более мощным.
Если вы используете Qiskit, Q#или другой набор средств, поддерживающий создание QIR, и приложение работает на Rigetti targets через Azure Quantum, то QIR подходит для вас! QIR имеет быстро развивающуюся спецификацию, и Rigetti продолжает увеличивать поддержку более сложных программ QIR с течением времени - то, что нельзя скомпилировать сегодня, может быть скомпилировано завтра.
С другой стороны, программы Quil выражают полный набор функциональных возможностей, доступных пользователям систем Rigetti из любой платформы, включая Azure Quantum. Если вы хотите адаптировать декомпозицию квантовых шлюзов или писать программы на уровне импульса, тогда вам следует работать в Quil, так как эти возможности пока не доступны через QIR.
Примеры
Самым простым способом отправки заданий Quil является использование пакета pyquil-for-azure-quantum, так как он позволяет использовать средства и документацию библиотеки pyQuil.
Вы также можете создавать программы Quil вручную и отправлять их напрямую с помощью пакета 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}")