Repository navigation
Conversation
The CUTLASS 4.7.0 compiler emits valid cubins for sm_103a, and every tcgen05/TMEM form cute-rs uses is listed for sm_103a in the intrinsic catalog. Add sm_103a to the full-CuTe and primitives profile gates, let the four sm_100a examples and their CuTeDSL comparison scripts accept compute capability 10.3, compile the GEMM reference for the attached device's arch, and record the actual target in the FMHA/MLA reports. Docs: support matrix, preview README and build guide now list three targets. The two overview SVGs still show two targets; their captions say so. Tested on B300 (cc 10.3, CUDA 13.3) with --arch sm_103a: elementwise bit-exact; fp16_gemm_256x352_cute both-pass vs the CuTeDSL oracle; fp16_gemm_256x352_ctm CPU verification pass; FMHA prefill and MLA decode (opt level 2) check-only and timed runs pass against CuTeDSL. Cover sm_103a in the full-CuTe and primitives profile tests (and keep plain sm_103 rejected). The MLA comparison now records the device's target, so its test stub provides torch.cuda.get_device_capability. Signed-off-by: 0z5a <dezhen.lu@student.uni-tuebingen.de>
This branch has not been deployed
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
Add
sm_103ato the cute-rs profile gates and let the sm_100a-class examples run on cc 10.3.Refs #1631
Changes
profile.rs/primitives.rs: acceptsm_100a | sm_103a | sm_120a; tests cover acceptance ofsm_103aand rejection ofsm_103.fp16_gemm_256x352_cute,fp16_gemm_256x352_ctm,sm100_fmha_prefill_cute,sm100_mla_decode_fp16_cute): Rust and Python capability checks accept(10, 0)and(10, 3). The GEMM reference compiles forsm_103awhen an SM103 device is attached; offline compilation keepssm_100a. The FMHA/MLA reports record the real target instead of a fixedsm_100a. The MLA test stub gainstorch.cuda.get_device_capability.tcgen05operations needsm_100aorsm_103a. The two overview SVGs still show two targets, and their captions say so. I can redraw them if you prefer.ctm-rstcgen05 / TMEM module comments.Testing
Environment: B300 (cc 10.3), driver 610.57.04, CUDA 13.3, CUTLASS 4.7.0 compiler (SHA-pinned toolchain), CuTeDSL 4.7.0 + torch 2.14.1 for the comparisons, Linux x86_64,
CUDA_OXIDE_DEVICE_BACKEND=cutlass-mlir,--arch sm_103a.Timings are "complete invocation" medians as the scripts define them. For the small shapes they include Python host submission on the CuTeDSL side, so they are not a kernel-only comparison.
cargo test -p cuda-oxide-mlir-export: the full suite passes with the new tests (lib 86/86 and all integration binaries); after a rustfmt-only change,profile_lib tests 4/4 andprimitives_profile7/7 again;cargo fmt --all --checkclean.public_reference.test_*andtest_reference, FMHAtest_compare, MLAtest_compare/test_contract): all OK.just -f cuda-oxide/Justfile checkpasses (GH200 aarch64, with three separate test-flake fixes applied andRUST_TEST_THREADS=1)cargo oxide run <example>passes on B300Checklist
git commit -s)