Repository navigation
✨ Add optional MQT Core compilation - #1027
Open
simon1hofmann wants to merge 47 commits into
Open
simon1hofmann wants to merge 47 commits into
simon1hofmann wants to merge 47 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
simon1hofmann
force-pushed
the
feat/mqt-core-compiler
branch
from
September 17, 2026 08:49
509d184 to
df2aeca
Compare
simon1hofmann
force-pushed
the
feat/mqt-core-compiler
branch
from
October 2, 2026 11:21
a51d1ac to
91949dd
Compare
10 tasks done
burgholzer
force-pushed
the
feat/mqt-core-compiler
branch
from
October 2, 2026 14:06
91949dd to
68d4f2a
Compare
burgholzer
force-pushed
the
feat/mqt-core-compiler
branch
3 times, most recently
from
October 4, 2026 15:09
93867e1 to
3c3ab51
Compare
This comment has been minimized.
This comment has been minimized.
Assisted-by: GPT-6 via Codex
Assisted-by: GPT-6 via Codex
Assisted-by: GPT-6 via Codex
Include the MQT Core coverage report in the combined CI upload. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Pin Core main plus the controlled-composite fix and expose CompilationOptions with a fixed seed and mapping trial count, including mirror recompilation. Remove circuit preprocessing and parameter remapping now handled by Core. Configure MLIR for CI source builds and cover option forwarding, reproducibility, and parameter-vector identity. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Use the Core fix that handles composite controls within the existing decomposition pass and avoids extra single-qubit merging. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 The reusable lint job configures sccache without installing it when stub checks are disabled, so building Core for ty fails. Run the existing ty hook in the Core job, which already provides MLIR and builds the dependency. Require that job whenever either tests or lint are requested. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Pin the integrated Core changes for native trapped-ion gates and generic fixed RX/RY/RZ capabilities while preserving controlled-composite support. Restore Rigetti pulse names during target validation and cover symbolic parameters, native semantics, and rejected target definitions. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Use canonical native definitions so Core preserves numeric and symbolic pulses through repeated compilation. Omit capabilities wider than the input circuit at the native-gate level. Pin Core with the matching import and fixed-parameter compatibility fixes. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Pin the rebased integration branch with the fixed-parameter and native-gate CI tests. Keep the dependency lockfile and documented revision aligned. Assisted-by: GPT-6 via Codex
11 of 12 tasks
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
Extract the target-test isolation and device capability checks from #1027. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex
This was referenced Oct 21, 2026
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
Cover bounded target aliases and legacy Qiskit serialization. Extract registry isolation from #1027. Remove the extra test file. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de>
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
Extracted from #1027; retain original authorship. Assisted-by: GPT-6 via Codex Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
* ✨ Add AQT IBEX device and native gate set Extracted from #1027; retain original authorship. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * 📝 Reference #1084 in changelog * ✅ Isolate target registries and check device control-flow limits Extract the target-test isolation and device capability checks from #1027. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * ✅ Keep AQT tests in the existing target test module * 📝 Keep migration guidance and changelog links in their sections --------- Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
* 🔥 Remove retired IBM device models Extracted from #1027; retain original authorship. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * 📝 Reference #1089 in changelog * 📝 Keep migration guidance and changelog links in their sections * 📝 Distinguish gate-set and device names in CLI help * 🔥 Remove tests for retired IBM catalogue names --------- Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
* 📝 Fix API documentation markup and notebook builds Extracted from #1027; retain original authorship. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * 📝 Reference #1088 in changelog * 📝 Keep migration guidance and changelog links in their sections * Preserve citations and signatures in Markdown documentation * Remove ineffective sphinx-llm version cap sphinx-llm 1.0 and 1.1 produce identical per-page Markdown. Version 1.1 exposes existing unsupported-node warnings; the cap does not restore missing content. Refs: NVIDIA/sphinx-llm#153 --------- Signed-off-by: simon1hofmann <119581649+simon1hofmann@users.noreply.github.com> Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
* ✨ Add IBM Nighthawk device model Extracted from #1027; retain original authorship. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * 📝 Reference #1085 in changelog * ✅ Keep Nighthawk tests in the existing target test module * 📝 Keep migration guidance and changelog links in their sections --------- Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
* 🐛 Preserve IonQ and Rigetti native gate semantics Extracted from #1027; retain original authorship. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * 📝 Reference #1086 in changelog * ✅ Keep native regression tests in the target test module Cover bounded target aliases and legacy Qiskit serialization. Extract registry isolation from #1027. Remove the extra test file. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> * 🐛 Preserve physical placements shared by native aliases Keep equivalent RX aliases on every supported physical site, including targets that also expose a standard X gate. Retain phase-correct local lowering and add mapped regressions. Assisted-by: GPT-6 via Codex * ✅ Check mixed aliases at native and mapped levels * Test minimum Qiskit support and complete mirror layouts * ✅ Verify native gate constraints and restore minimums session Cover arbitrary U/RX compilation at all optimization levels for native and mapped targets, and check session equivalences remain unchanged. Keep local lowering because preset passes do not consistently enforce fixed R/RX angles. Restore noxfile.py to main. Assisted-by: GPT-6 via Codex --------- Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
🤖 *AI text below* 🤖 Keep the merged device and native-alias changes from main while preserving Core/QIR and fractional-Heron support. Reconcile the changelog and retain the upstream placement and bounds regressions. Assisted-by: GPT-5 via Codex
simon1hofmann
added a commit
that referenced
this pull request
Oct 21, 2026
* 🐛 Preserve IonQ and Rigetti native gate semantics Extracted from #1027; retain original authorship. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * 📝 Reference #1086 in changelog * ✨ Add fractional Heron compilation targets Extracted from #1027; retain original authorship. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> Assisted-by: GPT-6 via Codex * 📝 Reference #1087 in changelog * ✅ Keep native regression tests in the target test module Cover bounded target aliases and legacy Qiskit serialization. Extract registry isolation from #1027. Remove the extra test file. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> * ✅ Keep fractional target tests in the existing test module Cover old Qiskit rejection and narrower caller-defined RZZ bounds. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de> * 🐛 Preserve physical placements shared by native aliases Keep equivalent RX aliases on every supported physical site, including targets that also expose a standard X gate. Retain phase-correct local lowering and add mapped regressions. Assisted-by: GPT-6 via Codex * ✅ Check mixed aliases at native and mapped levels * 🐛 Serialize documentation builds that share notebook output Use the same notebook build ordering as #1088 to prevent concurrent HTML and Markdown builds from deleting each other’s example output. * Test minimum Qiskit support and complete mirror layouts * Test the fractional target compatibility error on current Qiskit * ♻️ Simplify fractional Heron registration and angle wrapping Use a shared packaging.version check while keeping Qiskit 2.1.2 support. Use theta parameters, simplify the local wrapping traversal and phase correction, and cover all optimization levels and large angles. Assisted-by: GPT-6 via Codex * ✅ Verify native gate constraints and restore minimums session Cover arbitrary U/RX compilation at all optimization levels for native and mapped targets, and check session equivalences remain unchanged. Keep local lowering because preset passes do not consistently enforce fixed R/RX angles. Restore noxfile.py to main. Assisted-by: GPT-6 via Codex * ⬆️ Require Qiskit 2.2.3 and simplify fractional targets Register fractional Heron targets unconditionally, remove obsolete compatibility guards and tests, and document the new Qiskit minimum and upgrade command. Assisted-by: GPT-6 via Codex --------- Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
Assisted-by: GPT-5 via Codex
Assisted-by: GPT-5 via Codex
11 of 12 tasks
Extract target documentation, remove redundant target tests and dead packaging metadata, and restore main’s documentation dependency. Assisted-by: GPT-5 via Codex
12 tasks done
Include the complete Cepheus architecture and consolidated parameter guide. Preserve the optional compiler dependency pins and minimum-version base support. Assisted-by: GPT-6 via Codex
simon1hofmann
added this pull request to stack #1097
October 22, 2026 11:21
simon1hofmann
marked this pull request as ready for review
October 22, 2026 13:39
Member
|
I haven't looked at this in detail yet, but one thing that has become clear to me: I also stumbled over this separately in munich-quantum-toolkit/core#2850 where I now experimented with raising the lower bound as well. This would fit well with the PR here. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Description
Add optional MQT Core compilation through
compiler="mqt"or--compiler mqt. Qiskit remains the default, and both compilers returnQuantumCircuit.The
mqtextra pins Core 4.1.1 and Qiskit 2.5.x. The base package retains Qiskit 2.2.3 support. Native compilation keeps the input width and ignores device placement; mapped compilation enforces device width and connectivity. Both preserve measurement destinations. QASM/QPY output records compiler provenance alongside benchmark options and seeds.Core uses a fixed pipeline (
opt_level=2), seed 10, and four mapping trials. PassCompilationOptionsin Python or use--compiler-seedand--mapping-trialsin the CLI. Setting one CLI control retains the other default. Invalid CLI combinations produce usage errors.QIR export is stacked separately in #1094.
Validation
Updated against current
main. Fresh CI is pending.Codex assisted with implementation, updates, and checks.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).