前言
最近计划研究下llama.cpp是如何实现混合精度量化矩阵乘的。粗看了下llama.cpp的代码,应该是比fastertransformer要友好得多的。
首先量化了一个Q5_0
的llama2,然后用build/bin/llama_simple
跑了一下,并用nsys
抓了一下时间线。最新的llama.cpp引入了CUDA graph技术,大概是把一堆算子封装成一个graph同一进行调度,这导致直接用nsys
抓到的只有一个graph
,不清楚里面具体调了哪些kernel。想要知道调用了哪些kernel,需要增加参数 --cuda-graph-trace=node
。最终命令为