Improving Your AI Coding Agent Without switching the Model or touching the harness
Microsoft’s SkillOpt shows how AI coding agents can improve through self-evolving skills without retraining the model or rebuilding the agent harness.

Developer Hamza El Shafié published a detailed technical analysis of ThunderKittens, an open-source, compact domain-specific language designed to simplify high-performance GPU kernel development. The embedded C++ template library abstracts hardware-specific instructions to help researchers build optimized machine learning operations.

The release of the architectural breakdown of ThunderKittens comes as modern machine learning workloads increasingly rely on custom GPU kernels. While high-level models are written in clean tensor operations, execution performance depends on specialized underlying implementations like FlashAttention, mixed-precision matrix multiplications, and mixture-of-experts grouped GEMMs.
ThunderKittens addresses the difficulty of writing raw CUDA code by shifting the programming model from individual threads to multi-dimensional tiles. This abstraction allows developers to focus on the mathematical logic of their kernels rather than the intricate details of thread scheduling, register allocation, and memory coalescing.
According to El Shafié's analysis, the framework decouples mathematical operations from hardware execution.
"TK separates the question of what scalar math to perform from the question of how that math should be lifted onto structured objects such as vectors and tiles."
Efficient GPU execution requires careful management of shared memory, which acts as a fast cache shared among threads. ThunderKittens uses a static shared memory allocator to eliminate runtime overhead. This design choice ensures that memory resources are determined at compile time, preventing dynamic allocation bottlenecks.
The technical analysis of the DSL explains that the allocator operates with a fixed budget.
"The allocator does not size itself based on future tile requests. Instead, it reserves the whole budget up front based on the number of blocks expected to use the same SM."
GPU performance is heavily tied to occupancy, which measures how many active threads can run concurrently on a streaming multiprocessor. When launching kernels, thread blocks are grouped into execution cycles. If the workload does not align perfectly with the hardware, empty execution slots degrade overall throughput.
El Shafié defines the execution cycle of thread blocks as a wave.
"In a GPU, a wave refers to a batch of CTAs / thread blocks that can be resident on the GPU at roughly the same time. The total number of waves is given by CEIL_DIV((M/BM) * (N/BN), num_SMs) ."
Optimizing this division prevents tail-wave latency.
ThunderKittens targets modern hardware features, including NVIDIA's Tensor Memory Accelerator and asynchronous copy instructions. These hardware-level primitives allow data to move directly between global memory and shared memory without occupying register space. By utilizing these features, the DSL achieves execution speeds comparable to hand-optimized CUDA.
This efficiency is critical for scaling laws in artificial intelligence. While researchers continue to iterate on novel model architectures, those algorithms must run efficiently on physical hardware to be viable at scale. ThunderKittens attempts to bridge this gap by offering both flexibility and speed.
Subscribe wiring is coming soon. For now, follow the daily news feed or connect on LinkedIn for updates.