tgoop.com/blog_toxa/464
Last Update:
Как инферятся LLMки под капотом?
Совершенно случайно наткнулся на блогпост про инференс LLMок. Речь именно про реализацию движка на C++ своими ручками, с использованием CUDA и без каких-либо других сторонних библиотек. Я прочитал пост залпом, объяснения очень понятные и глубокие
Всё, конечно, же игрушечное: single batch, single gpu, completion only (без prefill).
В посте идёт повествование про следующие топики:
— Пишем наивную реализацию под CPU (и ускоряем за счёт SIMD);
— Переносим на CUDA;
— Думаем, как работает GPU и ускоряем matmul;
— Фьюзим операции и еще ускорения matmul;
— Профилируем attention и ускоряем его, включая длинные генерации;
— Квантование и какие грабли подкидывает нам nvcc.
Определённо полезно будет тем, кому интересны топик инференса. Мне понравилось то, как автор показывает, что можно использовать различные инструменты профилировки и какие выводы из них можно сделать
Ссылочка на пост: https://andrewkchan.dev/posts/yalm.html