ck tile engine integrate with gemm unit tests (#2601)

* first try to understand how tile engine works

* 1st implemented unit tests

* manage different types for unit tests

* manage using different config files to have different unit tests

* manage different layouts

* making instances and running them by unit test

* Add reference calculation

* manage different input dimension combination

* add splitk to unit tests. clean code.

* remove unused files

* clean and test with a simple json file
This commit is contained in:
msaffari-amd
2025-10-06 12:00:58 +02:00
committed by GitHub
parent 58983a3232
commit 96efe2f485
5 changed files with 577 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
# GEMM Tile Engine Unit Tests
## How It Works
This unit test system integrates **tile_engine's kernel generation** into automated testing:
1. **Uses tile_engine scripts directly**: Same Python scripts that generate tile_engine kernels
2. **JSON-based configuration**: Define test parameters in JSON files (like tile_engine)
3. **Build-time generation**: CMake calls tile_engine scripts to generate kernel headers
4. **Individual test executables**: Each kernel configuration becomes a separate test
5. **Tile_engine verification**: Uses exact same error thresholds and validation as tile_engine
## Tile Engine Integration
```
JSON Config → tile_engine Python scripts → Generated Headers → Test Executables
```
- **`--list_kernels`**: Get available kernel configurations from JSON
- **`--gen_single`**: Generate individual kernel header for each configuration
- **Same verification**: Uses tile_engine's adaptive error thresholds and reference calculations
- **Same patterns**: Follows tile_engine's tensor initialization, stride calculation, and kernel launching
The key idea: **Unit tests that use tile_engine's exact kernel generation and verification methodology** instead of creating separate test infrastructure.