Release Notes
CUDA 13.5
New Features
Support for return statements inside
for,while,do, andswitchclauses in tile code.New
ct::scaled_mma()function for performing block scaled matrix multiplication.New
ct::tileconstructor for building a tile from a list of compile-time constant scalars (for examplect::tile t({1, 2, 3, 4})).New
ct::insert()function to update a portion of a tile with the elements of another tile.New
ct::repack()function for reinterpreting data across multiple elements of a tile.New masked atomic read-modify-write member functions on
ct::partition_viewandct::strided_viewwhich have well-defined behavior for partially out-of-bounds chunks.New
ct::powi()function for elementwise float-to-int exponentiation.Support for __nv_fp8_e8m0, __nv_fp8_ue5m3, and __nv_fp4_e2m1 as tile elements.
Support for rounding and saturation modes in
ct::element_cast().Support for view padding when loading restricted floating point types from
ct::partition_view,ct::strided_view, andct::gather_scatter_view.Support for optimization hints on variable declaration and return statements.
The num_worker_warps_per_cta optimization hint now accepts any power of two in the inclusive range \([1, 32]\). Previously only the values \(4\) and \(8\) were supported.
Support for integer exponents in
ct::pow().
CUDA 13.4
New Features
New
ct::strided_viewtype for performing structured memory accesses over chunks of data separated by a stride.New
ct::gather_scatter_viewtype for performing non-adjacent memory access to chunks of data along a gather-scatter dimension.New
ct::partition_viewtype member functions:atomic_and(),atomic_or(),atomic_xor(),atomic_max(),atomic_min(),atomic_add(),atomic_sub().New
ct::max_element()andct::min_element()functions.Tile argument constraint for
ct::isinf()andct::isnan()changed from tobasic_floating_point_tiletofloating_point_tile(more floating point types now supported).ct::atomic_sub()andct::atomic_add()now support tile with element type__nv_bfloat16, when targeting architecture >= sm_90.Added explicit rounding mode template parameter to
ct::exp()andct::tanh(). Supported modes are round full and round approximate.New
ct::stridestype for representing stride values in layout mappings andct::strided_view. Associated APIs includect::strides_like,ct::dynamic_stride, andct::strides_equal().ct::layout_strided_mappingnow acceptsct::stridesin addition toct::extentswhen specifying stride values.The bitwise complement, left shift, and right shift APIs now support tiles of
bool. For details, seect::operator~(),ct::operator<<(), andct::operator>>().Switch statements are now supported in tile code. See the CUDA Programming Guide for limitations.
Compatibility Notes
The addition of the rounding mode template parameter changes the template signature of
ct::exp()andct::tanh(). The first template parameter is nowrounding_moderather than the tile element type. Code that explicitly specified the tile element type as a template argument in CUDA 13.3, such asct::exp<double>(0.0), will no longer compile. Users should rely on template argument deduction instead, e.g.ct::exp(tile).
CUDA 13.3
Initial release