Show HN: Phobos – A tiny scale-free kernel language with tile-DAG support A developer built Phobos, a tiny scale-free kernel language that compiles to PTX and runs on NVIDIA GPUs, achieving 76% of cuBLAS SGEMM performance on a 2080 SUPER. The language supports tile-DAG design and was created as a personal research project to understand low-level GPU concepts. TLDR:I’ve built Phobos , a tiny kernel language inspired by Triton. It lowers to PTX and runs on NVIDIA GPUs. It achieves acceptable performance at 76% of cuBLAS SGEMM GFLOP/s on a 2080 SUPER or 74% of the theoretical GFLOP/s peak . Phobos maps naturally to a distributed tile-DAG design. I only validated the cluster prototype on a single machine; there are no multi-node benchmarks here. This was a personal research project to gain a better understanding of low-level GPU concepts. I only realized the potential for distributed computing when implementing local tile optimizations. Ever since I was a kid and started to learn about artificial neural networks, I was fascinated by the human brain and AI to the point where I built object recognition software in my bedroom, using shitty webcams and a 1.8 GHz CPU for training. When I finished school I enrolled in Cognitive Informatics at Bielefeld University. Though, after a mere four days, I dropped out because I got a job offer from a startup in Paris and wanted to see the world. In the following years, I worked a lot on optimization, compilers and other machine learning related topics. I still follow the research, but I am an outsider to frontier AI research and tech. Here I am, back again with a shitty 2080 SUPER. Eager to learn. I strongly believe, in order to fully understand something, you really need to do the work and get your hands dirty. And because I have experience with compilers, optimization and LLVM, I thought writing a tiny language and compiler to target GPUs is approachable for me. I also have enough experience with software engineering, and compilers, to know that I must tread carefully. I want to keep this a learning exercise. It could very well snowball into a project that would consume too much of my available time if I take a wrong turn. Compilers are particularly tricky. Without being able to compile a program from start to end, you won’t see anything. Compiling a program is not trivial per se, so I am going to take some shortcuts. There won’t be any sort of linking or a phase model. The goal : create a small language that compiles and runs on NVIDIA GPUs. In doing so, I want to pick a model well suited for AI computations. It should make optimizations possible without having to reconstruct the semantics of typical AI kernels. I know that I want to support first class tensor types / tiles. In fact, the entire language is oriented around tiles. Here are two example programs I want to be able to compile. I’ll explain in more detail when we get to the language. Vector Addition This is \ \vec{c} = \vec{a} + \vec{b}\ . @autotune BLOCK in 1024 kernel add a: tensor