Releases: QuEraComputing/tsim
Releases · QuEraComputing/tsim
v0.1.2
Fixed
- Exact scalar reduction during sum/product operations to prevent underflows/overflows of int32 on large diagrams. Unfortunately, this change comes with a 2x performance overhead, but results in more stable numerical results (#93)
- Normalization issues for circuits with arbitrary rotation gates now raise a warning instead of an error (#91)
- Parsing errors for invalid Stim circuits now raise useful exceptions (#91)
Added
SPPandSPP_DAGinstructions — generalized S gate that phases the -1 eigenspace of Pauli product observables by i or -i. Supports multi-qubit Pauli products and inverted targets (#97)MXX,MYY,MZZtwo-qubit parity measurement instructions, delegating to existing MPP infrastructure. Also addsII_ERRORsupport (#96)MPADinstruction for padding the measurement record with fixed bit values (#95)
v0.1.1 🚀 🌕
This release adds new stabilizer decomposition strategies, faster noise sampling, and scientifically accurate pyzx visualization. A detailed description of Tsim, including some benchmarks, is now available in this publication.
Added
- Improved stabilizer decomposition strategies. When compiling a sampler, you can now choose between three different strategies:
"cat5","bss", and"cutting". The default is"cat5"and applies to T and arbitrary rotations; see arxiv.org/abs/2106.07740 (#77) - Sparse geometric channel sampler for noise modeling based on this repo. This significantly improves performance when the stabilizer rank is low. (#64)
Circuit.appendmethod for programmatic circuit construction (#65) by @jaideepkathiresanCircuit.is_cliffordproperty and automatic replacement of U3 gates with Clifford equivalents for pi/2 rotations (#69)- Improved
pyzxvisualization. Now doubled ZX notation is used when using the"pyzx"argument inCircuit.diagram, which is a technically accurate depiction of the quantum circuit (#86) - Automatic batch size selection based on available memory (#84)
Changed
- Tsim now uses
pyzx-param==0.9.3which fixes a bug where diagrams were not fully reduced in the absence of noise - Tsim will now make sure that marginal probabilities are normalized and raise an error if they are not. Wrong normalization can be the result of rare underflow errors that will be addressed in a future release (#87)
- Use BLAS matmul kernel for tensor contractions (#63)
- Circuit flattening deferred to ZX graph construction time (#71)
- White background for SVG plots, which are now readable in dark mode (#85)
New Contributors
- @jaideepkathiresan made their first contribution in #65
v0.1.0
Tsim is a GPU-accelerated quantum circuit sampler based on ZX-calculus stabilizer rank decomposition. It feels just like Stim, but supports non-Clifford gates.
Tsim is described in arXiv:2604.01059.
Highlights
- Clifford+T circuit simulation via stabilizer rank decomposition, following Sutcliffe and Kissinger (2024)
- Full Stim compatibility -- supports all Stim instructions, plus
T,T_DAG,R_Z,R_X,R_Y, andU3 - Noise channels via parametric rewrites
- Arbitrary rotation gates via magic cat state decomposition from Qassim et al. (2021)
- GPU acceleration via JAX
- Documentation and tutorials at queracomputing.github.io/tsim
Installation
pip install bloqade-tsimFor GPU support:
pip install "bloqade-tsim[cuda13]"