mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-03-20 15:17:41 +00:00
This commit introduces utility tools for building, testing, and analyzing
Composable Kernel. The tools are designed to be LLM-agnostic and can be
used with any AI assistant or directly from the command line.
Tools Added:
============
1. ck-docker - Docker container management
- Start/stop ROCm-enabled containers
- Build targets with CMake + Ninja
- Run tests with gtest filters
- Auto-detect GPU targets (gfx950, gfx942, etc.)
- Per-user, per-branch container naming to avoid conflicts
2. ck-build-analysis - Build time profiling
- Uses Clang's -ftime-trace for compilation analysis
- Aggregates statistics across multiple trace files
- Identifies template instantiation bottlenecks
- Generates detailed Markdown reports with:
* Compilation phase breakdown
* Top expensive instantiations
* Template family analysis
* Data-driven optimization recommendations
- Configurable granularity (1µs to 500µs)
- PEP 723 compliant Python script with auto-dependency management via uv
Key Features:
=============
- LLM-agnostic design (works with any AI assistant)
- Zero-configuration setup with automatic dependency installation
- Comprehensive documentation in script/tools/README*.md
- Security hardening (input validation, no command injection)
- Multi-file trace aggregation for accurate build analysis
- Jinja2-based report generation for customizable output
Implementation:
===============
- script/tools/ck-docker - Main Docker orchestration script
- script/tools/ck-build-analysis - Build analysis orchestration
- script/tools/common.sh - Shared utilities (container mgmt, GPU detection)
- script/tools/analyze_build_trace.py - PEP 723 compliant Python analyzer
- script/tools/templates/ - Jinja2 templates for report generation
- script/tools/README*.md - Comprehensive documentation
Directory Structure:
====================
script/tools/
├── README.md # Main overview
├── README_ck-docker.md # ck-docker documentation
├── README_ck-build-analysis.md # ck-build-analysis documentation
├── ck-docker # Docker orchestration script
├── ck-build-analysis # Build analysis orchestration
├── common.sh # Shared utilities
├── analyze_build_trace.py # Python analyzer (PEP 723)
└── templates/
└── build_analysis_report.md.jinja # Report template
The tools follow Unix philosophy: do one thing well, compose easily,
and work from both CLI and programmatic contexts.
79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
# Composable Kernel Tools
|
|
|
|
This directory contains utility tools for building, testing, and analyzing Composable Kernel.
|
|
|
|
These tools are designed to be LLM-agnostic and can be used with any AI assistant or directly from the command line.
|
|
|
|
## Available Tools
|
|
|
|
### ck-docker
|
|
|
|
Build and test composable_kernel in Docker with ROCm support.
|
|
|
|
See [README_ck-docker.md](README_ck-docker.md) for details.
|
|
|
|
**Quick start:**
|
|
```bash
|
|
# Add to PATH
|
|
export PATH="$PATH:$PWD/script/tools"
|
|
|
|
# Start container and build
|
|
ck-docker start
|
|
ck-docker build test_amdgcn_mma
|
|
ck-docker test test_amdgcn_mma
|
|
```
|
|
|
|
### ck-build-analysis
|
|
|
|
Analyze Composable Kernel build times using Clang's -ftime-trace profiler.
|
|
|
|
See [README_ck-build-analysis.md](README_ck-build-analysis.md) for details.
|
|
|
|
**Quick start:**
|
|
```bash
|
|
# Add to PATH
|
|
export PATH="$PATH:$PWD/script/tools"
|
|
|
|
# Analyze build time
|
|
ck-build-analysis example_convnd_fwd_xdl_fp8
|
|
```
|
|
|
|
## LLM Assistant Integration
|
|
|
|
These tools can be used as-is with any LLM assistant by providing the tool documentation to the assistant. The assistant can then invoke these tools on your behalf.
|
|
|
|
For example, you can ask:
|
|
- "Start the docker container"
|
|
- "Build and test test_amdgcn_mma"
|
|
- "Analyze build time for example_convnd_fwd_xdl_fp8"
|
|
|
|
The assistant will translate your natural language request into the appropriate tool invocation.
|
|
|
|
## Dependencies
|
|
|
|
- **ck-docker**: Requires Docker and ROCm-capable GPU (for running tests)
|
|
- **ck-build-analysis**: Requires Docker, automatically installs Python dependencies (jinja2) via `uv`
|
|
|
|
## Directory Structure
|
|
|
|
```
|
|
script/tools/
|
|
├── README.md # This file
|
|
├── README_ck-docker.md # Documentation for ck-docker
|
|
├── README_ck-build-analysis.md # Documentation for ck-build-analysis
|
|
├── ck-docker # Docker container management tool
|
|
├── ck-build-analysis # Build time analysis tool
|
|
├── common.sh # Shared utilities for bash scripts
|
|
├── analyze_build_trace.py # Python script for trace analysis (PEP 723 compliant)
|
|
└── templates/
|
|
└── build_analysis_report.md.jinja # Jinja2 template for analysis reports
|
|
```
|
|
|
|
## Contributing
|
|
|
|
When adding new tools to this directory:
|
|
1. Keep them LLM-agnostic (avoid hardcoding references to specific AI assistants)
|
|
2. Provide clear command-line usage documentation
|
|
3. Include examples for both CLI and LLM assistant usage
|
|
4. Follow the existing naming convention and structure
|