Require CUDA 12.9 for SM121 default architectures - #3410
Open
davidkny22 wants to merge 1 commit into
Open
Conversation
CUDA 12.8 does not advertise SM121 compiler targets, but CUTLASS currently adds 121 and 121a to its supported and default architecture list at that version. CUDA 12.9 advertises SM121. Move those two tokens into the existing CUDA 12.9 block beside 121f so each fresh default list matches its active compiler. Signed-off-by: David Kogan <davidkny22@gmail.com>
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.
Summary
CUTLASS currently includes
121and121ain its default architecture list for CUDA 12.8,but NVCC 12.8.61 advertises neither
compute_121norsm_121. NVCC 12.9.41 advertises both.This empirically locates the SM121 compile-support boundary at CUDA 12.9.
This PR moves only those two entries to the existing CUDA 12.9 block beside
121f.Mechanism
CUTLASS_NVCC_ARCHSdefaults toCUTLASS_NVCC_ARCHS_SUPPORTED, and the enabled entries aretranslated to CMake
CUDA_ARCHITECTURES. The current 12.8 block therefore makes a fresh defaultbuild request two targets that its active compiler does not advertise. CUTLASS's architecture
header already requires CUDA 12.9 for
CUTLASS_ARCH_MMA_SM121_SUPPORTEDandCUTLASS_ARCH_MMA_SM121A_ENABLED; this change aligns the default CMake policy with that gate.Reproducer
For each installed toolkit, I ran a fresh native CMake configure and compared its default
CUTLASS_NVCC_ARCHSvalue with that compiler's ownnvcc --list-gpu-archoutput:Every non-moved default remains in the same order and maps to a target advertised by the
matching compiler. A CUDA 12.8
CUTLASS_NVCC_ARCHS=121request still configures, remains cachedas
121, and is warned as unsupported.Testing done
Fresh configure-only checks completed on Windows build 26200 with CMake 4.3.4, Ninja 1.13.0,
MSVC 19.44, and CUDA 12.8.61/12.9.41/13.0.48. The configures used
--allow-unsupported-compiler. The host GPU was an RTX 4070 Laptop GPU (SM89), driver 595.79;no GPU execution was involved. Reconfiguring the pre-change CUDA 12.8 cache retained its old
list and warned about
121;121a.CUTLASS has no in-tree test harness for the root version-to-default-architecture policy. I did
not add a parser or new test framework for this two-token policy change.
Limitations
cached
CUTLASS_NVCC_ARCHSvalue until that cache is cleared or updated.121override was checked, but explicit overrides were not testedexhaustively.
toolkit builds.
cc @Junkai-Wu