Installation¶
Install from a source checkout. No published release is required or assumed. Use a C++20 compiler, CMake 3.24 or newer, Git, and Python 3.11 or newer for Python packaging. Linux builds require OpenSSL development headers. Dependency downloads need network access; tests use synthetic data and loopback HTTP, without IBM access or credentials.
Native package¶
cmake -S . -B build/native -DCMAKE_BUILD_TYPE=Release -DBUILD_IBM_QDMI_TESTS=OFF
cmake --build build/native --config Release
cmake --install build/native --config Release --prefix build/install/prefix
The ibm-qdmi-device_Runtime component installs the shared library and device
catalogue. The ibm-qdmi-device_Development component installs headers, link
artifacts, and CMake package configuration. Install both to build a downstream
consumer.
Consumers use find_package(ibm-qdmi-device 0.1 REQUIRED CONFIG) and link
ibm-qdmi-device::ibm-qdmi-device. Set CMAKE_PREFIX_PATH to the installation
prefix. Headers use the ibm_qdmi/ include directory.
The exported target carries QDMI_DEVICE_ID, QDMI_DEVICE_PREFIX, and
QDMI_MANIFEST_NAME properties. See the usage guide for the supported
interface and a query example.
Python package¶
uv venv
uv pip install .
Select an optional framework integration from the same checkout:
uv pip install '.[qiskit]'
uv pip install '.[pennylane]'
The pennylane extra also installs Qiskit for circuit serialization. See the
dependency overview for native libraries and Python extras.
The ibm-qdmi distribution installs the ibm.qdmi namespace. Its data/
directory contains the native runtime and development components. The package
includes typing metadata and exposes ibm.qdmi.__version__. See the
Python package guide for installed paths and CLI options.
Device discovery¶
The relocatable ibm-qdmi-device.qdmi.json catalogue lives beside the shared
library. It contains ibm.default, ibm.berlin, and ibm.aachen. Concrete
entries set only the backend name. The generic entry requires an explicit
backend. Supply credentials and the instance CRN when opening a session; the
catalogue contains neither.
MQT Core users can set MQT_CORE_QDMI_CONFIG_FILE to the catalogue path before
importing its driver. The driver resolves the library relative to that file.
Move the catalogue and library together when relocating a native installation.
ibm-qdmi --catalog_path prints the installed catalogue path without loading a
device or contacting IBM. See the
information CLI for the remaining
options and the equivalent python -m ibm.qdmi interface.
See development for wheel and source-distribution checks.