Skip to main content

qBraid-SDK extension providing support for QIR conversions.

Project description

qbraid-qir-header

CI Documentation Status PyPI version PyPI version Downloads License Discord

qBraid-SDK extension providing support for QIR conversions.

Motivation

qir

This project aims to make QIR representations accessible via the qBraid-SDK transpiler, and by doing so, open the door to language-specific conversions from any and all high-level quantum languages supported by qbraid. See QIR Alliance: why do we need it?.

Installation

qBraid-QIR requires Python 3.8 or greater, and can be installed with pip as follows:

pip install qbraid-qir

Optional dependencies

qBraid-QIR offers integrations that require extra (optional) dependencies, which can be installed as follows:

For Cirq to QIR conversions, install the cirq extra:

pip install 'qbraid-qir[cirq]'

For OpenQASM 3 to QIR conversions, install the qasm3 extra:

pip install 'qbraid-qir[qasm3]'

Install from source

You can also install from source by cloning this repository and running a pip install command in the root directory of the repository:

git clone https://github.com/qBraid/qbraid-qir.git
cd qbraid-qir
pip install .

To include optional dependencies when installing from source, use the same "extras_require" format, e.g.

pip install '.[cirq,qasm3]'

Check version

You can view the version of qbraid-qir you have installed within a Python shell as follows:

In [1]: import qbraid_qir

In [2]: qbraid_qir.__version__

Resources

Usage examples

Cirq conversions

import cirq
from qbraid_qir.cirq import cirq_to_qir

q0, q1 = cirq.LineQubit.range(2)

circuit = cirq.Circuit(
  cirq.H(q0),
  cirq.CNOT(q0, q1),
  cirq.measure(q0, q1)
)

module = cirq_to_qir(circuit, name="my-circuit")

ir = str(module)

OpenQASM 3 conversions

from qbraid_qir.qasm3 import qasm3_to_qir

program = """
OPENQASM 3;
include "stdgates.inc";

qubit[2] q;
bit[2] c;

h q[0];
cx q[0], q[1];

measure q[0] -> c[0];
measure q[1] -> c[1];
"""

module = qasm3_to_qir(program, name="my-program")

ir = str(module)

Add QIR node to qBraid conversion graph

from qbraid_qir.cirq import cirq_to_qir
from qbraid.transpiler import Conversion, ConversionGraph

graph = ConversionGraph()

conversion = Conversion("cirq", "qir", cirq_to_qir)

graph.add_conversion(conversion)

graph.plot()

Architecture diagram

qBraid-SDK transpiler hub-and-spokes architecture with qbraid-qir integration (left) mapped to language specific conversion step in QIR abstraction layers (right).

architecture

Contributing

Citation

If you use qBraid-QIR in your research, we kindly request that you cite it appropriately. The BibTeX entry below is aligned with the latest stable release. For the most up-to-date citation details, please refer to CITATION.cff.

@software{Gupta_qBraid-QIR_Python_package_2024,
author = {Gupta, Harshit and Kushnir, Samuel and Jain, Rohan and Parakh, Priyansh and Hill, Ryan James},
license = {GPL-3.0},
month = may,
title = {{qBraid-QIR: Python package for QIR conversions, integrations, and utilities.}},
url = {https://github.com/qBraid/qbraid-qir},
version = {0.2.0},
year = {2024}
}

Acknowledgements

This project was conceived in cooperation with the Quantum Open Source Foundation (QOSF).

License

GNU General Public License v3.0

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

qbraid_qir-0.2.0.tar.gz (316.3 kB view details)

Uploaded Source

Built Distribution

qbraid_qir-0.2.0-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file qbraid_qir-0.2.0.tar.gz.

File metadata

  • Download URL: qbraid_qir-0.2.0.tar.gz
  • Upload date:
  • Size: 316.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for qbraid_qir-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7b2d48596fb09bd9828d1196ee8ae4c8d69226c48e180b3e4e1df0b6f9e219c5
MD5 d6667967ff18a088bccc2b1af7795f71
BLAKE2b-256 8d9b3d1761b38cb551d480725d9099248036a0e1a6efd3702f4c806cb5ed2370

See more details on using hashes here.

File details

Details for the file qbraid_qir-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: qbraid_qir-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 44.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for qbraid_qir-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9f638f3549a8f72084a5f87b880f051d3abc601e0c34ecbd03fed7942b956be
MD5 a3bff656f44a6da289b9fe14dbaad69d
BLAKE2b-256 b9ac16035b54eba3d458f4d7b141078dffcec90e6954a5e73dda177d9d2ba984

See more details on using hashes here.

Supported by

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