[Feature] Make QDP CUDA kernel build targets configurable and future-compatible#1283
[Feature] Make QDP CUDA kernel build targets configurable and future-compatible#1283viiccwen wants to merge 4 commits intoapache:mainfrom
Conversation
19080c0 to
d9b32ce
Compare
|
cc @ryankert01, @rich7420, need testing on ur local machine. |
d9b32ce to
85c801a
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates qdp-kernels’ CUDA build script to make nvcc -gencode architecture targeting configurable and to better accommodate newer NVIDIA GPU architectures without requiring source edits.
Changes:
- Introduces an architecture-target model for
nvcc -gencodeflags (SM and optional PTX targets). - Adds
QDP_CUDA_ARCH_LISTto explicitly override the CUDA target set at build time. - Attempts to derive default targets from
nvcc’s supported architecture lists, with a legacy fallback when listing flags are unavailable.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
78b1590 to
4767bd0
Compare
|
@ryankert01 sounds like |
|
sorry @viiccwen, I thought we have a section say we only support some Nvidia gpus (30, 40), but we turns out don't have this section. So, I think it's not needed. Also, just a heads up, the 30s gpu server that I have access to is currently compromised. So I might not be able to test it anywhere soon. |
|
Agree on writing a section on the current supporting GPUs(Including Nvidia and AMD). |
|
Goti it, I think a backend-level section is more accurate than listing specific GPU models. For NVIDIA, QDP does not maintain a fixed supported-SKU whitelist. The actual CUDA targets generated by the build depend on the installed CUDA toolkit and the local For AMD, support similarly depends on the local ROCm environment and the Triton backend used by QDP, rather than a hardcoded model list in the repo. Because of that, I plan to document this as a “Supported GPU Backends” section instead of list a set of supported GPU models. |
57d0197 to
17f2759
Compare
Related Issues
Closes #1282
Changes
Why
QDP's CUDA kernel build currently relies on a small hardcoded set of
nvcc -gencodetargets. That makes it awkward to keep existing GPUs working while also supporting newer architectures such as Blackwell, and it forces follow-up source edits whenever the desired target mix changes.This change makes architecture targeting configurable and toolchain-aware so one build configuration can remain usable across current and newer NVIDIA GPU generations without changing QDP runtime behavior.
How
nvccsupported architecture listsQDP_CUDA_ARCH_LISTas an explicit override for local builds, CI, and packaging workflowsnvccdoes not expose architecture listing flagsChecklist