Skip to content
Accueil/SDK/Amazon Braket
🟠

Amazon Braket

Service d'informatique quantique géré par AWS. Simulateur local gratuit, simulateurs cloud (SV1, DM1, TN1) et accès à de vrais QPU d'IonQ, Rigetti et Oxford Quantum Circuits.

Géré par AWSLocal gratuitSim cloudQPU réel

Qu'est-ce qu'Amazon Braket ?

Amazon Braket est un service d'informatique quantique entièrement géré qui vous permet d'explorer et d'expérimenter des ordinateurs quantiques de plusieurs fournisseurs — le tout via un SDK Python cohérent. Le simulateur local est entièrement gratuit. Les simulateurs cloud facturent de faibles frais par tâche. Les tirs sur QPU réels sont facturés au tir.

Simulateur local
S'exécute sur votre machine
Gratuit pour toujours
Simulateurs cloud
SV1, DM1, TN1
~0,075 $/tâche + calcul
QPU réel
Matériel IonQ, OQC
0,01–0,90 $/tir

Installation et configuration

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

Simulateur local gratuit

Le LocalSimulator est entièrement gratuit, s'exécute sur votre machine et ne nécessite aucun compte 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}

Circuits paramétriques

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

Simulateurs cloud (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)

Matériel QPU réel

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