Repository navigation
CUTLASS 4.8.0
#3657
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
CuTe DSL
New features
Initial Rubin support to accelerate dense GEMMs. The following features are available:
CuTe DSL extensions has several new features:
cute_extTMA load, store, multicast, and reduce-store operations. Explicit CTA-V maps remain supported as overrides.cute_extGEMM mainloop and TMA epilogue helpers.This release includes an opt-in preview of the CuTe DSL extensions (
cute_ext) compiler pipeline for ordinary Cute DSL kernels. This pipeline lets user mixcute_extAPIs directly into@cute.jitand@cute.kernelcode and is required for kernels that mix the two API surfaces. You may test this feature with the following:CUTE_DSL_USE_EXTENSION_COMPILER=1 python your_program.pyThe pipeline is expected to preserve program behavior and performance, but generated PTX/SASS may differ. Note that this pipeline will become the default in the future, no earlier than 4.10.
Added examples for better control over Primitives' compiler warnings/errors introduced in 4.7.0. See the
CuTeDSL/experimental/compiler_diagnostic/directory.IKET Profiler Tool
iket_enable_profiling=True). Task execution will generate an IKET range and individual pipeline stages in a schedule may generate separate ranges (iket_profiling_stages).A number of new examples were added in this release:
CuTe DSL now supports x86_64 Windows
CuTe DSL AoT now supports new host target: QNX8.0
Notebooks are restructured under examples/python/CuTeDSL/cute/notebooks and new notebooks for primitives will be added under examples/python/CuTeDSL/notebooks
Numpy is now not a default dependency
Bug fixes and improvements:
nvidia-cuda-nvdisasmis now an optional dependency ofnvidia-cutlass-dslvia the optional[sass]extra. SASS dumping (CUTE_DSL_KEEP=sass/ KeepSASS) now resolvesnvdisasmfrom the bundled wheel (recommended since its version matches the DSL toolchain) or from a local CUDA Toolkit (CUDA_HOME/CUDA_PATH). A locally-providednvdisasmmust come from a CUDA Toolkit at least as new as the toolchain that produced the CUBIN. Installations that never dump SASS are unaffected.cutlass.jax.cutlass_callcute.autovec_copyemitted per-element instead ofvectorized instructions for tensors with a dynamic stride (!3463)
(!3444)
link-librariescompile-option order so it is stable across processes(!3564)
IndexErroron stagedbool()with no arguments(!3506)
cute.compileon@cute.kernelwith a user error instead of an ICE(!3429)
(!3413)
This release has been tested against the following packages:
CUTLASS Operator API
Dense and blockscaled GEMMs in Operator API have preliminary Rubin support. These are provided as a preview and may need additional performance tuning.
Updated GEMMs include:
These kernels utilize the below new features in Rubin:
Operators can now be ranked by their estimated performance when nvMatmulHeuristics is available. See tutorial here. NOTE: This currently only supports Blackwell kernels as nvMatmulHeuristics does not yet support Rubin.
Standalone kernel implementations are now exposed through
cutlass.kernels. These kernels can be used directly, in addition to being discoverable and usable via the Operator interface incutlass.operators.Custom Epilogue fusions now support per-row or per-column reductions.
IndexPtrGroupedGemmArgumentsis now used to represent Grouped GEMM with contiguous-offset/index-pointers. ExistingGroupedGemmArgumentsis deprecated and will be removed in a future release.C++
sm_107aandsm_107ftargets:NOTE: Executing Rubin kernels (SM107) requires the R615 driver which will be released
with CUDA Toolkit 13.4 GA. R610 from CUDA Toolkit 13.4 Developer Preview is not
sufficient.
This discussion was created from the release CUTLASS 4.8.0.
All reactions