Files
composable_kernel/test/ck_tile/README.md
Aviral Goel f00ec5afd9 [rocm-libraries] ROCm/rocm-libraries#4301 (commit 0821c9f)
test: Add umbrella test targets for CK Tile operations
 (#4301)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

## Proposed changes

Adds operation-specific umbrella test targets for CK Tile to enable
running all tests for a specific operation without running the entire
test suite. This improves the development workflow by allowing faster
iteration when working on specific operations.

## Motivation

Previously, developers working on CK Tile operations could only:
- Run individual test executables one at a time
- Run global labels (, , ) which test the entire codebase
- Build all tests for an operation but had no simple way to run them all

This made it cumbersome to validate changes to a specific operation
(e.g., GEMM quantization) without either running tests individually or
running the entire test suite.

### Documentation

- - Comprehensive testing guide with usage examples and implementation
details

## Usage Examples

# Run all GEMM tests with 256 parallel jobs
ninja -j256 ck_tile_gemm_tests

# Run all GEMM block scale (quantization) tests
ninja -j256 ck_tile_gemm_block_scale_tests

# Run all GEMM StreamK tests
ninja -j256 ck_tile_gemm_streamk_tests

## Checklist

Please put an into the boxes that apply. You can also fill these out
after creating the PR. If you're not sure, please don't hesitate to ask.

- [x] I have added tests relevant to the introduced functionality, and
the unit tests are passing locally
- [x] I have added the test to REGRESSION_TESTS list defined at the top
of CMakeLists.txt in tests/CMakeLists.txt, **IF** the test takes more
than 30 seconds to run.
- [x] I have added inline documentation which enables the maintainers
with understanding the motivation
- [x] I have removed the stale documentation which is no longer relevant
after this pull request
- [ ] (If this change is user-facing) I have added release notes which
provide the end users with a brief summary of the improvement from this
pull request
- [x] I have run  on all changed files
- [x] Any dependent changes have been merged

## Discussion

If this is a relatively large or complex change, feel free to start a
discussion by explaining why you chose the solution you did and what
alternatives you considered
2026-03-03 15:40:50 +00:00

134 lines
3.6 KiB
Markdown

# CK Tile Testing Guide
This document describes the test organization and available test targets for CK Tile operations.
## Overview
CK Tile tests are organized with multiple levels of granularity to support different development workflows:
1. **Global test labels** - Run tests across all operations
2. **Operation-specific umbrella targets** - Run all tests for a specific operation
3. **Individual test executables** - Run specific tests
## Global Test Labels
These targets run tests across all CK operations (not just CK Tile):
### `ninja smoke`
Run fast smoke tests (tests that complete within ~30 seconds on gfx90a).
```bash
ninja smoke
```
### `ninja regression`
Run slower, more comprehensive regression tests.
```bash
ninja regression
```
### `ninja check`
Run ALL available tests in the entire codebase.
```bash
ninja check
```
## Operation-Specific Umbrella Targets
These targets allow you to run all tests for a specific CK Tile operation. This is useful when making changes to a particular operation and wanting to validate all related tests without running the entire test suite.
### GEMM Operations
#### `ck_tile_gemm_tests`
Run all basic GEMM pipeline tests (memory, compute variants, persistent, etc.)
```bash
ninja ck_tile_gemm_tests
```
**Test executables included:**
- `test_ck_tile_gemm_pipeline_mem`
- `test_ck_tile_gemm_pipeline_compv3`
- `test_ck_tile_gemm_pipeline_compv4`
- `test_ck_tile_gemm_pipeline_persistent`
- `test_ck_tile_gemm_pipeline_compv6`
- `test_ck_tile_gemm_pipeline_comp_async` (gfx95 only)
- `test_ck_tile_gemm_pipeline_*_wmma` variants (gfx11/gfx12 only)
#### `ck_tile_gemm_block_scale_tests`
Run all GEMM tests with block-scale quantization (AQuant, BQuant, ABQuant, etc.)
```bash
ninja ck_tile_gemm_block_scale_tests
```
**Test executables included:** 29 test executables covering:
- AQuant tests (memory pipelines, base layouts, prefill, preshuffle, transpose)
- ABQuant tests (base, padding, preshuffle)
- BQuant tests (1D/2D variants, transpose)
- BQuant with PreshuffleB (decode/prefill, 1D/2D)
- BQuant with PreshuffleQuant (decode/prefill, 1D/2D)
- RowColQuant and TensorQuant tests
#### `ck_tile_gemm_streamk_tests`
Run all GEMM StreamK tests (tile partitioner, reduction, smoke, extended)
```bash
ninja ck_tile_gemm_streamk_tests
```
**Test executables included:**
- `test_ck_tile_streamk_tile_partitioner`
- `test_ck_tile_streamk_reduction`
- `test_ck_tile_streamk_smoke`
- `test_ck_tile_streamk_extended`
#### `ck_tile_grouped_gemm_quant_tests`
Run all grouped GEMM quantization tests
```bash
ninja ck_tile_grouped_gemm_quant_tests
```
**Test executables included:**
- `test_ck_tile_grouped_gemm_quant_rowcol`
- `test_ck_tile_grouped_gemm_quant_tensor`
- `test_ck_tile_grouped_gemm_quant_aquant`
- `test_ck_tile_grouped_gemm_quant_bquant`
- `test_ck_tile_grouped_gemm_quant_bquant_preshuffleb`
### Other Operations
#### `ck_tile_fmha_tests`
Run all FMHA (Flash Multi-Head Attention) tests
```bash
ninja ck_tile_fmha_tests
```
**Test executables included:** Forward and backward tests for fp16, bf16, fp8bf16, fp32
#### `ck_tile_reduce_tests`
Run all reduce operation tests
```bash
ninja ck_tile_reduce_tests
```
**Test executables included:**
- `test_ck_tile_reduce2d`
- `test_ck_tile_multi_reduce2d_threadwise`
- `test_ck_tile_multi_reduce2d_multiblock`
## Individual Test Executables
You can also build and run individual test executables:
### Build a specific test
```bash
ninja test_ck_tile_gemm_pipeline_mem
```
### Run a specific test directly
```bash
./build/bin/test_ck_tile_gemm_pipeline_mem
```
### Run a specific test through ctest
```bash
ctest -R test_ck_tile_gemm_pipeline_mem --output-on-failure
```