You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Description
This PR originally only aimed to address #1352.
However, working on it prompted several follow-ups and improvements for
the QDMI support layer as well as a couple of bugfixes.
The main change here is still that all QDMI devices are now built as
shared libraries by default and that the respective dynamic wrappers
have been removed.
The QDMI Qiskit wrapper now supports multi-controlled gates as exposed
by the DDSIM device.
The QDMI Python tests have been significantly streamlined, and a lot of
the mocking code is replaced with actual device executions.
I will leave this in draft until CI is green because I expect Windows to
cause some problems.
Edit: As expected, Windows is acting up big again.
Edit2: I think I have a working version now. Only took 10h 🫠
Fixes#1352
## Checklist
<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->
- [x] The pull request only contains commits that are focused and
relevant to this change.
- [x] I have added appropriate tests that cover the new/changed
functionality.
- [x] I have updated the documentation to reflect these changes.
- [x] I have added entries to the changelog for any noteworthy
additions, changes, fixes, or removals.
- [x] I have added migration instructions to the upgrade guide (if
needed).
- [x] The changes follow the project's style guidelines and introduce no
new warnings.
- [x] The changes are fully tested and pass the CI checks.
- [x] I have reviewed my own code changes.
**If PR contains AI-assisted content:**
- [x] I have disclosed the use of AI tools in the PR description as per
our [AI Usage
Guidelines](https://github.com/munich-quantum-toolkit/core/blob/main/docs/ai_usage.md).
- [x] AI-assisted commits include an `Assisted-by: [Model Name] via
[Tool Name]` footer.
- [x] I confirm that I have personally reviewed and understood all
AI-generated content, and accept full responsibility for it.
---------
Signed-off-by: burgholzer <burgholzer@me.com>
Co-authored-by: Daniel Haag <121057143+denialhaag@users.noreply.github.com>
Copy file name to clipboardExpand all lines: UPGRADING.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,25 @@ This document describes breaking changes and how to upgrade. For a complete list
4
4
5
5
## [Unreleased]
6
6
7
+
### Changes to builtin QDMI devices
8
+
9
+
The builtin QDMI devices (with prefixes `MQT_SC`, `MQT_NA`, and `MQT_DDSIM`) are now all built as shared libraries by default.
10
+
In turn, the shared library wrappers (with prefixes `MQT_SC_DYN` and `MQT_NA_DYN`) have been removed entirely.
11
+
MQT Core's QDMI driver will automatically load the shared libraries of the builtin devices if they are available in the library search path.
12
+
If you were previously using the statically builtin devices, no changes should be necessary as the shared libraries are now the default.
13
+
If you were previously using the shared library wrappers, you should switch to using the builtin devices instead, which are now shared libraries by default.
14
+
15
+
### Broader operation support in QDMI Qiskit converter
16
+
17
+
The QDMI Qiskit converter now supports a broader range of operations, including multi-controlled gates such as `mcx`, `mcz`, `mcrx`, and more.
18
+
As a consequence, these operations can now be directly used without requiring decomposition, for example, with the builtin `DDSIM` QDMI device.
19
+
20
+
### Minimum supported Qiskit version
21
+
22
+
From this release onwards, MQT Core requires Qiskit version `1.1.0` or higher.
23
+
This is due to the fact that we are relying on some fixes to Qiskit primitives that were introduced in that version.
24
+
If you are using MQT Core with Qiskit, please ensure that you have updated to Qiskit `1.1.0` or higher to avoid any compatibility issues.
25
+
7
26
### MLIR enabled by default for C++ builds
8
27
9
28
The MLIR-based functionality within MQT Core has long been experimental and opt-in.
Copy file name to clipboardExpand all lines: docs/qdmi/driver.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,9 @@ mystnb:
10
10
11
11
## Objective
12
12
13
-
A QDMI Driver manages the communication between QDMI devices, such as [MQT Core's NA QDMI Device](na_device.md), and QDMI clients, see the [QDMI specification](https://munich-quantum-software-stack.github.io/QDMI/).
13
+
A QDMI Driver manages the communication between QDMI devices, such as [MQT Core's NA QDMI Device](na_device.md) or [MQT Core's DDSIM QDMI Device](ddsim_device.md), and QDMI clients, see the [QDMI specification](https://munich-quantum-software-stack.github.io/QDMI/).
14
14
It is responsible for loading the device, forwarding requests from the client to the device, and sending back the results.
15
-
The MQT Core's QDMI Driver, {cpp:class}`qdmi::Driver`, comes with the [MQT Core's NA QDMI Device](na_device.md)that is already statically linked into the driver and can directly be used.
15
+
MQT Core's QDMI Driver, {cpp:class}`qdmi::Driver`, comes with several preloaded devices that can be used directly.
16
16
Other devices can be loaded dynamically at runtime via {cpp:func}`qdmi::Driver::addDynamicDeviceLibrary`.
0 commit comments