Unitary Expressions: A Necessary Abstraction for Extensible Quantum Programming Languages and Systems
Journal:
arXiv
Published Date:
Jan 16, 2025
Abstract
Quantum gates are the fundamental instructions of digital quantum computers.
Current programming languages, systems, and software development toolkits
identify these operational gates by their titles, which requires a shared
understanding of their meanings. However, in the continuously developing
software ecosystem surrounding quantum computing -- spanning high-level
programming systems to low-level control stacks -- this identification process
is often error-prone, challenging to debug, maintenance-heavy, and resistant to
change. In this paper, we propose replacing this nominal gate representation
with a functional one. We introduce the OpenQudit system for describing,
parsing, optimizing, analyzing, and utilizing programs comprising gates
described as symbolic unitary expressions. As part of this effort, we design
the Qudit Gate Language (QGL), a unitary-specific expression language, and
implement a differentiating just-in-time compiler in OpenQudit towards
embedding this language in quantum programming languages and systems.
Additionally, we have precisely designed and implemented the Qudit Virtual
Machine (QVM) to evaluate quantum programs and their gradients efficiently.
This evaluation is performed millions of times during the compilation of
quantum programs. Our QVM can compute gradients approximately ten times faster
than current leading numerical quantum compilation frameworks in the most
common use cases. Altogether, the OpenQudit system is envisioned to (1) support
many-level or qudit-based quantum systems, (2) enable the safe composition of
program transformation tools, (3) accelerate circuit optimizers and
transpilers, (4) enable compiler extensibility, and (5) provide a productive,
simple-to-use interface to quantum practitioners.