Skip to content

Adding debugging capabilities to the CompileModuled - #5035

Merged
Renaud-K merged 2 commits into
NVIDIA:mainfrom
Renaud-K:compile-module-debug
Aug 1, 2026
Merged

Renaud-K merged 2 commits into
NVIDIA:mainfrom
Renaud-K:compile-module-debug

Conversation

@Renaud-K

@Renaud-K Renaud-K commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

This PR is adding two environment variables for debug and test purposes.
CUDAQ_COMPILED_MODULE_CACHE_SIZE to control the number of entries in the cache.
CUDAQ_DEBUG_COMPILED_MODULE to activate the debug messages in some key places:

  • the CompiledModuleCache constructor
  • the CompiledModuleCache eviction code
  • the CompiledModule destructor and
  • the JITEngine destructor

Two tests are attached
test_sync.py
test_async.py

And can be run with:

CUDAQ_COMPILED_MODULE_CACHE_SIZE=1 CUDAQ_DEBUG_COMPILED_MODULE=1 python3 test_sync.py

As of 12f5dba, this produces:

CompiledModuleCache constructor with maxReadyEntries = 1
CompiledModule destructor for kernel1..0x7861794adfa0.run
CompiledModule destructor for kernel1..0x7861794adfa0.run
CompiledModule destructor for kernel1..0x7861794adfa0.run
CompiledModule destructor for kernel1..0x7861794adfa0.run
CompiledModule destructor for kernel1..0x7861794adfa0.run
CompiledModuleCache constructor with maxReadyEntries = 1
CompiledModule destructor for kernel2..0x7861738e3200.run
CompiledModule destructor for kernel2..0x7861738e3200.run
CompiledModule destructor for kernel2..0x7861738e3200.run
CompiledModule destructor for kernel2..0x7861738e3200.run
CompiledModule destructor for kernel2..0x7861738e3200.run
CompiledModuleCache constructor with maxReadyEntries = 1
CompiledModule destructor for kernel3..0x78617aa86000.run
CompiledModule destructor for kernel3..0x78617aa86000.run
CompiledModule destructor for kernel3..0x78617aa86000.run
CompiledModule destructor for kernel3..0x78617aa86000.run
CompiledModule destructor for kernel3..0x78617aa86000.run
[True]
[True]
[True]
Before exiting
CompiledModule destructor for kernel1..0x7861794adfa0.run
Destructing ExecutionEngine
CompiledModule destructor for kernel2..0x7861738e3200.run
Destructing ExecutionEngine
CompiledModule destructor for kernel3..0x78617aa86000.run
Destructing ExecutionEngine

Meaning that 3 distinct caches are created each holding one entry. No eviction happens. ExecutionEngines are deleted on exit.

The ultimate goal would be to support the eviction of a CompiledModule being run asynchronously. I believe this means that a shared_ptr<CompiledModule> instead of a raw pointer needs to be passed to the running thread.

@github-actions github-actions Bot added runtime CUDA quantum runtime python-lang Anything related to the Python CUDA Quantum language implementation labels Jul 30, 2026
@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown

CI Summary (push) — ✅ passed

Run #30670572484 · ✅ 6 · ⏩ 7 · ❌ 0 · ⛔ 0

Top-level jobs (13)
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
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 (42) — 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 ✅ 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

Comment thread python/runtime/cudaq/platform/CompiledModuleCache.cpp
Comment thread python/runtime/cudaq/platform/CompiledModuleCache.cpp
Comment thread runtime/common/CompiledModule.h
@Renaud-K
Renaud-K force-pushed the compile-module-debug branch from 17c94fd to 581d899 Compare July 31, 2026 01:52
@copy-pr-bot

copy-pr-bot Bot commented Jul 31, 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.

@lmondada

lmondada commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Thanks a lot Renaud, this is a good idea.

One suggestion: could we reuse the logging utilities we already have rather than printing our own outputs? I'm thinking:

  1. Add the option to provide a tag to CUDAQ_DBG calls using an optional argument.
  2. Associate a tag to an env var. When a recognised env var is set, force CUDAQ_LOG_LEVEL=debug and record the set of active tags at startup
  3. Within the CUDAQ_DBG implementation suppress any debug message that isn't tagged with an active tag. That way a message prints only if the tag is active (or if no tag is active and the log level was set manually)

I think this would be useful to have more generally: otherwise we keep adding custom logging mechanism and/or dump everything within the flood of text that CUDAQ_DBG currently prints out. If you want this to work in a release build, replace CUDAQ_DBG with CUDAQ_INFO.

I checked with a text generator to see if it seemed doable without too much effort. Below is the edited suggestion, if you want.


Tag CUDAQ_DBG calls using a distinct enum class, so overload resolution disambiguates tagged vs. untagged. All existing CUDAQ_DBG("...") call sites compile unchanged.

CUDAQ_DBG("x = {}", x);                        // untagged (as today)
CUDAQ_DBG(cudaq::DbgTag::CompiledModuleCache, "x = {}", x); // tagged

logger.h

new tag enum + accessors, two dbgEmit overloads, and the macro now forwards to them:

enum class DbgTag { CompiledModuleCache /* add more */ };
bool isDbgTagActive(DbgTag);
bool anyDbgTagActive();
namespace detail {
template <typename... A>  // untagged
void dbgEmit(const char *f, int l, std::string_view m, A &&...a) {
  if (anyDbgTagActive()) return;            // filtering on: untagged never matches
  logMessage(LogLevel::debug, m, f, l, std::forward<A>(a)...);
}
template <typename... A>  // tagged
void dbgEmit(const char *f, int l, DbgTag t, std::string_view m, A &&...a) {
  if (anyDbgTagActive() && !isDbgTagActive(t)) return;
  logMessage(LogLevel::debug, m, f, l, std::forward<A>(a)...);
}
}
#ifdef CUDAQ_DEBUG
#define CUDAQ_DBG(...)                                                   \
  do {                                                                   \
    if (::cudaq::detail::should_log(::cudaq::detail::LogLevel::debug))   \
      ::cudaq::detail::dbgEmit(__FILE__, __LINE__, __VA_ARGS__);         \
  } while (false)
#endif

logger.cpp

Add a tag table + active state (mirroring the g_timingList() pattern, lines 34-44):

struct DbgTagInfo { DbgTag tag; const char *env; };
static constexpr DbgTagInfo kDbgTags[] = {
    {DbgTag::Compiler, "CUDAQ_LOG_COMPILER"},
};
static std::array<bool, std::size(kDbgTags)> &g_dbgActive();
static bool g_anyDbgActive = false;

Implement accessors:

bool isDbgTagActive(DbgTag tag) { return g_dbgActive()[static_cast<size_t>(tag)]; }
bool anyDbgTagActive() { return g_anyDbgActive; }

In initializeLogger() (after the level parsing, near the CUDAQ_TIMING_TAGS block at lines 71-98): for each entry in kDbgTags, read its env var; if set and truthy (non-empty and not 0/false/off), mark active and set g_anyDbgActive = true. Then force debug on:

if (g_anyDbgActive && spdlog::get_level() > spdlog::level::debug)
  spdlog::set_level(spdlog::level::debug);

@Renaud-K

Copy link
Copy Markdown
Collaborator Author

This can get definitely better. I do not mean for this to be the way of testing moving forward and I do not think that it should be. We can replace it with something more formal once we see the value. But for now, I would just like to have something for the purpose of this discussion.

@Renaud-K

Renaud-K commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test 581d899

Command Bot: Processing...

@schweitzpgi

Copy link
Copy Markdown
Collaborator

Looks like a great step forward in those two areas. Thanks, Renaud.

@lmondada lmondada left a comment

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.

Thank you!

@Renaud-K
Renaud-K added this pull request to the merge queue Jul 31, 2026
@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown

CI Summary (merge_group) — ✅ passed

Run #30687665057 · ✅ 12 · ⏩ 1 · ❌ 0 · ⛔ 0

Top-level jobs (13)
Job Result
binaries ✅ success
build_and_test ✅ success
config_devdeps ✅ success
config_source_build ✅ success
config_wheeldeps ✅ success
devdeps ✅ success
docker_image ✅ success
gen_code_coverage ⏩ skipped
metadata ✅ success
python_metapackages ✅ success
python_wheels ✅ success
source_build ✅ success
wheeldeps ✅ success
⏩ Skipped jobs (1) — intentionally skipped on PR builds; run on merge_group / workflow_dispatch
Job
gen_code_coverage
All sub-jobs (213) — 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, gcc12, openmpi) / Dev environment (Debug) ✅ success view
Build and test (arm64, gcc12, 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) ✅ success view
Configure build (wheeldeps) ✅ 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) / Prepare cache clean-up ✅ success view
Create CUDA Quantum installer (amd64, 12.6) / Prepare validation ✅ success view
Create CUDA Quantum installer (amd64, 12.6) / Staging ⏩ skipped 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 (amd64, 13.0) / Build CUDA Quantum assets ✅ success view
Create CUDA Quantum installer (amd64, 13.0) / Minimal OpenMPI installation ✅ success view
Create CUDA Quantum installer (amd64, 13.0) / Prepare cache clean-up ✅ success view
Create CUDA Quantum installer (amd64, 13.0) / Prepare validation ✅ success view
Create CUDA Quantum installer (amd64, 13.0) / Staging ⏩ skipped view
Create CUDA Quantum installer (amd64, 13.0) / Validate installer (debian:12) ✅ success view
Create CUDA Quantum installer (amd64, 13.0) / Validate installer (fedora:42) ✅ success view
Create CUDA Quantum installer (amd64, 13.0) / Validate installer (opensuse/leap:15.5) ✅ success view
Create CUDA Quantum installer (amd64, 13.0) / 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) / Prepare cache clean-up ✅ success view
Create CUDA Quantum installer (arm64, 12.6) / Prepare validation ✅ success view
Create CUDA Quantum installer (arm64, 12.6) / Staging ⏩ skipped 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 CUDA Quantum installer (arm64, 13.0) / Build CUDA Quantum assets ✅ success view
Create CUDA Quantum installer (arm64, 13.0) / Minimal OpenMPI installation ✅ success view
Create CUDA Quantum installer (arm64, 13.0) / Prepare cache clean-up ✅ success view
Create CUDA Quantum installer (arm64, 13.0) / Prepare validation ✅ success view
Create CUDA Quantum installer (arm64, 13.0) / Staging ⏩ skipped view
Create CUDA Quantum installer (arm64, 13.0) / Validate installer (ubuntu:22.04) ✅ success view
Create Docker images (amd64) / Documentation ✅ success view
Create Docker images (amd64) / Metadata ✅ success view
Create Docker images (amd64) / Prepare cache clean-up ✅ success view
Create Docker images (amd64) / Staging ⏩ skipped view
Create Docker images (amd64) / Validation ✅ success view
Create Docker images (amd64) / cuda-quantum (release) ✅ success view
Create Docker images (amd64) / cuda-quantum-dev (debug) ✅ success view
Create Docker images (amd64) / open-mpi ⏩ skipped view
Create Docker images (arm64) / Documentation ⏩ skipped view
Create Docker images (arm64) / Metadata ✅ success view
Create Docker images (arm64) / Prepare cache clean-up ✅ success view
Create Docker images (arm64) / Staging ⏩ skipped view
Create Docker images (arm64) / Validation ✅ success view
Create Docker images (arm64) / cuda-quantum (release) ✅ success view
Create Docker images (arm64) / cuda-quantum-dev (debug) ✅ success view
Create Docker images (arm64) / open-mpi ⏩ skipped view
Create Python metapackages / Build Python metapackages ✅ 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 metapackages / Test Python metapackages (12.6, 3.14) ✅ success view
Create Python metapackages / Test Python metapackages (13.0, 3.11) ✅ success view
Create Python metapackages / Test Python metapackages (13.0, 3.13) ✅ success view
Create Python metapackages / Test Python metapackages (13.0, 3.14) ✅ 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 (3.14) ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Build Python 3.11 wheel ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Prepare validation ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Staging ⏩ skipped 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 (debian:12, --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 (fedora:42, --user) ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10) ✅ 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/ubi9:9.6) ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (redhat/ubi9:9.6, --user) ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (ubuntu:22.04) ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (ubuntu:22.04, --user) ✅ success view
Create Python wheels (amd64, 3.11, 12.6) / Validate wheel on GPU (nvidia simulator) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Build Python 3.11 wheel ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Prepare validation ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Staging ⏩ skipped view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (debian:12) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (debian:12, --user) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (redhat/ubi8:8.10) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (redhat/ubi8:8.10, --user) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (redhat/ubi9:9.6) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (redhat/ubi9:9.6, --user) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (ubuntu:22.04) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel (ubuntu:22.04, --user) ✅ success view
Create Python wheels (amd64, 3.11, 13.0) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (amd64, 3.13, 12.6) / Build Python 3.13 wheel ✅ success view
Create Python wheels (amd64, 3.13, 12.6) / Prepare validation ✅ success view
Create Python wheels (amd64, 3.13, 12.6) / Staging ⏩ skipped view
Create Python wheels (amd64, 3.13, 12.6) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (amd64, 3.13, 12.6) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (amd64, 3.13, 12.6) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (amd64, 3.13, 13.0) / Build Python 3.13 wheel ✅ success view
Create Python wheels (amd64, 3.13, 13.0) / Prepare validation ✅ success view
Create Python wheels (amd64, 3.13, 13.0) / Staging ⏩ skipped view
Create Python wheels (amd64, 3.13, 13.0) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (amd64, 3.13, 13.0) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (amd64, 3.13, 13.0) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (amd64, 3.14, 12.6) / Build Python 3.14 wheel ✅ success view
Create Python wheels (amd64, 3.14, 12.6) / Prepare validation ✅ success view
Create Python wheels (amd64, 3.14, 12.6) / Staging ⏩ skipped view
Create Python wheels (amd64, 3.14, 12.6) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (amd64, 3.14, 12.6) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (amd64, 3.14, 12.6) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (amd64, 3.14, 13.0) / Build Python 3.14 wheel ✅ success view
Create Python wheels (amd64, 3.14, 13.0) / Prepare validation ✅ success view
Create Python wheels (amd64, 3.14, 13.0) / Staging ⏩ skipped view
Create Python wheels (amd64, 3.14, 13.0) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (amd64, 3.14, 13.0) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (amd64, 3.14, 13.0) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (arm64, 3.11, 12.6) / Build Python 3.11 wheel ✅ success view
Create Python wheels (arm64, 3.11, 12.6) / Prepare validation ✅ success view
Create Python wheels (arm64, 3.11, 12.6) / Staging ⏩ skipped 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 (debian:12, --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 (fedora:42, --user) ✅ success view
Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10) ✅ 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/ubi9:9.6) ✅ success view
Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi9:9.6, --user) ✅ success view
Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (ubuntu:22.04) ✅ success view
Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (ubuntu:22.04, --user) ✅ success view
Create Python wheels (arm64, 3.11, 12.6) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (arm64, 3.11, 13.0) / Build Python 3.11 wheel ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Prepare validation ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Staging ⏩ skipped view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (debian:12) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (debian:12, --user) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (redhat/ubi8:8.10) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (redhat/ubi8:8.10, --user) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (redhat/ubi9:9.6) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (redhat/ubi9:9.6, --user) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (ubuntu:22.04) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel (ubuntu:22.04, --user) ✅ success view
Create Python wheels (arm64, 3.11, 13.0) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (arm64, 3.13, 12.6) / Build Python 3.13 wheel ✅ success view
Create Python wheels (arm64, 3.13, 12.6) / Prepare validation ✅ success view
Create Python wheels (arm64, 3.13, 12.6) / Staging ⏩ skipped view
Create Python wheels (arm64, 3.13, 12.6) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (arm64, 3.13, 12.6) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (arm64, 3.13, 12.6) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (arm64, 3.13, 13.0) / Build Python 3.13 wheel ✅ success view
Create Python wheels (arm64, 3.13, 13.0) / Prepare validation ✅ success view
Create Python wheels (arm64, 3.13, 13.0) / Staging ⏩ skipped view
Create Python wheels (arm64, 3.13, 13.0) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (arm64, 3.13, 13.0) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (arm64, 3.13, 13.0) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (arm64, 3.14, 12.6) / Build Python 3.14 wheel ✅ success view
Create Python wheels (arm64, 3.14, 12.6) / Prepare validation ✅ success view
Create Python wheels (arm64, 3.14, 12.6) / Staging ⏩ skipped view
Create Python wheels (arm64, 3.14, 12.6) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (arm64, 3.14, 12.6) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (arm64, 3.14, 12.6) / Validate wheel on GPU (nvidia simulator) ⏩ skipped view
Create Python wheels (arm64, 3.14, 13.0) / Build Python 3.14 wheel ✅ success view
Create Python wheels (arm64, 3.14, 13.0) / Prepare validation ✅ success view
Create Python wheels (arm64, 3.14, 13.0) / Staging ⏩ skipped view
Create Python wheels (arm64, 3.14, 13.0) / Validate wheel (fedora:42) ✅ success view
Create Python wheels (arm64, 3.14, 13.0) / Validate wheel (fedora:42, --user) ✅ success view
Create Python wheels (arm64, 3.14, 13.0) / Validate wheel on GPU (nvidia simulator) ⏩ 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 (amd64, 12.6) / Caching ✅ success view
Load source build cache (amd64, 12.6) / Finalize ✅ success view
Load source build cache (amd64, 12.6) / Metadata ✅ success view
Load source build cache (amd64, 13.0) / Caching ✅ success view
Load source build cache (amd64, 13.0) / Finalize ✅ success view
Load source build cache (amd64, 13.0) / Metadata ✅ success view
Load source build cache (arm64, 12.6) / Caching ✅ success view
Load source build cache (arm64, 12.6) / Finalize ✅ success view
Load source build cache (arm64, 12.6) / Metadata ✅ success view
Load source build cache (arm64, 13.0) / Caching ✅ success view
Load source build cache (arm64, 13.0) / Finalize ✅ success view
Load source build cache (arm64, 13.0) / Metadata ✅ success 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 ✅ success view
Retrieve PR info ✅ success view
✅ Required checks (41/41) — declared in .github/required-checks.yml for merge_group
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
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 (3.14) ✅ 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 metapackages / Test Python metapackages (12.6, 3.14) ✅ 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

@Renaud-K
Renaud-K force-pushed the compile-module-debug branch from 581d899 to 5a70383 Compare July 31, 2026 20:33
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 31, 2026
@Renaud-K
Renaud-K enabled auto-merge July 31, 2026 22:28
Renaud-K added 2 commits July 31, 2026 22:37
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
@Renaud-K
Renaud-K force-pushed the compile-module-debug branch from 5a70383 to 73fa500 Compare July 31, 2026 22:37
@Renaud-K

Renaud-K commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test 73fa500

Command Bot: Processing...

@Renaud-K
Renaud-K added this pull request to the merge queue Jul 31, 2026
Merged via the queue into NVIDIA:main with commit dee5b74 Aug 1, 2026
71 checks passed
@Renaud-K
Renaud-K deleted the compile-module-debug branch August 1, 2026 08:40
github-actions Bot pushed a commit that referenced this pull request Aug 1, 2026
Renaud-K added a commit to Renaud-K/cuda-quantum that referenced this pull request Aug 6, 2026
…5035\)"

Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
schweitzpgi pushed a commit to schweitzpgi/cuda-quantum that referenced this pull request Aug 7, 2026
)" (NVIDIA#5060)

## Summary
- Reverts NVIDIA#5035 (`dee5b745`), removing the temporary
`CUDAQ_COMPILED_MODULE_CACHE_SIZE` / `CUDAQ_DEBUG_COMPILED_MODULE`
debugging hooks from `CompiledModule`, `CompiledModuleCache`, and
`JITEngine`.

This was introduced as a hack to enable discussion around the deletion
of the ExecutionEngine. It is not a productized solution and offers an
attack surface.

Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
@bettinaheim bettinaheim added the no release notes Don't list this PR in the release notes label Sep 11, 2026
@bettinaheim bettinaheim added this to the release 0.16.0 milestone Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no release notes Don't list this PR in the release notes python-lang Anything related to the Python CUDA Quantum language implementation runtime CUDA quantum runtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants