2.8 KiB
FlashKDA RTX 5090 execution probe
This directory reproduces the local execution evidence shown in the K3 artifact lab. It does not download or run the 1.56 TB Kimi K3 checkpoint. All inputs are deterministic synthetic tensors with shapes allowed by the official FlashKDA API.
Pinned upstream revision:
MoonshotAI/FlashKDA@1ce47ea3bb22c84eb9cc665028399cf35e8ffb0b
Why the build is isolated
The workstation uses glibc 2.43. CUDA 13.1's published Linux support matrix
currently lists distributions up to glibc 2.41, and compiling this extension
directly on the host reaches an rsqrt / rsqrtf exception-specification
conflict in the CUDA and system math headers. The container fixes the build
ABI at Ubuntu 24.04 / glibc 2.39 while still targeting sm_120a.
Build the wheel
Clone FlashKDA with submodules and verify the revision before building:
git clone --recursive https://github.com/MoonshotAI/FlashKDA.git /tmp/FlashKDA
git -C /tmp/FlashKDA checkout 1ce47ea3bb22c84eb9cc665028399cf35e8ffb0b
git -C /tmp/FlashKDA submodule update --init --recursive
docker build -t llm-atlas-flashkda-cu130 experiments/k3/flashkda
mkdir -p /tmp/flashkda-wheelhouse
docker run --rm \
-e FLASH_KDA_ARCHS=120a \
-e MAX_JOBS=12 \
-v /tmp/FlashKDA:/src:ro \
-v /tmp/flashkda-wheelhouse:/wheelhouse \
llm-atlas-flashkda-cu130 \
python -m pip wheel /src --no-build-isolation --no-deps -w /wheelhouse
The audited wheel was built for CPython 3.12 and has SHA-256:
14687b6d84a256d4552f0c73ccf93a601be582aeabcdf49ae3a409266872158d
Run the probe
Use CPython 3.12 with PyTorch 2.11.0+cu130 and install the wheel. Prebuild the
small CUDA helper loaded by upstream tests/torch_ref.py without needing a
Docker GPU runtime:
mkdir -p /tmp/k3-torch-extensions
docker run --rm \
--user "$(id -u):$(id -g)" \
-e HOME=/tmp \
-e TORCH_EXTENSIONS_DIR=/cache \
-e TORCH_CUDA_ARCH_LIST=12.0a \
-e MAX_JOBS=12 \
-v "$PWD:/atlas:ro" \
-v /tmp/k3-torch-extensions:/cache \
llm-atlas-flashkda-cu130 \
python /atlas/experiments/k3/flashkda/build_reference_helper.py
Then run the GPU probe on the host:
export TORCH_EXTENSIONS_DIR=/tmp/k3-torch-extensions
export TORCH_CUDA_ARCH_LIST=12.0a
export CUDA_HOME=/usr/local/cuda
python experiments/k3/flashkda/run_probe.py \
--flashkda-source /tmp/FlashKDA \
--wheel /tmp/flashkda-wheelhouse/flash_kda-0.0.1+1ce47ea-cp312-cp312-linux_x86_64.whl \
--output src/data/k3-flashkda-runtime.json
The correctness suite imports the upstream reference implementation instead of copying it into this repository. It checks exact BF16 equality at one chunk, a partial tail chunk, multiple chunks, 96 heads, and a variable-length batch. The performance cases are local kernel timings, not a comparison with the authors' H20 or GB200 tables.