Qandle: Accelerating State Vector Simulation Using Gate-Matrix Caching and Circuit Splitting

Gerhard Stenzel, Sebastian Zielinski, Michael Kölle, Philipp Altmann, Jonas Nüßlein +1 more
4/14/2024
quant-phcs.LG

Official code: gstenzel/qandle (8 stars, MIT, PyTorch, last commit 2025-07-03).

Abstract

To address the computational complexity associated with state-vector simulation for quantum circuits, we propose a combination of advanced techniques to accelerate circuit execution. Quantum gate matrix caching reduces the overhead of repeated applications of the Kronecker product when applying a gate matrix to the state vector by storing decomposed partial matrices for each gate. Circuit splitting divides the circuit into sub-circuits with fewer gates by constructing a dependency graph, enabling parallel or sequential execution on disjoint subsets of the state vector. These techniques are implemented using the PyTorch machine learning framework. We demonstrate the performance of our approach by comparing it to other PyTorch-compatible quantum state-vector simulators. Our implementation, named Qandle, is designed to seamlessly integrate with existing machine learning workflows, providing a user-friendly API and compatibility with the OpenQASM format. Qandle is an open-source project hosted on GitHub https://github.com/gstenzel/qandle and PyPI https://pypi.org/project/qandle/ .

View on arXivView PDF

Code Implementations(1)

gstenzel/qandleOfficial100%
PyTorchMIT

QANDLE is a fast and simple quantum state-vector simulator for hybrid machine learning using the PyTorch library.

82PythonMar 30, 20241 years agoMIT
pytorchquantum-computingquantum-machine-learning

Similar Papers

Cite this paper

@article{stenzel2024qandle,
  title  = {Qandle: Accelerating State Vector Simulation Using Gate-Matrix Caching and Circuit Splitting},
  author = {Gerhard Stenzel and Sebastian Zielinski and Michael Kölle and Philipp Altmann and Jonas Nüßlein and Thomas Gabor},
  year   = {2024},
  eprint = {2404.09213},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2404.09213v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2404.09213.svg)](https://codeofpaper.com/paper/2404.09213)

Discussion