Files
composable_kernel/example/ck_tile/05_reduce
arai713 24d88d2472 [CK_TILE] Move DataTypeTraits into a Common File (#3146)
This renames the typeToStr struct in the common utilities to DataTypeTraits and removes all duplication of DataTypeTraits across files in CK Tile.

Co-authored-by: Christopher Millette <63608002+cgmillette@users.noreply.github.com>
2025-11-27 09:09:54 -08:00
..

Reduction with CK Tile

This example demonstrates parallel reduction (sum, max, etc.) using the CK Tile programming model, a core operation for normalization, statistics, and aggregation in deep learning.


Algorithm and Math

Given a tensor X and a reduction axis, compute:

  • Sum: Y = \sum_i X_i

  • Max: Y = \max_i X_i

  • Mean: Y = \frac{1}{N} \sum_i X_i

  • Tilewise Reduction: Each thread block reduces a tile (block) of the input, using shared memory and register accumulation for efficiency.


Tile Programming Model

  • Tiles: Each thread block processes a tile (block) of the input tensor.
  • Pipeline: Modular, can be extended for fused reductions or post-processing.

Build & Run

mkdir build && cd build
sh ../script/cmake-ck-dev.sh ../ <arch>
make tile_example_reduce -j
./bin/tile_example_reduce -?

Source Structure

  • Kernel: reduce.hpp (tile-programming kernel template)
  • Executable: reduce.cpp (argument parsing, kernel launch)
  • Build: CMakeLists.txt

For distribution, see include/ck_tile/tile_program/tile_distribution/.


Back to CK Tile Examples