Skip to content

✨ Add QDMI target#4882

Draft
flowerthrower wants to merge 23 commits into
NVIDIA:mainfrom
flowerthrower:add-qdmi-target
Draft

✨ Add QDMI target#4882
flowerthrower wants to merge 23 commits into
NVIDIA:mainfrom
flowerthrower:add-qdmi-target

Conversation

@flowerthrower

@flowerthrower flowerthrower commented Jul 8, 2026

Copy link
Copy Markdown

Adds a QDMI target via MQT Core/FoMaC, including:

  • runtime loading of QDMI device libraries
  • CUDA-Q QPU integration for discovered FoMaC devices
  • gate-set decomposition and topology-aware qubit mapping
  • dynamic QASM2/QIR base-string sample/observe submission
  • qubit count, operation, site, and connectivity metadata mapping
  • minimal DDSIM-based target test

Assisted by: GPT 5.6 via Codex

@copy-pr-bot

copy-pr-bot Bot commented Jul 8, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@khalatepradnya
khalatepradnya requested a review from anpaz July 8, 2026 16:58
@sacpis

sacpis commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

/ok to test 2a5c8ad

Command Bot: Processing...

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

CI Summary (push) — ❌ failed

Run #29350378643 · ✅ 6 · ⏩ 7 · ❌ 1 · ⛔ 0

❌ Failed or cancelled
Job Result Link
qdmi_build_and_test ❌ failure view
Top-level jobs (14)
Job Result
binaries ⏩ skipped
build_and_test ✅ success
config_devdeps ✅ success
config_source_build ⏩ skipped
config_wheeldeps ✅ success
devdeps ✅ success
docker_image ⏩ skipped
gen_code_coverage ⏩ skipped
metadata ✅ success
python_metapackages ⏩ skipped
python_wheels ⏩ skipped
qdmi_build_and_test ❌ failure
source_build ⏩ skipped
wheeldeps ✅ success
⏩ Skipped jobs (7) — intentionally skipped on PR builds; run on merge_group / workflow_dispatch
Job
binaries
config_source_build
docker_image
gen_code_coverage
python_metapackages
python_wheels
source_build
All sub-jobs (45) — every matrix leg, with links
Job Status Link
Build and test (amd64, gcc12, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, gcc12, openmpi) / Dev environment (Python) ✅ success view
Build and test (amd64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, llvm, openmpi) / Dev environment (Python) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Python) ✅ success view
CI Summary ❔ in_progress view
Configure build (devdeps) ✅ success view
Configure build (source_build) ⏩ skipped view
Configure build (wheeldeps) ✅ success view
Create CUDA Quantum installer ⏩ skipped view
Create Docker images ⏩ skipped view
Create Python metapackages ⏩ skipped view
Create Python wheels ⏩ skipped view
Gen code coverage ⏩ skipped view
Load dependencies (amd64, gcc12) / Caching ✅ success view
Load dependencies (amd64, gcc12) / Finalize ✅ success view
Load dependencies (amd64, gcc12) / Metadata ✅ success view
Load dependencies (amd64, llvm) / Caching ✅ success view
Load dependencies (amd64, llvm) / Finalize ✅ success view
Load dependencies (amd64, llvm) / Metadata ✅ success view
Load dependencies (arm64, gcc12) / Caching ✅ success view
Load dependencies (arm64, gcc12) / Finalize ✅ success view
Load dependencies (arm64, gcc12) / Metadata ✅ success view
Load dependencies (arm64, llvm) / Caching ✅ success view
Load dependencies (arm64, llvm) / Finalize ✅ success view
Load dependencies (arm64, llvm) / Metadata ✅ success view
Load source build cache ⏩ skipped view
Load wheel dependencies (amd64, 12.6) / Caching ✅ success view
Load wheel dependencies (amd64, 12.6) / Finalize ✅ success view
Load wheel dependencies (amd64, 12.6) / Metadata ✅ success view
Load wheel dependencies (amd64, 13.0) / Caching ✅ success view
Load wheel dependencies (amd64, 13.0) / Finalize ✅ success view
Load wheel dependencies (amd64, 13.0) / Metadata ✅ success view
Load wheel dependencies (arm64, 12.6) / Caching ✅ success view
Load wheel dependencies (arm64, 12.6) / Finalize ✅ success view
Load wheel dependencies (arm64, 12.6) / Metadata ✅ success view
Load wheel dependencies (arm64, 13.0) / Caching ✅ success view
Load wheel dependencies (arm64, 13.0) / Finalize ✅ success view
Load wheel dependencies (arm64, 13.0) / Metadata ✅ success view
Prepare cache clean-up ❔ in_progress view
QDMI build and DDSIM tests / Caching ❌ failure view
QDMI build and DDSIM tests / Finalize ✅ success view
QDMI build and DDSIM tests / Metadata ✅ success view
Retrieve PR info ✅ success view
✅ Required checks (6/6) — declared in .github/required-checks.yml for push
Required check Status Link
Build and test (amd64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, llvm, openmpi) / Dev environment (Python) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Python) ✅ success view
Build and test (amd64, gcc12, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, gcc12, openmpi) / Dev environment (Python) ✅ success view

@flowerthrower

Copy link
Copy Markdown
Author

This PR is marked draft until the dependent PRs in MQT Core are merged.

burgholzer added a commit to munich-quantum-toolkit/core that referenced this pull request Jul 12, 2026
## Description

This PR adds the custom1-5 job parameters to FoMaC.

During implementing the [CUDAQ QDMI
Integration](NVIDIA/cuda-quantum#4882), I found
that currently FoMaC only exposes custom session parameters but not
custom job parameters (which is, e.g., crucial for using the [Amazon
Braket QDMI
Device](https://github.com/munich-quantum-software/amazon-braket-qdmi-device)).

## Checklist

<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->

- [ ] The pull request only contains commits that are focused and
relevant to this change.
- [ ] I have added appropriate tests that cover the new/changed
functionality.
- [ ] I have updated the documentation to reflect these changes.
- [ ] I have added entries to the changelog for any noteworthy
additions, changes, fixes, or removals.
- [ ] I have added migration instructions to the upgrade guide (if
needed).
- [ ] The changes follow the project's style guidelines and introduce no
new warnings.
- [ ] The changes are fully tested and pass the CI checks.
- [ ] I have reviewed my own code changes.

**If PR contains AI-assisted content:**

- [ ] 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).
- [ ] AI-assisted commits include an `Assisted-by: [Model Name] via
[Tool Name]` footer.
- [ ] I confirm that I have personally reviewed and understood all
AI-generated content, and accept full responsibility for it.

---------

Co-authored-by: flowerthrower <flowerthrower@users.noreply.github.com>
Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
mergify Bot added a commit to munich-quantum-toolkit/core that referenced this pull request Jul 12, 2026
## Description

This PR adds the custom1-5 job parameters to FoMaC.

During implementing the [CUDAQ QDMI
Integration](NVIDIA/cuda-quantum#4882), I found
that currently FoMaC only exposes custom session parameters but not
custom job parameters (which is, e.g., crucial for using the [Amazon
Braket QDMI
Device](https://github.com/munich-quantum-software/amazon-braket-qdmi-device)).

## Checklist



- [ ] The pull request only contains commits that are focused and
relevant to this change.
- [ ] I have added appropriate tests that cover the new/changed
functionality.
- [ ] I have updated the documentation to reflect these changes.
- [ ] I have added entries to the changelog for any noteworthy
additions, changes, fixes, or removals.
- [ ] I have added migration instructions to the upgrade guide (if
needed).
- [ ] The changes follow the project's style guidelines and introduce no
new warnings.
- [ ] The changes are fully tested and pass the CI checks.
- [ ] I have reviewed my own code changes.

**If PR contains AI-assisted content:**

- [ ] 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).
- [ ] AI-assisted commits include an `Assisted-by: [Model Name] via
[Tool Name]` footer.
- [ ] I confirm that I have personally reviewed and understood all
AI-generated content, and accept full responsibility for it.



(cherry picked from commit df90a5b)

---------

Co-authored-by: Patrick Hopf <81010725+flowerthrower@users.noreply.github.com>
Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
@sacpis

sacpis commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

/ok to test 6785f7a

Command Bot: Processing...

@sacpis

sacpis commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

/ok to test c8b9767

Command Bot: Processing...

@Renaud-K
Renaud-K self-requested a review July 14, 2026 17:16
….github.com>

I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 833ca0e
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 295c0f0
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 2a5c8ad
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 1215371
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: ab11b7e

Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com>
….github.com>

I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: c852e71
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 6785f7a
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 962a893
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 7e78382
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 88c42b1
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 2186bb1

Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com>
Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com>
Assisted-by: GPT-5 via Codex
….github.com>

I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 925bd56
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 8301dd4
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 73dc69e
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: cefe1cf
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 9332add
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 2db04d8
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: bf39bf9
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: ee59305
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: b2a54b9
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 19eb96d
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: cf28b59
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: d26a0a1
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 0cc75cb
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 875b1e4
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 06a8871
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 6395be8
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 88a903a
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 3856239
I, flowerthrower <flowerthrower@users.noreply.github.com>, hereby add my Signed-off-by to this commit: e6577f5

Signed-off-by: flowerthrower <flowerthrower@users.noreply.github.com>
# the terms of the Apache License 2.0 which accompanies this distribution. #
# ============================================================================ #

# This CI-only image keeps the optional QDMI dependency and its tests isolated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't have any other provider specific Dockerfiles, and I think I'd like to keep it that way. It's better to just have your tests use the llvm image and install what's needed instead of making an extra dockerfile like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants