Show HN: Agentic CUDA Kernel Optimizer (github.com)

1 points by bertaye ↗ HN
Hello; I was working on optimizing some CUDA kernels and I thought may be it is a good oppurtunity learn langgraph as well. I created a simple C++ CUDA Test Harness and handed that to AI agents. They can run kernels, get benchmarks, and even can profile via nsight

12 comments

[ 0.30 ms ] story [ 60.9 ms ] thread
[dead]
That is the funny part actually; we can either provide a reference kernel + input cases for correctness check. In this case at first it will use test harness to run reference kernel with reference inputs ad save the outputs as ground truth. Or we can let AI to create a very basic reference implementation and input cases :D for my own experiments I used second one.
How are you checking that the AI is not just gaming your correctness tests? It's very easy to write incorrect synchronization for example.
It cant if you be cautious about it because the inputs can set manually and outputs are generated through the cuda harness by executing the reference kernel, again can be provided externally.

Comparison is simply byte by byte equalness check of reference kernel outputs with candidate (optimized) outputs.

Why I added ai generated inputs then? I was just being lazy and this was more of a langgraph playground for me:)

Yes, but the AI can totally make a kernel that passes your test inputs but is not correct
Very cool. Did you also try using the karpathy autoresearch? How do you think this compares?
honestly I know it exists but I never used it so can't compare
Can someone explain why this isn't better accomplished through a single prompt to Claude code or codex? I don't think I understand.
Yup, this thing is basically useless. I just did /goal optimize the cuda kernel, and ai agent just proposed and tested a bunch of ideas by itself, and it profiled them using nsight ncu etc. by itself, which lead to one order of magnitude faster kernel.
Hello, indeed you can just use that.

The basic idea here is just automating and limiting the steps that AI can take. These are described as ‘nodes’ and their actions are limited/more descriptive from developer perspective.

The langgraph simply allows you to set some fences around the AI agent for a goal, instead of raw terminal flow. Is it better? Arguable.

in mine, only an agent's final report reaches the orchestrator, never its transcript, so a wrong turn inside a node stays invisible. that's the fence i'd want first.