Reduced QPU headers dependency on JSON and LLVM/MLIR#4416
Merged
Renaud-K merged 7 commits intoNVIDIA:mainfrom May 1, 2026
Merged
Reduced QPU headers dependency on JSON and LLVM/MLIR#4416Renaud-K merged 7 commits intoNVIDIA:mainfrom
Renaud-K merged 7 commits intoNVIDIA:mainfrom
Conversation
1tnguyen
reviewed
Apr 29, 2026
1tnguyen
approved these changes
Apr 29, 2026
Collaborator
1tnguyen
left a comment
There was a problem hiding this comment.
LGTM 💯
Just one question about FetchContent vs. submodule convention.
lmondada
approved these changes
Apr 30, 2026
Collaborator
lmondada
left a comment
There was a problem hiding this comment.
Thank you, nice clean up!
Collaborator
Author
Command Bot: Processing... |
Collaborator
Author
Command Bot: Processing... |
@Renaud-K, there was an error processing your request: See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/2/ |
Collaborator
Author
Command Bot: Processing... |
Collaborator
Author
Command Bot: Processing... |
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Collaborator
Author
Command Bot: Processing... |
CI Summary — ✅ passedRun #25234244180 · trigger Top-level jobs (13)
All sub-jobs (188) — every matrix leg, with links
✅ Required checks (35/35) — declared in
|
| Required check | Status | Link |
|---|---|---|
| Build and test (arm64, gcc11, openmpi) / Dev environment (Debug) | ✅ success | view |
| Build and test (arm64, gcc11, openmpi) / Dev environment (Python) | ✅ success | view |
| Build and test (arm64, gcc12, openmpi) / Dev environment (Debug) | ✅ success | view |
| Build and test (arm64, gcc12, openmpi) / Dev environment (Python) | ✅ success | view |
| Create CUDA Quantum installer (amd64, 12.6) / Build CUDA Quantum assets | ✅ success | view |
| Create CUDA Quantum installer (amd64, 12.6) / Minimal OpenMPI installation | ✅ success | view |
| Create CUDA Quantum installer (amd64, 12.6) / Validate installer (debian:12) | ✅ success | view |
| Create CUDA Quantum installer (amd64, 12.6) / Validate installer (fedora:42) | ✅ success | view |
| Create CUDA Quantum installer (amd64, 12.6) / Validate installer (opensuse/leap:15.5) | ✅ success | view |
| Create CUDA Quantum installer (amd64, 12.6) / Validate installer (redhat/ubi9:9.6) | ✅ success | view |
| Create CUDA Quantum installer (amd64, 12.6) / Validate installer (ubuntu:22.04) | ✅ success | view |
| Create CUDA Quantum installer (arm64, 12.6) / Build CUDA Quantum assets | ✅ success | view |
| Create CUDA Quantum installer (arm64, 12.6) / Minimal OpenMPI installation | ✅ success | view |
| Create CUDA Quantum installer (arm64, 12.6) / Validate installer (redhat/ubi9:9.6) | ✅ success | view |
| Create CUDA Quantum installer (arm64, 12.6) / Validate installer (ubuntu:22.04) | ✅ success | view |
| Create Docker images (amd64) / Documentation | ✅ success | view |
| Create Docker images (amd64) / Validation | ✅ success | view |
| Create Docker images (arm64) / Validation | ✅ success | view |
| Create Python metapackages / Build Python metapackages | ✅ success | view |
| Create Python metapackages / Test Python metapackages (3.11) | ✅ success | view |
| Create Python metapackages / Test Python metapackages (3.13) | ✅ success | view |
| Create Python metapackages / Test Python metapackages (12.6, 3.11) | ✅ success | view |
| Create Python metapackages / Test Python metapackages (12.6, 3.13) | ✅ success | view |
| Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (debian:12, --user) | ✅ success | view |
| Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (debian:12) | ✅ success | view |
| Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (fedora:42, --user) | ✅ success | view |
| Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (fedora:42) | ✅ success | view |
| Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10, --user) | ✅ success | view |
| Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10) | ✅ success | view |
| Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (debian:12, --user) | ✅ success | view |
| Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (debian:12) | ✅ success | view |
| Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (fedora:42, --user) | ✅ success | view |
| Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (fedora:42) | ✅ success | view |
| Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10, --user) | ✅ success | view |
| Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10) | ✅ success | view |
5 tasks
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.
The end goal is to be able to have QPU headers visible from user code, so compile-time checks can be performed based on QPU traits without leaking headers from 3rd party libraries.
Importing the latest
nlohmann::jsonlibrary which introduces a header for forward declaration of thenlohmann::jsontype.cudaq_jsontype to encapsulate the forward declarednlohmann::json. Only needed byKernelExecutionnlohmann::jsontype in.cppfiles.Adding to the build tree, the files newly needed at runtime to enable
nvq++to run from the build tree(TargetConfig.h Version.h json_fwd.hpp)
Moved Fermioniq implementation that was using
nlohmann::jsonto the.cppfile. Merged FermioniqQPU with FermioniqBaseQPU.Introduced qpu_utils.{h,cpp} to prevent header includes to bleed through the qpu headers. This, for now, stops the inclusion of:
ModuleOp::getFromOpaquePointer,ModuleOp::getAsOpaquePointerand an MLIRContextDesctuctor to pass the MLIR modules and contexts through the QPUs.This is a stop gap until we have a unified launch interface @lmondada is working on.