-
大家好,第一次在论坛发帖,有点紧张,有什么不对的地方请大家多包涵。
我一直对LLM推理很感兴趣,自己动手写了一个极简的推理引擎。因为对数值计算有点执念,我走了一条比较偏门的路子——尽可能把浮点运算都换成整数和定点数(像Q8.8/Q16这种),想看看在纯CPU上能跑成什么样。
折腾了一段时间,目前的情况是这样的:
速度:在我的台式机CPU上,2B大小的模型能稳定跑到 15+ token/s,最低也在10以上
确定性:因为全是整数运算,我做了Trace Hash校验,结果是一致的
语义:简单对比过,和浮点版本的输出差异不大,没有明显崩坏
我知道这个速度不算惊艳,毕竟只是个2B小模型,而且CPU跑大模型本来就不现实。但我自己觉得这条路好像可以继续往下走——接下来想试试27B的模型,还有昇腾那边的NPU,也在关注Tenstorrent,感觉他们的分层计算思路和我的方向有点契合。
我发这个帖子,主要是想请大家帮我看看:
这种“全部用整数算”的方向,你们觉得有实际落地的价值吗?还是说只是我个人的玩具?
如果我想往NPU上移植,有没有什么是你们觉得最该提前注意的坑?
论坛里有没有同样在搞推理引擎的朋友,想交个朋友,互相学习一下
代码还很糙,暂时没好意思发出来,等再打磨一下我再开源吧,目前有个验证版的开源https://github.com/superalp1985/DCA-Inference-Engine。谢谢大家看完,希望没占用你们太多时间。
-
,
T terry 将此主题从 随便聊聊 移至此处
-
整數運算? 是指非FP形式的GEMM嗎? INT8的W8A8或者INT4的W4A4?
如果是用來適配舊顯卡/NPU這個思路不是不行
但是目前的新顯卡大方向是FP低精度運算, 可能聚焦在NPU比較好? 目前大多數NPU的用法也是NPU Prefill + GPU Decode
AMD XDNA系列跟Intel的NPU系列
Intel的爛命名, 沒有架構名字, 只叫NPU然後加個數字, Arrow Lake (Ultra 200)用NPU 3720, Panther Lake (Ultra 300)用NPU 5
-
整數運算? 是指非FP形式的GEMM嗎? INT8的W8A8或者INT4的W4A4?
如果是用來適配舊顯卡/NPU這個思路不是不行
但是目前的新顯卡大方向是FP低精度運算, 可能聚焦在NPU比較好? 目前大多數NPU的用法也是NPU Prefill + GPU Decode
AMD XDNA系列跟Intel的NPU系列
Intel的爛命名, 沒有架構名字, 只叫NPU然後加個數字, Arrow Lake (Ultra 200)用NPU 3720, Panther Lake (Ultra 300)用NPU 5
@566656661 果然是专家 确实是非浮点运算 但是比您说的这种更极端 我从数学底层把所有乘除和微分计算都换成了有限加法表达的公式 也就是全面离散数学化 非线性计算用了一部分查表 我的目标是NPU 利用CANN算子做优化 这样有俩个好处1.可以最大避免带宽影响大力出奇迹 2.所有结果计算可审计 相同的seed得到的答案完全一致 比较适合高确定性场景
-
@566656661 果然是专家 确实是非浮点运算 但是比您说的这种更极端 我从数学底层把所有乘除和微分计算都换成了有限加法表达的公式 也就是全面离散数学化 非线性计算用了一部分查表 我的目标是NPU 利用CANN算子做优化 这样有俩个好处1.可以最大避免带宽影响大力出奇迹 2.所有结果计算可审计 相同的seed得到的答案完全一致 比较适合高确定性场景
-
@566656661 CANN社区他们内部开发人员都吐槽 别提了 但是没钱买显卡 这是硬伤
-
不求能追上CUDA 只要大概能跑 没有过于忍不了的延迟就行 特别是国内单位 现在都必须全国产 所以这问题早晚得解决
-
,
T terry 将此主题从 Mark专区 移至此处


