Skip to content

Time-Limit/LLMMM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

开发计划

本项目是一个针对 0.5~7B LLM 的推理框架,旨在通过 kernel fusion 提升推理速度。目前还在开发中。

因为作者只有一块 4090 用来开发,所以目前只能保证本项目的代码能在 SM89 上跑通。

作者是一名 CUDA 的初学者,因此本项目的开发计划可能会有调整,但整体上会有以下几部分。

  • Matrix Multiplication
    • FP32
    • FP16
    • FP8 Blockwise Quant
  • Attention
    • MHA/GQA/MLA
    • FP16/FP8 blockwise quant
    • Tree Mask
  • 尝试将 RMSNorm、fp8 dynamic quant、SILU、ROPE等算子融合进 MM 或者 Attention
  • 补充 TopP/TopK,Embedding Lookup 等流程,跑通 Qwen3 4B 模型。
  • 支持投机采样
  • 支持 OpenAI

进度

目前还在 MM 部分的收尾阶段,还需要在 FP16/FP8 版本上支持 SPLIT K、Auto Tune。

FP32

虽然 FP32 的 MM 不会用到最终的推理框架上,但作为入门第一课还是值得一写的。

当前版本的性能基本和 cublas 持平了。优化过程记录在了 https://zhuanlan.zhihu.com/p/1912906578081842292。

image image

FP16

因尚未支持 SPLIT K,所以先只比较了 M=N=K=4096 的性能,以大约 0.5us 的优势略快于 cublas。 image image

算力利用率也来到了 97.7% (按 Peak=146.358TFLOPS 计算),应该算是比较高的利用率了吧。 image

FP8

融合了 C 矩阵的 blockwise quant。在 M=N=K=4096 上,算力利用率大约有 79.3% 的利用率(按 Peak=293TFLOPS 计算)。 image

以在 4B 模型为例,融合 C 矩阵的 blockwise quant,大概可以加速 5%。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published