Welcome to QuantitativeLLM Discussions! #4
leonardozcm
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
更新计划
2024.12.23 ~ 2025.3.12
总纲
总体目标: 产出若干篇blog放在github 知乎等知识分享平台,题材从llama.cpp里面nv的实现为主。llm模型里面耗时最长的操作主要是矩阵乘法和sdp,矩阵乘法按A和B的种类可以分为gemm和gemv,按数据类型有fp32/fp16 和 compress weights int4。sdp 类似, 1st token的sdp和2nd 的sdp有不同的写法, 另外还有compressed kv的情况存在,以及编写难度最高的block sparse sdp。rope和rms占比不高,但可以作为理解llm计算逻辑的入口。考虑到全面性,附加对vision模型中的卷积层实现的探讨。
考虑到从难到易的顺序,从简单的算子实现开始,由浅入深,最后的目标是独立并优化分析block sparse attn(难度五星)/legacy sdp(难度四星):
Easy:(12.23~1.19)
1.transpose
2.elementwise ops
3.relu/sigmoid
4.Rope
Mid:(1.19~2.19)
1.reduce sum
2.softmax
3.RMS
Hard:(2.19~)
*0.gemv(fp32fp32/fp16fp16)
1.gemm(fp32int4/fp16int4)
2.sdp(2nd+)
3.convolution(low priority now)
Final:
1.sdp(1st int4/fp8 kv)
2.Block sparse attn
工作的重点不在于写出来性能最好,期待80%理论最优就可以了,重点应该放在量化分析。两人分开各写一版,每周分享一次。
第一阶段
第一个月工作比较轻松一点
○先熟悉一下cpp和cuda,以及llama.cpp
○然后是看完计算机体系机构1,2,3,4 重点第2,4章,以及附录的部分内容。
○学习profile 工具的使用https://developer.nvidia.com/nvidia-visual-profiler
○学习cuda编程范例 https://github.com/NVIDIA/cuda-samples
○more papers/refers on our work…..
Beta Was this translation helpful? Give feedback.
All reactions