Skip to content

v0.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Oct 14:24
· 2 commits to main since this release

Overview

SQUIN refactor

This release focused on reworking the central SQUIN dialect. There are quite a few breaking changes:

  • Operator semantics have been completely removed. The corresponding op dialect has been removed from the SQUIN dialect group.
  • The wire dialect has been removed.
  • Gates are now applied directly to qubits, without separate definitions. The number of gates that are supported has been reduced to ones mostly relevant for near-term hardware. They are defined within the squin.gate dialect.
  • Similar changes have been made to noise, which was also previously based on operator semantics. Now, noise channels are directly applied to qubits and the number of supported noise channels has been reduced.
  • All gate and noise statements now apply to list of qubits (in the sense of being "broadcasted") in order to support first-class parallelism.
  • Extensive standard libraries have been added to conveniently wrap the statements.
  • The qubit dialect has been refactored and restructured.

Native dialect

  • Along with the simplified SQUIN dialect, we have also introduced a native dialect, which only consists of statements that are natively supported by hardware.
  • The gate statements have similar semantics as the squin.gate dialect, specifically in that they apply to lists of qubits to support parallelism. This also makes it easier to rewrite SQUIN to the native dialect.
  • The dialect also has an extensive standard library to provide expressions for common gates in terms of the native gate set.
  • NOTE: this dialect is not intended to be used directly, but rather for a SQUIN kernel to be rewritten into.

Performance improvements

The simplified SQUIN dialect already allowed for some performance improvements, specifically in the SquinToStim rewriting pass.

All changes

New Contributors

Full Changelog: v0.7.13...v0.8.0