Skip to content

Hardware

Three backends, one number — and what still doesn't work

Every figure on this page is the project's own. The caveats below are kept as visible as the headline numbers on purpose: a result that hides its own limits is not more trustworthy for it.

Headline numbers

max cross-backend spread
1.3×10⁻⁷ Ha max cross-backend spread Qiskit, Braket and Cirq vs. the internal NumPy state vector, LiH ADAPT-VQE
measurement circuits
29 measurement circuits 118 Pauli terms of LiH, grouped by qubit-wise commutation
QPU providers reachable
3 QPU providers reachable IonQ, IQM and Rigetti through the Amazon Braket device registry
error mitigation, today
0 LOC error mitigation, today backends.mitigation is a stub — shots run raw on hardware

The same Hamiltonian, three SDKs

ADAPT-VQE on LiH — 8 fermionic excitation operators, 208 CNOTs — built from one shared gate stream (X, H, S, S†, CNOT, Rz) and translated per SDK. No exceptions, no cherry-picking: every backend against the same FCI reference.

Backend Ground-state energy Error
NumPy (state vector) −6.88824276 Ha 1.34×10⁻⁷ Ha vs. FCI
Qiskit −6.88824283 Ha 6.27×10⁻⁸ Ha vs. FCI
Amazon Braket −6.88824279 Ha 1.09×10⁻⁷ Ha vs. FCI
Cirq −6.88824281 Ha 8.17×10⁻⁸ Ha vs. FCI

"NumPy (state vector)" is the internal reference implementation, not an SDK — the row this table checks the other three against.

What doesn't work yet

Read these before the table above, not after.

Error mitigation is not implemented yet

carcara.backends.mitigation is an empty stub. Shots submitted to a real QPU today run raw, with no zero-noise extrapolation or readout correction on top.

Forces and geometry optimization are known-broken

Do not trust QuantumCalculator for structure relaxation yet — a water-molecule relaxation test diverges instead of converging. Single-point energies are unaffected.

Gradient screening on hardware is still classical

On a real QPU, only the final energy evaluation runs natively today; ADAPT-VQE's operator-gradient screening step still executes on the classical simulator behind it.

Checked independently

The caveats above are about what is missing. What exists is checked against results that have nothing to do with a single lucky run:

  • Cross-backend state vectors agree to machine precision — the same anti-Hermitian generator factorizes exactly into Pauli rotations, no Trotter error
  • H₂ and LiH ground-state energies checked against published FCI references
  • A 609-test pytest suite covering integrals, mappings, drivers and backend-provider equivalence
  • A dedicated Amazon Braket compatibility report — gate set, shots constraint, QWC grouping, QPU cost

Reaching real hardware

Real QPU access goes through Amazon Braket — an AWS account, IAM permissions for Braket, and backend_provider="braket", execute_circuits=True, device=<ARN>, shots=<n>. The install guide below covers the Python side; the how-to guide under docs/guide/aws_braket covers the AWS side.

See the install guide
Roadmap

What's next

A real error-mitigation backend, hardware-native gradient screening for ADAPT-VQE — today only the final energy evaluation reaches the QPU — and a GPU-accelerated integral backend alongside the existing C/OpenMP one.

Keep reading

Localized orbitals and pseudopotentials generated from scratch, and the C-accelerated integral engine underneath both.

VQE, ADAPT-VQE, excited states, VASQE and periodic systems — four solvers sharing one driver.

Try it on your own structure

Install it, or read the manual first.