An SDK-first simulator
The goal is to keep existing quantum workflows usable while changing the execution engine underneath them. A Qiskit BackendV2 and registered PennyLane devices expose the simulator through each library’s normal circuit and result interfaces. Adaptive devices can select a CPU or Apple-GPU path based on the circuit, precision, and available memory.
Choosing the right simulation contract
An exact statevector stores every amplitude, so its memory cost grows exponentially with qubit count. Matrix-product states offer a different tradeoff: their useful range depends on entanglement and the allowed bond dimension. Asking an MPS backend to materialize a complete dense state removes much of that advantage, which is why this benchmark states its full-state contract explicitly.
Apple and NVIDIA at matched circuit widths
The comparison record runs six circuit families at 15, 20, 24, 26, and 28 qubits on M3 Pro Metal and an RTX 3070 under Windows/WSL. Each uses one warm-up and three measured repetitions. The small-width results favor MettleQ, while CUDA-Q wins at 28 qubits; launch overhead and circuit structure affect the crossover. These are separate machines, and the full-state contract should be kept in view.
Implementation & checks
- Run the same depth-3 circuits on an Apple M3 Pro with 18 GPU cores and 36 GB RAM.
- Compare complete statevectors through each SDK adapter, with warm-up and repeated timing. Disable Aer circuit truncation to preserve agreement with independent references.
- Accept a row only after phase-aligned state error passes the 5×10⁻⁶ threshold. The accepted rows had errors below 4.1×10⁻⁷.