Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
252 commits
Select commit Hold shift + click to select a range
673e2d4
[LLVM 22] Use LLVM's registry for decomp patterns
boschmitt Mar 25, 2026
c328e12
Updated build_llvm.sh and build_cudaq.sh. Building nanobind (#4273)
Renaud-K Apr 13, 2026
75f3765
Fixing build errors from llvm22 migration (#4326)
sacpis Apr 15, 2026
8ddb8f1
Update tpls/llvm to point to the latest commit on release/22.x.
schweitzpgi Apr 14, 2026
f0a02ca
Bump the clang minor version.
schweitzpgi Apr 15, 2026
3a32dbf
fixing scope and parenthesis bug and removing patch (not needed in LL…
sacpis Apr 15, 2026
eda1273
Add default initializations.
schweitzpgi Apr 15, 2026
6aa1575
Formatting of cmake files.
schweitzpgi Apr 15, 2026
eee184d
Fix cmake files so the build doesn't crash.
schweitzpgi Apr 15, 2026
38ca037
Visiting children from type nodes in the AST was the former default
schweitzpgi Apr 15, 2026
7d5cece
Remove commentary of clang 22 changes.
schweitzpgi Apr 15, 2026
52cd268
applying LLVM 22.1 API fixes and rebasing on main
sacpis Apr 17, 2026
29d712c
formatting
sacpis Apr 17, 2026
c7aab49
Remove stray declaration
atgeller Apr 17, 2026
7e26f5d
Fix warnings.
schweitzpgi Apr 17, 2026
83001d9
Remove warnings.
schweitzpgi Apr 17, 2026
b3dd59f
Remove warnings.
schweitzpgi Apr 17, 2026
c0cc0bb
Fix warnings.
schweitzpgi Apr 17, 2026
5b3a834
Fix warnings.
schweitzpgi Apr 17, 2026
f84018c
Fix warnings.
schweitzpgi Apr 17, 2026
1fa5103
Remove warnings.
schweitzpgi Apr 17, 2026
64f79c6
Remove warnings.
schweitzpgi Apr 17, 2026
960b1b2
Remove warnings.
schweitzpgi Apr 17, 2026
4c5dc12
Fix more warnings.
schweitzpgi Apr 17, 2026
2063e03
Polish up a few more.
schweitzpgi Apr 17, 2026
83025a6
Done!
schweitzpgi Apr 17, 2026
8dd9ddc
Fix warning and remove CAPSLOCK hacks.
schweitzpgi Apr 18, 2026
b7e6c4a
fixing LLVM 22.1 Python cross-DSO TypeID and linker visibility issues
sacpis Apr 20, 2026
17b6df2
Perform version check and set correctly.
schweitzpgi Apr 20, 2026
d982426
wrapping pragmas in #ifdef __clang__ guards
sacpis Apr 20, 2026
24e7f76
Merge branch 'llvm22_update' of https://github.com/NVIDIA/cuda-quantu…
sacpis Apr 20, 2026
aba7780
fixing LLVM 22.1 FileCheck patterns in Transforms tests
sacpis Apr 20, 2026
63385a8
Add missing annotations
atgeller Apr 20, 2026
aa90a1f
using constexpr string_view for gate type names to fix ptsbe segfaults
sacpis Apr 20, 2026
cec005a
updating llvmlite to 0.47.0
sacpis Apr 20, 2026
0a61891
fixing dynamics backend build and runtime out-of-bounds for Python ev…
sacpis Apr 20, 2026
b362656
Fix codegen bug.
schweitzpgi Apr 20, 2026
d7eff61
Delete tests to ease the merge pain.
schweitzpgi Apr 20, 2026
3e5b49b
Fix some missing changes from main
atgeller Apr 20, 2026
60d48a1
Disable stim tests due to issue 4026
atgeller Apr 20, 2026
f397dae
- passing -fclang-abi-compat=17 to cudaq-quake so clang-22 mangles en…
sacpis Apr 20, 2026
586cadf
removing stale XFAIL from qir_simple_cond-2 as adaptive QIR now accep…
sacpis Apr 21, 2026
2736ac7
Restore conftest usage
atgeller Apr 21, 2026
4d32cb6
installing libstdc++-13-dev in clang16 toolchain and adding nanobind …
sacpis Apr 21, 2026
7c29ba0
adding nanobind to wheel docker file
sacpis Apr 21, 2026
0c4a071
changing the single target guard into a foreach over both known upstr…
sacpis Apr 21, 2026
8015da6
adding string lib
sacpis Apr 21, 2026
dc13df6
adding _mlir_libs to dynamics bindings rpath for libnanobind-cudaq.so
sacpis Apr 21, 2026
dab7c57
Merge branch 'main' into llvm22_update
schweitzpgi Apr 21, 2026
126bd46
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 21, 2026
6429181
Merge branch 'main' into llvm22_update
sacpis Apr 21, 2026
a213a40
porting missing methods from main
sacpis Apr 21, 2026
2b6560c
Merge branch 'llvm22_update' of https://github.com/NVIDIA/cuda-quantu…
sacpis Apr 21, 2026
6fcc63e
formatting using pre-commit hook
sacpis Apr 21, 2026
6653331
dropping GNU-only linker flags and nm -D, and deduping pthread links
sacpis Apr 21, 2026
44808d7
Use new create method
atgeller Apr 21, 2026
eb04f7f
formatting
sacpis Apr 21, 2026
d37ac23
adding -undefined dynamic_lookup
sacpis Apr 21, 2026
99b19d9
debugging build
sacpis Apr 21, 2026
3ab15a7
adding nanobind in docker
sacpis Apr 21, 2026
910865c
Disable stim noise tests when assertions enabled
atgeller Apr 21, 2026
5be900e
formatting
sacpis Apr 21, 2026
301eda1
debugging build
sacpis Apr 21, 2026
d68fc4a
fixing llvm 22 assets build and darwin typeid diag
sacpis Apr 21, 2026
7d01296
Merge branch 'main' into llvm22_update
sacpis Apr 21, 2026
4c554fd
Fix copyrights
atgeller Apr 21, 2026
016ecf8
Make Stim python tests conditional on assertions being enabled
atgeller Apr 21, 2026
652d628
Merge branch 'main' into llvm22_update
sacpis Apr 21, 2026
c5689a8
fixing MLIR TypeID split via flat_namespace on _quakeDialects
sacpis Apr 21, 2026
f1bca76
adding flat_namespace on cudaq-mlir-runtime and CAPI for TypeID unifi…
sacpis Apr 21, 2026
4794766
keeping flat_namespace only on cudaq-mlir-runtime
sacpis Apr 21, 2026
64badf3
Remove the clang-abi-compat flags from nvq++. We want to eat our
schweitzpgi Apr 22, 2026
8c0b0b9
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 22, 2026
41f37aa
Merge branch 'main' into llvm22_update
sacpis Apr 22, 2026
9e93787
Fix test case
atgeller Apr 22, 2026
69bb7ff
Fix pasqal linking
atgeller Apr 22, 2026
a8f5e8f
Suppress possible ununsed function warning
atgeller Apr 22, 2026
4f12912
Cleanup diffs. Remove gratuitous changes, etc.
schweitzpgi Apr 22, 2026
05c6010
Replace CastOp folder with a canonicalization pattern.
schweitzpgi Apr 22, 2026
37f0c2a
Update CHECK lines
atgeller Apr 22, 2026
285a7cc
Fix test.
schweitzpgi Apr 22, 2026
c4b0162
Convert fold code to canonicalization patterns.
schweitzpgi Apr 22, 2026
5d05571
Remove file that got added back for no reason.
schweitzpgi Apr 22, 2026
62af000
Merge branch 'main' into llvm22_update
sacpis Apr 22, 2026
5f33398
formatting
sacpis Apr 22, 2026
94f6531
Remove isaConstantUpperBoundLoop which is undefined and purely
schweitzpgi Apr 22, 2026
2359f47
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 22, 2026
27f50dc
Try bootstrapping LLVM with no g++
atgeller Apr 22, 2026
7f3cba7
Fix issues with bootstrapping
atgeller Apr 23, 2026
19aa956
Minor tweaks
atgeller Apr 23, 2026
067f6d3
adding missing }
sacpis Apr 23, 2026
2572aa9
Merge branch 'main' into llvm22_update
sacpis Apr 23, 2026
5d79400
enabling -Wno-unknown-warning-option flag for this subdirectory
sacpis Apr 23, 2026
ea5a0ca
Updating iqm client and trying to use LLVM 22.1 everywhere
sacpis Apr 23, 2026
b718459
fixing spelling
sacpis Apr 23, 2026
4150105
Undo added redundant verification. The operation does not require
schweitzpgi Apr 23, 2026
706c506
Advance Crow to fix warning
atgeller Apr 23, 2026
4ee531a
Use modifyOpInPlace() function.
schweitzpgi Apr 23, 2026
ea291b7
Remove `(void)` and add a meaningful diagnostic.
schweitzpgi Apr 23, 2026
fcbf40a
Remove changes to functionality.
schweitzpgi Apr 23, 2026
be387eb
Remove (void).
schweitzpgi Apr 23, 2026
6c7e5d2
Don't include tests to avoid missing binaries
atgeller Apr 23, 2026
2f19ca0
Audit files: make them conform to coding standard and use consistent …
schweitzpgi Apr 23, 2026
eea14b4
Remove another (void).
schweitzpgi Apr 23, 2026
40f36e2
formatting
sacpis Apr 23, 2026
867bbae
Make more files consistent with coding standards, etc.
schweitzpgi Apr 23, 2026
3db3e65
Build LLVM22 with LLVM22 from apt
atgeller Apr 24, 2026
caf264d
Merge branch 'main' into llvm22_update
sacpis Apr 24, 2026
40da485
formatting
sacpis Apr 24, 2026
b454ea8
fixing missing complex_literals in MagicBasisMatrix under LLVM 22
sacpis Apr 24, 2026
bb71ae6
using new syntax for create api
sacpis Apr 24, 2026
fc85d42
setting requests to 2.32.3
sacpis Apr 24, 2026
856d6c6
Merge branch 'llvm22_update' into oops-all-clang
atgeller Apr 24, 2026
0ab9bf4
Fixes to the codegen files to support opaque pointers by
schweitzpgi Apr 24, 2026
7fd01ce
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 24, 2026
b542cc2
Merge branch 'main' into llvm22_update
sacpis Apr 24, 2026
5cb5ca8
Overhaul toolchains
atgeller Apr 24, 2026
a03e672
Merge branch 'llvm22_update' into oops-all-clang
atgeller Apr 24, 2026
11928b9
updating FileCheck patterns for LLVM 22 DCE and canonicalization order
sacpis Apr 24, 2026
dbd0e5f
Reorder devdeps to have files available when used
atgeller Apr 24, 2026
e5c0d8d
fixing cudaq.control exp_pauli double-wrapping control veq under opaq…
sacpis Apr 24, 2026
289abd5
Merge branch 'main' into llvm22_update
sacpis Apr 24, 2026
2465064
fixing llvm to cudaq registry
sacpis Apr 24, 2026
592008b
changing remaining llvm::Registry usages to cudaq::Registry
sacpis Apr 24, 2026
3791d4d
sticking to llvm registry for DecompositionPatterns in order to avoid…
sacpis Apr 24, 2026
29f19d0
Don't link ZLIB
atgeller Apr 24, 2026
aeb2cfc
Initially compile LLVM once, not twice
atgeller Apr 25, 2026
a168d39
fixing tensornet overlap with state created from host vector
sacpis Apr 26, 2026
a12be3f
using type template SFINAE in operator headers
sacpis Apr 27, 2026
e04e723
removing redefinition of template argument
sacpis Apr 27, 2026
c243498
Merge branch 'main' into llvm22_update
sacpis Apr 27, 2026
9e1bcb0
setting SDKROOT
sacpis Apr 27, 2026
a77721f
Take another stab as fixing QIR API codegen. Undo some of the
schweitzpgi Apr 27, 2026
d398f8f
Merge branch 'llvm22_update' into oops-all-clang
atgeller Apr 27, 2026
2fe8ac6
using initial_arg_types to classify controls under opaque pointers
sacpis Apr 27, 2026
f8a6102
downgrading iqm-client to 28.0.0 as main
sacpis Apr 27, 2026
a417220
Simplify the changes.
schweitzpgi Apr 27, 2026
6bd9dfb
Merge branch 'main' into llvm22_update
sacpis Apr 27, 2026
fca8fae
using PyRemoteSimulator launchModule signature from PR #4388
sacpis Apr 27, 2026
232ef3e
Tyoe tweaks to quake.apply_noise.
schweitzpgi Apr 28, 2026
5b33107
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 28, 2026
5409375
audited fix for commit 9611192d82f25986d3dc43d6fd512a94d485d8c6
sacpis Apr 28, 2026
5321937
Merge branch 'llvm22_update' of https://github.com/NVIDIA/cuda-quantu…
sacpis Apr 28, 2026
01dba71
Prior changes were all necessary it seems. Try one more thing
atgeller Apr 28, 2026
4029a0b
Merge branch 'llvm22_update' into oops-all-clang
atgeller Apr 28, 2026
e8719bd
fixing operation.name in sample conditional check
sacpis Apr 28, 2026
ab90e4e
Merge branch 'main' into llvm22_update
sacpis Apr 28, 2026
5389942
fixing namespace and formatting
sacpis Apr 28, 2026
4973abe
removing the unused mlir/Bindings/Python/Attributes.td
sacpis Apr 28, 2026
976a8b9
The single gil_scoped_release inside pyObserveAsync only covered enqu…
sacpis Apr 28, 2026
6e5187f
changing phased_rx to prx for iqm
sacpis Apr 28, 2026
a45adc8
restoring nanobind-static target
sacpis Apr 28, 2026
8bc0db1
adding none to max_trajectories
sacpis Apr 28, 2026
8bc1b33
Separate getInitialType from QubitHelperConversionPattern.
schweitzpgi Apr 28, 2026
89c5856
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 28, 2026
8e452f0
adding the missing header
sacpis Apr 28, 2026
771c0e6
Add more guards for Stim to python tests.
schweitzpgi Apr 28, 2026
201cc1c
Add Stim + enable assertions guards to the target tests.
schweitzpgi Apr 28, 2026
c2ce6f7
Fix typos.
schweitzpgi Apr 28, 2026
e0dc2e2
adding constructor same as RemoteSimulatorQPU::RemoteSimulatorQPU as …
sacpis Apr 28, 2026
dc3f68d
Merge branch 'llvm22_update' of https://github.com/NVIDIA/cuda-quantu…
sacpis Apr 28, 2026
3dfe351
adding missing assertions_enabled import
sacpis Apr 28, 2026
0195658
Remove align from CHECK lines.
schweitzpgi Apr 28, 2026
95d6166
skipping OpenMP when compiler reject -fopenmp
sacpis Apr 28, 2026
6533d17
Merge branch 'main' into llvm22_update
schweitzpgi Apr 28, 2026
f862acd
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 28, 2026
7ad26a3
enforce coding conventions.
schweitzpgi Apr 28, 2026
379f15f
remove more bonus using namespace.
schweitzpgi Apr 28, 2026
6b78f97
passing LINKER_FLAGS via CMAKE_SHARED_LINKER_FLAGS and CMAKE_MODULE_L…
sacpis Apr 28, 2026
fe904f2
formatting
sacpis Apr 28, 2026
a4f145c
Remove more stacking open namespaces.
schweitzpgi Apr 28, 2026
9df5bc3
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 28, 2026
bf6f546
debugging pytest-xdist error
sacpis Apr 28, 2026
ebe1c30
Merge branch 'llvm22_update' of https://github.com/NVIDIA/cuda-quantu…
sacpis Apr 28, 2026
4e5fa4e
Merge branch 'main' into llvm22_update
sacpis Apr 28, 2026
04bbc83
adding -fno-gnu-unique on GCC to fix MLIR TypeID split under RTLD_LOCAL
sacpis Apr 28, 2026
0d95577
Merge branch 'llvm22_update' of https://github.com/NVIDIA/cuda-quantu…
sacpis Apr 28, 2026
c129281
dlopen RTLD_GLOBAL during cudaq imports to unify MLIR TypeIDs on GCC
sacpis Apr 28, 2026
15e624e
keeping lld for linux only
sacpis Apr 28, 2026
cdd91b0
passing -fno-gnu-unique to LLVM build to fix cross-DSO TypeID on GCC
sacpis Apr 28, 2026
16933f3
skipping -fno-gnu-unique on Darwin
sacpis Apr 29, 2026
a7d3e0c
gating -fno-gnu-unique on GCC
sacpis Apr 29, 2026
1e03061
prepend CAPI to libcudaq-mlir-runtime link to dedupe LLVM cl::opt
sacpis Apr 29, 2026
2ef336d
debugging validate wheel job in CI
sacpis Apr 29, 2026
febe12c
gating macOS cudaq-mlir-runtime
sacpis Apr 29, 2026
2253b7c
adding -undefined,dynamic_lookup for macOS
sacpis Apr 29, 2026
789a3b5
adding CAPI's build directory as a BUILD_RPATH on cudaq-mlir-runtime
sacpis Apr 29, 2026
fbb5a2e
[llvm22] Fixes the cross-DSO TypeID split (#4411)
sacpis Apr 29, 2026
98fa79d
Try new bootstrapping script/image
atgeller Apr 29, 2026
fd488c4
Apt may fail if libraries already purged
atgeller Apr 29, 2026
1a7947e
More minor tweaks: some flang flag changes, don't mask failures
atgeller Apr 30, 2026
6c1d27e
Merge branch 'llvm22_update' into oops-all-clang
atgeller Apr 30, 2026
e18ab88
Ignore no_discard value in test
atgeller Apr 30, 2026
18f71ae
Just add libatomic for now
atgeller Apr 30, 2026
9cfd2e4
Try one more thing to make sure unwind is used
atgeller Apr 30, 2026
860054c
Merge branch 'main' into llvm22_update
schweitzpgi Apr 30, 2026
f42828f
cleaning up py_state.cpp
sacpis Apr 30, 2026
ab9697b
Just go with libstdc++
atgeller Apr 30, 2026
129300a
more cleanup
sacpis Apr 30, 2026
331eabb
Merge branch 'main' into llvm22_update
sacpis Apr 30, 2026
9b28356
Merge branch 'main' into llvm22_update
schweitzpgi Apr 30, 2026
6370fbd
Merge branch 'foo' into llvm22_update
schweitzpgi Apr 30, 2026
ab998f7
Merge branch 'llvm22_update' into oops-all-clang
atgeller Apr 30, 2026
81e8b57
Swap out devdeps image
atgeller Apr 30, 2026
882d056
Cleanup
atgeller Apr 30, 2026
0f3c94e
Various cleanup
atgeller Apr 30, 2026
32532b5
Merge branch 'main' into llvm22_update
sacpis May 1, 2026
43cbdd9
Remove duplicate QubitResetBeforeReuse pass definition
sacpis May 1, 2026
43841bf
Fix a few CI issues
atgeller May 1, 2026
8ed88b9
Fix documentation warnings
atgeller May 1, 2026
51f1dd8
Fixing macOS build & test failures (#4414)
sacpis May 1, 2026
91eaf19
Merge branch 'llvm22_update' into oops-all-clang
atgeller May 1, 2026
ff55261
padding launch-wrapper message buffer to 8-byte multiple on macOS
sacpis May 1, 2026
c62c7e5
putting a guard for Apple only changes
sacpis May 1, 2026
395628f
Merge branch 'llvm22_update' into oops-all-clang
atgeller May 1, 2026
3712ca7
Suppress gtest warning for all clang compilers
atgeller May 1, 2026
3de461c
Suppress curl warning from clang22
atgeller May 1, 2026
50ddf38
updating cc.alloca size operand match for macOS launch-wrapper padding
sacpis May 1, 2026
2d6f715
A few more tweaks
atgeller May 1, 2026
a2499c4
Merge branch 'main' into llvm22_update
atgeller May 1, 2026
1602fbb
Figure out the exact incantation to please every compiler
atgeller May 1, 2026
60b92c2
Formatting (hopefully)
atgeller May 1, 2026
cee15ac
Merge branch 'llvm22_update' into oops-all-clang
atgeller May 1, 2026
153b3f9
Update build matrix
atgeller May 1, 2026
5ce79e8
Formatting
atgeller May 1, 2026
b946486
A few more toolchain tweaks
atgeller May 1, 2026
85feb79
Update gcc version for realtime
atgeller May 1, 2026
b6b4a4a
rounding byte-buffer alloca size up to 8 bytes in cc->llvm lowering o…
sacpis May 1, 2026
f1133ac
Merge remote-tracking branch 'upstream/llvm22_update' into llvm22_update
sacpis May 1, 2026
c1a5e9b
using std::int64_t for round-up mask cast
sacpis May 1, 2026
346b5ce
Merge branch 'llvm22_update' into oops-all-clang
atgeller May 1, 2026
a4bd034
Suppress another warning
atgeller May 2, 2026
e27c5a8
Merge branch 'main' into llvm22_update
sacpis May 3, 2026
4e6ef69
Merge branch 'llvm22_update' into oops-all-clang
sacpis May 3, 2026
32ce385
Merge branch 'main' into llvm22_update
sacpis May 4, 2026
0d667c8
fixing deprecated API calls
sacpis May 4, 2026
76371e2
readding the missing using namespace
sacpis May 4, 2026
01771d7
Merge branch 'llvm22_update' into oops-all-clang
atgeller May 4, 2026
318ac56
Fix typo in required checks
atgeller May 4, 2026
323bd59
Try again to suppress false positive warning
atgeller May 4, 2026
1ec6acd
Update per-pr workflow
atgeller May 4, 2026
a6765b4
Add pragmas to disable false positive warning
atgeller May 4, 2026
611da62
Fix invalid acccess in test case
atgeller May 4, 2026
1bd9f65
Merge branch 'main' into llvm22_update
atgeller May 4, 2026
74573ed
Merge branch 'llvm22_update' into oops-all-clang
atgeller May 4, 2026
377fabc
Full required checks
atgeller May 4, 2026
2406356
Merge pull request #4370 from atgeller/oops-all-clang
atgeller May 4, 2026
287987e
Remove changelog
atgeller May 4, 2026
fb1a020
fixing using namespace
sacpis May 4, 2026
b72fec8
Merge branch 'main' into llvm22_update
sacpis May 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
51 changes: 39 additions & 12 deletions .github/required-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
# An empty list (or missing key) for an event type disables enforcement
# for that event — useful for bootstrapping.
merge_group: &full_matrix
- Build and test (arm64, gcc11, openmpi) / Dev environment (Debug)
- Build and test (arm64, gcc11, openmpi) / Dev environment (Python)
- Build and test (arm64, gcc12, openmpi) / Dev environment (Debug)
- Build and test (arm64, gcc12, openmpi) / Dev environment (Python)
- Build and test (amd64, llvm, openmpi) / Dev environment (Debug)
- Build and test (amd64, llvm, openmpi) / Dev environment (Python)
- Build and test (arm64, llvm, openmpi) / Dev environment (Debug)
- Build and test (arm64, llvm, openmpi) / Dev environment (Python)
- Create CUDA Quantum installer (amd64, 12.6) / Build CUDA Quantum assets
- Create CUDA Quantum installer (amd64, 12.6) / Minimal OpenMPI installation
- Create CUDA Quantum installer (amd64, 12.6) / Validate installer (debian:12)
Expand Down Expand Up @@ -44,13 +44,40 @@ merge_group: &full_matrix
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10, --user)
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10)
push:
- Build and test (amd64, clang16, openmpi) / Dev environment (Debug)
- Build and test (amd64, clang16, openmpi) / Dev environment (Python)
- Build and test (amd64, gcc11, openmpi) / Dev environment (Debug)
- Build and test (amd64, gcc11, openmpi) / Dev environment (Python)
- Build and test (amd64, gcc12, openmpi) / Dev environment (Debug)
- Build and test (amd64, gcc12, openmpi) / Dev environment (Python)
- Build and test (arm64, clang16, openmpi) / Dev environment (Debug)
- Build and test (arm64, clang16, openmpi) / Dev environment (Python)
- Build and test (amd64, llvm, openmpi) / Dev environment (Debug)
- Build and test (amd64, llvm, openmpi) / Dev environment (Python)
- Build and test (arm64, llvm, openmpi) / Dev environment (Debug)
- Build and test (arm64, llvm, openmpi) / Dev environment (Python)
- Create CUDA Quantum installer (amd64, 12.6) / Build CUDA Quantum assets
- Create CUDA Quantum installer (amd64, 12.6) / Minimal OpenMPI installation
- Create CUDA Quantum installer (amd64, 12.6) / Validate installer (debian:12)
- Create CUDA Quantum installer (amd64, 12.6) / Validate installer (fedora:42)
- Create CUDA Quantum installer (amd64, 12.6) / Validate installer (opensuse/leap:15.5)
- Create CUDA Quantum installer (amd64, 12.6) / Validate installer (redhat/ubi9:9.6)
- Create CUDA Quantum installer (amd64, 12.6) / Validate installer (ubuntu:22.04)
- Create CUDA Quantum installer (arm64, 12.6) / Build CUDA Quantum assets
- Create CUDA Quantum installer (arm64, 12.6) / Minimal OpenMPI installation
- Create CUDA Quantum installer (arm64, 12.6) / Validate installer (redhat/ubi9:9.6)
- Create CUDA Quantum installer (arm64, 12.6) / Validate installer (ubuntu:22.04)
- Create Docker images (amd64) / Documentation
- Create Docker images (amd64) / Validation
- Create Docker images (arm64) / Validation
- Create Python metapackages / Build Python metapackages
- Create Python metapackages / Test Python metapackages (3.11)
- Create Python metapackages / Test Python metapackages (3.13)
- Create Python metapackages / Test Python metapackages (12.6, 3.11)
- Create Python metapackages / Test Python metapackages (12.6, 3.13)
- Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (debian:12, --user)
- Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (debian:12)
- Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (fedora:42, --user)
- Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (fedora:42)
- Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10, --user)
- Create Python wheels (amd64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10)
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (debian:12, --user)
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (debian:12)
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (fedora:42, --user)
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (fedora:42)
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10, --user)
- Create Python wheels (arm64, 3.11, 12.6) / Validate wheel (redhat/ubi8:8.10)
workflow_dispatch: *full_matrix
schedule: *full_matrix
2 changes: 1 addition & 1 deletion .github/workflows/build_package_sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
else
# cudaqx: devcontainer base, cudaqx target
cu_tag=$(echo "${{ matrix.cuda }}" | tr -d .)
echo "base_image=ghcr.io/nvidia/cuda-quantum-devcontainer:amd64-cu${{ matrix.cuda }}-gcc11-main" | tee -a $GITHUB_OUTPUT
echo "base_image=ghcr.io/nvidia/cuda-quantum-devcontainer:amd64-cu${{ matrix.cuda }}-llvm-main" | tee -a $GITHUB_OUTPUT
echo "target_image=ghcr.io/nvidia/cudaqx:cu${cuda_major}-latest" | tee -a $GITHUB_OUTPUT
fi

Expand Down
41 changes: 17 additions & 24 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
cache_base: ${{ steps.pr_info.outputs.pr_base }}
llvm_commit: ${{ steps.repo_info.outputs.llvm_commit }}
pybind11_commit: ${{ steps.repo_info.outputs.pybind11_commit }}
nanobind_commit: ${{ steps.repo_info.outputs.nanobind_commit }}
platform_config: ${{ steps.config.outputs.platforms }}
build_test_matrix: ${{ steps.config.outputs.build_test_matrix }}

Expand All @@ -65,19 +66,13 @@ jobs:
# (expensive, redundant with amd64/gcc). merge_group/dispatch run all.
if [ "${{ github.event_name }}" = "push" ]; then
build_test_matrix='{"include":[
{"platform":"amd64","toolchain":"clang16","mpi":"openmpi"},
{"platform":"amd64","toolchain":"gcc11","mpi":"openmpi"},
{"platform":"amd64","toolchain":"gcc12","mpi":"openmpi"},
{"platform":"arm64","toolchain":"clang16","mpi":"openmpi"}
{"platform":"amd64","toolchain":"llvm","mpi":"openmpi"},
{"platform":"arm64","toolchain":"llvm","mpi":"openmpi"}
]}'
else
build_test_matrix='{"include":[
{"platform":"amd64","toolchain":"clang16","mpi":"openmpi"},
{"platform":"amd64","toolchain":"gcc11","mpi":"openmpi"},
{"platform":"amd64","toolchain":"gcc12","mpi":"openmpi"},
{"platform":"arm64","toolchain":"clang16","mpi":"openmpi"},
{"platform":"arm64","toolchain":"gcc11","mpi":"openmpi"},
{"platform":"arm64","toolchain":"gcc12","mpi":"openmpi"}
{"platform":"amd64","toolchain":"llvm","mpi":"openmpi"},
{"platform":"arm64","toolchain":"llvm","mpi":"openmpi"},
]}'
fi
echo "build_test_matrix=$(echo "$build_test_matrix" | jq -c .)" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -114,14 +109,14 @@ jobs:
run: |
echo "llvm_commit=$(git rev-parse @:./tpls/llvm)" >> $GITHUB_OUTPUT
echo "pybind11_commit=$(git rev-parse @:./tpls/pybind11)" >> $GITHUB_OUTPUT
echo "nanobind_commit=$(git rev-parse @:./tpls/nanobind)" >> $GITHUB_OUTPUT

devdeps:
name: Load dependencies
needs: metadata
strategy:
matrix:
platform: [amd64, arm64]
toolchain: [clang16, gcc11, gcc12]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand All @@ -130,14 +125,12 @@ jobs:
with:
platforms: linux/${{ matrix.platform }}
dockerfile: build/devdeps.Dockerfile
build_config_id: ${{ matrix.toolchain }}
build_args: |
toolchain=${{ matrix.toolchain }}
build_config_id: llvm
registry_cache_from: ${{ inputs.cache_base || needs.metadata.outputs.cache_base }}
checkout_submodules: true
environment: ghcr-ci
# needed only for the cloudposse GitHub action
matrix_key: ${{ matrix.platform }}-${{ matrix.toolchain }}
matrix_key: ${{ matrix.platform }}-llvm
matrix_step_name: dev_environment_devdeps

wheeldeps:
Expand All @@ -155,14 +148,15 @@ jobs:
with:
platforms: linux/${{ matrix.platform }}
dockerfile: build/devdeps.manylinux.Dockerfile
build_config_id: cu${{ matrix.cuda_version }}-gcc11
build_config_id: cu${{ matrix.cuda_version }}-gcc12
build_args: |
base_image=ghcr.io/nvidia/pypa/manylinux_2_28${{ (matrix.platform == 'arm64' && '_aarch64') || (matrix.platform == 'amd64' && '_x86_64') || '' }}:latest
cuda_version=${{ matrix.cuda_version }}
toolchain=gcc11
toolchain=gcc12
distro=rhel8
llvm_commit=${{ needs.metadata.outputs.llvm_commit }}
pybind11_commit=${{ needs.metadata.outputs.pybind11_commit }}
nanobind_commit=${{ needs.metadata.outputs.nanobind_commit }}
registry_cache_from: ${{ inputs.cache_base || needs.metadata.outputs.cache_base }}
environment: ghcr-ci
# needed only for the cloudposse GitHub action
Expand Down Expand Up @@ -259,16 +253,15 @@ jobs:
strategy:
matrix:
platform: [amd64]
toolchain: [clang16]
fail-fast: false
uses: ./.github/workflows/generate_cc.yml
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
platform: linux/${{ matrix.platform }}
devdeps_image: ${{ fromJson(needs.config_devdeps.outputs.json).image_hash[format('{0}-{1}', matrix.platform, matrix.toolchain)] }}
devdeps_cache: ${{ fromJson(needs.config_devdeps.outputs.json).cache_key[format('{0}-{1}', matrix.platform, matrix.toolchain)] }}
devdeps_archive: ${{ fromJson(needs.config_devdeps.outputs.json).tar_archive[format('{0}-{1}', matrix.platform, matrix.toolchain)] }}
devdeps_image: ${{ fromJson(needs.config_devdeps.outputs.json).image_hash[format('{0}-llvm', matrix.platform)] }}
devdeps_cache: ${{ fromJson(needs.config_devdeps.outputs.json).cache_key[format('{0}-llvm', matrix.platform)] }}
devdeps_archive: ${{ fromJson(needs.config_devdeps.outputs.json).tar_archive[format('{0}-llvm', matrix.platform)] }}
export_environment: ${{ github.event_name == 'workflow_dispatch' && inputs.export_environment }}

# Docker images are packaging, not correctness — only built on merge_group/dispatch.
Expand All @@ -286,9 +279,9 @@ jobs:
DOCKERHUB_READONLY_TOKEN: ${{ secrets.DOCKERHUB_READONLY_TOKEN }}
with:
platforms: linux/${{ matrix.platform }}
devdeps_image: ${{ fromJson(needs.config_devdeps.outputs.json).image_hash[format('{0}-gcc11', matrix.platform)] }}
devdeps_cache: ${{ fromJson(needs.config_devdeps.outputs.json).cache_key[format('{0}-gcc11', matrix.platform)] }}
devdeps_archive: ${{ fromJson(needs.config_devdeps.outputs.json).tar_archive[format('{0}-gcc11', matrix.platform)] }}
devdeps_image: ${{ fromJson(needs.config_devdeps.outputs.json).image_hash[format('{0}-llvm', matrix.platform)] }}
devdeps_cache: ${{ fromJson(needs.config_devdeps.outputs.json).cache_key[format('{0}-llvm', matrix.platform)] }}
devdeps_archive: ${{ fromJson(needs.config_devdeps.outputs.json).tar_archive[format('{0}-llvm', matrix.platform)] }}
environment: ghcr-ci

python_wheels:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/clean_caches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,14 +125,14 @@ jobs:
- name: Delete build caches for MPI asset (ARM64)
uses: actions/delete-package-versions@v5
with:
package-name: buildcache-cuda-quantum-assets-openmpi-gcc11-arm64
package-name: buildcache-cuda-quantum-assets-openmpi-llvm-arm64
package-type: 'container'
min-versions-to-keep: 1 # the used action does not support 0 here

- name: Delete build caches for MPI asset (AMD64)
uses: actions/delete-package-versions@v5
with:
package-name: buildcache-cuda-quantum-assets-openmpi-gcc11-amd64
package-name: buildcache-cuda-quantum-assets-openmpi-llvm-amd64
package-type: 'container'
min-versions-to-keep: 1 # the used action does not support 0 here

Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/create_cache_command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ jobs:
outputs:
llvm_commit: ${{ steps.repo_info.outputs.llvm_commit }}
pybind11_commit: ${{ steps.repo_info.outputs.pybind11_commit }}
nanobind_commit: ${{ steps.repo_info.outputs.nanobind_commit }}
platform_config: ${{ steps.config.outputs.platforms }}

steps:
Expand All @@ -80,14 +81,14 @@ jobs:
run: |
echo "llvm_commit=$(git rev-parse @:./tpls/llvm)" >> $GITHUB_OUTPUT
echo "pybind11_commit=$(git rev-parse @:./tpls/pybind11)" >> $GITHUB_OUTPUT
echo "nanobind_commit=$(git rev-parse @:./tpls/nanobind)" >> $GITHUB_OUTPUT

devdeps_caches:
name: Cache dev dependencies
needs: [pr_info, metadata]
strategy:
matrix:
platform: [amd64, arm64]
toolchain: [clang16, gcc11, gcc12]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand All @@ -96,15 +97,13 @@ jobs:
with:
platforms: linux/${{ matrix.platform }}
dockerfile: build/devdeps.Dockerfile
build_config_id: ${{ matrix.toolchain }}
build_args: |
toolchain=${{ matrix.toolchain }}
build_config_id: llvm
create_local_cache: true
registry_cache_from: ${{ needs.pr_info.outputs.target_branch }}
pull_request_number: ${{ needs.pr_info.outputs.pull_request_number }}
checkout_submodules: true
# needed only for the cloudposse GitHub action
matrix_key: ${{ matrix.platform }}-${{ matrix.toolchain }}
matrix_key: ${{ matrix.platform }}-llvm

wheeldeps_caches:
name: Cache wheel dependencies
Expand All @@ -121,14 +120,15 @@ jobs:
with:
platforms: linux/${{ matrix.platform }}
dockerfile: build/devdeps.manylinux.Dockerfile
build_config_id: cu${{ matrix.cuda_version }}-gcc11
build_config_id: cu${{ matrix.cuda_version }}-gcc12
build_args: |
base_image=ghcr.io/nvidia/pypa/manylinux_2_28${{ (matrix.platform == 'arm64' && '_aarch64') || (matrix.platform == 'amd64' && '_x86_64') || '' }}:latest
cuda_version=${{ matrix.cuda_version }}
toolchain=gcc11
toolchain=gcc12
distro=rhel8
llvm_commit=${{ needs.metadata.outputs.llvm_commit }}
pybind11_commit=${{ needs.metadata.outputs.pybind11_commit }}
nanobind_commit=${{ needs.metadata.outputs.nanobind_commit }}
create_local_cache: true
registry_cache_from: ${{ needs.pr_info.outputs.target_branch }}
pull_request_number: ${{ needs.pr_info.outputs.pull_request_number }}
Expand Down
15 changes: 9 additions & 6 deletions .github/workflows/deployments.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ jobs:
pull_request_commit: ${{ steps.pr_info.outputs.merge_commit }}
llvm_commit: ${{ steps.build_config.outputs.llvm_commit }}
pybind11_commit: ${{ steps.build_config.outputs.pybind11_commit }}
nanobind_commit: ${{ steps.build_config.outputs.nanobind_commit }}
cache_base: ${{ steps.build_info.outputs.cache_base }}
cache_target: ${{ steps.build_info.outputs.cache_target }}
multi_platform: ${{ steps.build_info.outputs.multi_platform }}
Expand Down Expand Up @@ -188,6 +189,7 @@ jobs:
run: |
echo "llvm_commit=$(git rev-parse @:./tpls/llvm)" >> $GITHUB_OUTPUT
echo "pybind11_commit=$(git rev-parse @:./tpls/pybind11)" >> $GITHUB_OUTPUT
echo "nanobind_commit=$(git rev-parse @:./tpls/nanobind)" >> $GITHUB_OUTPUT

if ${{ github.event_name != 'workflow_run' || steps.pr_info.outputs.pr_number != '' }}; then
echo "build_dependencies=true" >> $GITHUB_OUTPUT
Expand All @@ -203,7 +205,7 @@ jobs:
strategy:
matrix:
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
toolchain: [clang16, gcc11, gcc12]
toolchain: [llvm]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down Expand Up @@ -242,14 +244,15 @@ jobs:
with:
platforms: ${{ fromJson(needs.metadata.outputs.platforms)[format('{0}', matrix.platform)].docker_flag }}
dockerfile: build/devdeps.manylinux.Dockerfile
build_config_id: cu${{ matrix.cuda_version }}-gcc11
build_config_id: cu${{ matrix.cuda_version }}-gcc12
build_args: |
base_image=ghcr.io/nvidia/pypa/manylinux_2_28${{ (matrix.platform == 'arm64' && '_aarch64') || (matrix.platform == 'amd64' && '_x86_64') || '' }}:latest
cuda_version=${{ matrix.cuda_version }}
toolchain=gcc11
toolchain=gcc12
distro=rhel8
llvm_commit=${{ needs.metadata.outputs.llvm_commit }}
pybind11_commit=${{ needs.metadata.outputs.pybind11_commit }}
nanobind_commit=${{ needs.metadata.outputs.nanobind_commit }}
registry_cache_from: ${{ needs.metadata.outputs.cache_base }}
update_registry_cache: ${{ needs.metadata.outputs.cache_target }}
pull_request_number: ${{ needs.metadata.outputs.pull_request_number }}
Expand Down Expand Up @@ -368,7 +371,7 @@ jobs:
strategy:
matrix:
platform: [amd64]
toolchain: [clang16]
toolchain: [llvm]
fail-fast: false
uses: ./.github/workflows/generate_cc.yml
secrets:
Expand All @@ -393,10 +396,10 @@ jobs:
with:
platforms: ${{ fromJson(needs.metadata.outputs.platforms)[format('{0}', matrix.platform)].docker_flag }}
dockerfile: build/devcontainer.Dockerfile
build_config_id: cu${{ matrix.cuda_version }}-gcc11
build_config_id: cu${{ matrix.cuda_version }}-llvm
build_args: |
cuda_version=${{ matrix.cuda_version }}
base_image=${{ fromJson(needs.config.outputs.json).image_hash[format('{0}-gcc11', matrix.platform)] }}
base_image=${{ fromJson(needs.config.outputs.json).image_hash[format('{0}-llvm', matrix.platform)] }}
ompidev_image=${{ fromJson(needs.config.outputs.json).image_hash[format('{0}-cu{1}-ompi', matrix.platform, matrix.cuda_version)] }}
registry_cache_from: ${{ needs.metadata.outputs.cache_base }}
update_registry_cache: ${{ needs.metadata.outputs.cache_target }}
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/dev_environment_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ jobs:
scripts/build_llvm.sh \
scripts/set_env_defaults.sh \
.github/workflows/dev_environment_macos.yml \
tpls/customizations/llvm/*.diff \
| sha256sum | cut -c1-8)
echo "scripts_hash=$scripts_hash" >> $GITHUB_OUTPUT

Expand Down Expand Up @@ -181,6 +182,9 @@ jobs:
# cache already has MLIR_ENABLE_BINDINGS_PYTHON=ON. Downstream
# wheel jobs only change Python3_EXECUTABLE, which keeps ninja's
# incremental rebuild scoped to the binding targets.
# Initialize nanobind submodule which are needed for MLIR Python bindings
git submodule update --init --recursive tpls/nanobind

source scripts/set_env_defaults.sh
export LLVM_PROJECTS='clang;lld;mlir;openmp;python-bindings'

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/test_in_devenv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ jobs:
echo "::error file=test_in_devenv.yml:: Pip install of CUDA Quantum failed with status $pyinstall_status."
exit 1
fi

python -m pip install pytest pytest-xdist
python -m pytest -v --durations=0 -n auto python/tests/ \
--ignore python/tests/backends \
Expand Down
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,4 @@
[submodule "tpls/nanobind"]
path = tpls/nanobind
url = https://github.com/wjakob/nanobind.git
ignore = dirty
1 change: 0 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ repos:
- id: markdownlint
name: Markdown linting
files: '\.md$'
exclude: '^tpls/'
args: ['--config', '.github/pre-commit/md_lint_config.yml']

# Standard quality checks
Expand Down
5 changes: 4 additions & 1 deletion Building.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@ CUDA-Q can be built on macOS for development purposes. Note that:

- **ARM64 only**: Only Apple silicon Macs are supported; Intel Macs are not supported
- **CPU-only**: No CUDA/GPU support is available on macOS
- **Apple Clang**: Uses the system compiler (no need to install GCC or LLVM separately)
- **LLVM 22.1 toolchain**: CUDA-Q is compiled with the `Clang/LLD/libomp` built
by `scripts/build_llvm.sh` — the same toolchain used on Linux. Xcode Command
Line Tools are still required for the macOS `SDK/sysroot` (headers, frameworks,
`xcrun`), but Apple Clang is no longer used to compile CUDA-Q itself.
- **Prerequisites required**: You must use `-p` to install LLVM and other dependencies

Before building, complete the macOS setup steps in
Expand Down
Loading
Loading