
I'm starstruck when legends like Ash use Mojo🔥 + LLM coding to solve problems (which I barely understand...) in genomics 🧬 across CPU and GPU with high performance.
Check out AffineGaps, an incredible Mojo library building on the learnings of StringZilla and other research!🔬
Ash Vardanian (@ashvardanian)
RNA loves Mojo 🔥, and I love high-polynomial problems!
The last couple of weeks were eventful. The news about Moderna's phase 3 trials of mRNA cancer vaccines hit the public... and simultaneously @Modular has released the 1.0 version of Mojo. I got really excited and went on celebrating the only way I know - writing code!
My StringZilla 🦖 may currently be the SotA for "scoring" bio-sequences under traditional Levenshtein, Needleman-Wunsch, Smith-Waterman quadratic-time schemes - reaching roughly 10 TeraCUPS under best circumstances... but it doesn't backtrack to actually output the "alignment" of two bio-sequences - only their score.
I had another small tool, originally Python+Numba, for backtracking and colorful CLI output. Its initial goal was to be "correct", rather than "fast"... I wanted to generalize it to more expensive forms of alignment-like operations - folding and cofolding RNA. Those are cubic O(n^3) and sixth-degree O(n^6) polynomial time operations...
I knew the time has come to generalize the toolkit from proteins to RNA and from CPUs to GPUs, and using Mojo 🔥 was just a complete joy. I previously saw some reasonable-sounding comments on HackerNews, that LLM-assisted coding would benefit CUDA a lot more than newer GPU-programming languages, but it turned out to be completely wrong in practice. I've used my own Python drafts and CUDA kernels as a reference for layout, and let Claude experiment with the optimal traversal order in similar coordinate systems to what StringZilla uses.
Current results look good - comparing my AffineGaps lines on a typical @NebiusAI GPU node, featuring Intel Sapphire Rapids CPU cores and NVIDIA H100 GPUs. It's a big GPU against a small CPU core, so discount accordingly... but the important comparison isn't CPU vs GPU here. The important part is where the other lines stop on the "cofolding" chart. Too often people get scared of mid- and high-degree polynomials, give up on exact solutions, and fall back on approximations... With the right tools, you don't have to - @clattner_llvm 👏
AffineGaps repo: github.com/unum-science/Affi…
评论
?
参与讨论