Files
composable_kernel/script/tools/README.md
Max Podkorytov 086a1f8861 Add LLM-agnostic Docker and build analysis tools (#3576)
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.
2026-01-15 08:30:23 -08:00

2.5 KiB

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 for details.

Quick start:

# 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 for details.

Quick start:

# 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