Skip to content
首页/SDK/Amazon Braket
🟠

Amazon Braket

AWS 托管的量子计算服务。提供免费的本地模拟器、云端模拟器(SV1、DM1、TN1),以及访问来自 IonQ、Rigetti 和 Oxford Quantum Circuits 的真实 QPU。

AWS 托管本地免费云端模拟真实 QPU

什么是 Amazon Braket?

Amazon Braket 是一项完全托管的量子计算服务,让你通过一致的 Python SDK 探索并试验来自多家提供商的量子计算机。本地模拟器完全免费。云端模拟器按任务收取少量费用。真实 QPU 的采样按每次采样计价。

本地模拟器
在你的机器上运行
永久免费
云端模拟器
SV1、DM1、TN1
约 $0.075/任务 + 计算费用
真实 QPU
IonQ、OQC 硬件
$0.01–$0.90/次采样

安装与配置

terminal
pip install amazon-braket-sdk

# AWS credentials (needed for cloud features)
# Option 1: AWS CLI
aws configure

# Option 2: Environment variables
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret

免费本地模拟器

LocalSimulator 完全免费,在你的机器上运行,且无需 AWS 账户。

braket_local.py
from braket.circuits import Circuit, FreeParameter
from braket.devices import LocalSimulator

# Free — no AWS credentials needed
device = LocalSimulator()

# Build a Bell state circuit
circuit = Circuit()
circuit.h(0)
circuit.cnot(0, 1)
circuit.probability()  # Return outcome probabilities

task = device.run(circuit, shots=0)  # shots=0 for exact probabilities
result = task.result()
print(result.values)  # [[0.5, 0, 0, 0.5]]

# With sampling (shots)
circuit2 = Circuit().h(0).cnot(0, 1)
task2 = device.run(circuit2, shots=1000)
counts = task2.result().measurement_counts
print(counts)  # {'00': ~500, '11': ~500}

参数化电路

braket_parametric.py
from braket.circuits import Circuit, FreeParameter
from braket.devices import LocalSimulator

# FreeParameters for variational circuits
theta = FreeParameter("theta")
phi   = FreeParameter("phi")

circuit = Circuit()
circuit.ry(0, theta)
circuit.ry(1, phi)
circuit.cnot(0, 1)
circuit.expectation(observable=braket.Observable.Z() @ braket.Observable.Z(),
                    target=[0, 1])

device = LocalSimulator()

# Sweep parameters
import numpy as np
for t in np.linspace(0, 2 * np.pi, 20):
    task = device.run(circuit, shots=200, inputs={"theta": t, "phi": 0.5})
    result = task.result()
    print(f"theta={t:.2f}: {result.values}")

云端模拟器(SV1、DM1、TN1)

braket_cloud_sim.py
from braket.aws import AwsDevice
from braket.circuits import Circuit

# SV1 — Statevector simulator (up to 34 qubits)
sv1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1")

# DM1 — Density matrix with noise (up to 17 qubits)
dm1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/dm1")

# TN1 — Tensor network (up to 50 qubits, sparse circuits)
tn1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/tn1")

circuit = Circuit().h(0).cnot(0, 1)

# Note: cloud sims have per-task + compute costs (~$0.075/task)
task = sv1.run(
    circuit,
    shots=1000,
    s3_destination_folder=("your-s3-bucket", "results/")
)
print(task.result().measurement_counts)

真实 QPU 硬件

Braket QPUs are pay-per-shot — see the free real-hardware options and how Braket compares with IBM Quantum before spending anything.

braket_hardware.py
from braket.aws import AwsDevice
from braket.circuits import Circuit

# IonQ Aria (trapped-ion, ~$0.01/shot)
ionq_device = AwsDevice(
    "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1"
)

# Oxford Quantum Circuits (superconducting)
oqc_device = AwsDevice(
    "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy"
)

circuit = Circuit().h(0).cnot(0, 1)

# Check device availability before submitting
print(ionq_device.status)
print(ionq_device.properties.paradigm.qubitCount)

# Submit (costs apply per shot on real hardware)
task = ionq_device.run(circuit, shots=50)
print(task.result().measurement_counts)

Keep exploring

💡

Also available via HLQuantum

Want to run the same circuit on multiple backends without rewriting your code? HLQuantum abstracts this SDK (and 5 others) behind a single unified API.

python
import hlquantum as hlq

qc = hlq.Circuit(2)
qc.h(0).cx(0, 1).measure_all()

# One line to switch between any backend
result = hlq.run(qc, shots=1024)              # auto-detect
result = hlq.run(qc, shots=1024, backend="braket")  # explicit