Skip to main content

High performance quantum sims on qudits

Project description

icon

qudit

High performance simulations for qudit systems. To make qudit machine learning, qudit error correction, and qudit circuit simulation easier. Qudit is made fully around pytorch to make it easy to mix and match tools without worrying about type errors.

PyPI version

pip install qudit

WARNING: Error correction is currently broken and is being worked on. Currently anything inside qudit.noise or qudit.qec should be considered volatile.

Quickstart

In most cases it should not matter if you mix and match pytorch with qudit since most abstractions are built on top of pytorch tensors. The following is two examples to do the same thing, one using the Circuit class and the other manually using the matrices.

Using the Circuit class:

from qudit import Circuit
import torch as pt

C = Circuit(2, dim=2)  # 2 qBits with d=2
G = C.gates[2]

C.gate(G.H, dits=[0])
C.gate(G.CX, dits=[0, 1])

ket0 = pt.zeros(2**2)
ket0[0] = 1.0  # |00>

print(C(ket0))  # [1. 0. 0. 1.]/rt2

Contributing

Qudit has a small shell scripts used to generate documentation and run tests. If you want to contribute, please fork the repo and make a pull request with your changes. The running script is do.

./do helper script

The repository includes a small ./do helper for common workflows (build, tests, docs, etc.).

./do help

Caveats

  • qudit does not, and will not support openQASM in the near future since hardware is not a goal. There are plans for some amount of interoperability with other qudit simulators, however that will be a long term goal and not a near term one. We will first make qudit stable.

Commands

  • ./do build
    • Builds sdist + wheel and runs twine check dist/*.
  • ./do deploy
    • Uploads dist/* to PyPI via twine upload using an API token.
    • Token is read from FILE (defaults to .vscode/token.env).
  • ./do test
    • Runs the Python test scripts in ./tests.
  • ./do prof
    • Profiles ./tests/bench_fast.py with cProfile and opens snakeviz.
  • ./do head
    • Runs python ./view/headers.py (used by the docs pipeline).
  • ./do docs dev
    • Runs the docs dev server (npm run dev).
  • ./do docs build
    • Builds the docs (npm run build).

Common workflows

# run test scripts
./do test

# build packages locally
./do build

# build docs
./do docs build

# docs dev server
./do docs dev

PyPI token setup (for deploy)

Create a file containing only your PyPI API token (no export, no quotes):

  • default location: .vscode/token.env
  • or specify a different file via FILE=path/to/token.env

Example:

FILE=.vscode/token.env ./do deploy

Acknowledgements

Many many thanks to Sai Sakunthala and R-Phoenix for testing and fixing bugs!

This library is built on top of pytorch, and takes ideas from Qiskit, Cirq, and QuDiet.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qudit-0.3.3.tar.gz (37.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qudit-0.3.3-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

Details for the file qudit-0.3.3.tar.gz.

File metadata

  • Download URL: qudit-0.3.3.tar.gz
  • Upload date:
  • Size: 37.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for qudit-0.3.3.tar.gz
Algorithm Hash digest
SHA256 120df12d45fd6e5837d316bb6a20edeb6b498eedfddf3abc8f56762a290c2988
MD5 c5f22c4d67b1e17fd80f0cdd9b5e725d
BLAKE2b-256 17edb9a599866f34cf0815aa5d6c58455ed5c7cef5dfbc0f2109692165903ff8

See more details on using hashes here.

File details

Details for the file qudit-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: qudit-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 43.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for qudit-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 16caa2bc05d7c4010dcb87de3ae798dfed1a5f6926f66f79002ce3db6ff6b0e3
MD5 a03cfc571206095207a8933a447dc855
BLAKE2b-256 45bbd65066f329506dd9460759efd1540ef1022cd31c98a687c304c102760324

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page