关于LLM大模型单机推理速度实测及改进思考

单机实测LLM模型推理速度,采用ollama运行qwen3 30b-a3b模型,由于激活参数仅3b,所以CPU运行速度尚可接受。

采用以下硬件测试:
CPU:i5-12400(6个P核、0个E核)
RAM:DDR4-2400MT/s
LLM模型:QWEN3-30b-a3b_Q4_K_M

采用两条DDR4-16G内存组成32G双通道RAM,由于内存条型号规格不同,导致实际运行频率跑不满,只能2400MT/S频率运行,实测带宽约30GB/s。
理论上CPU浮点算力为,全核睿频≈4.0 GHz,6个P核,支持AVX2和FMA指令集,单精度 FP32:6 × 4.0 × 16 = 384 GFLOPS。

实测:输入100tokens序列,prompt速度达到41 tokens/s;decode速度达到12 tokens/s。

通过询问deepseek-v3和kimi-K2确认LLM模型推理,在prompt阶段瓶颈在算力,decode阶段瓶颈在内存带宽。

prompt阶段:以单机batch size 为 1 的推理场景为例,prompt 阶段确实以算力为主,可以一次性将全部待推理的token输入模型进行计算,存取LLM参数的压力反而更小,矩阵乘的算术强度(FLOPs/Byte)高于带宽压力,更多局限于CPU算力。

decode阶段:除非模型特别小,几乎总是 memory-bound。每次只产生 1 个 token,计算量极低(一次向量×矩阵乘 + 一次 Softmax),算术强度小。但需要把整层权重和 KV cache 读一遍,写回新的 KV,对带宽的需求远高于算力。

内存带宽理论计算:
DDR4-2400MT/s–理论带宽:38.4GB/s—实测带宽:29.6GB/s(效率80%);
DDR5-4800MT/s–理论带宽:76.8GB/s—估算带宽:60GB/s(效率80%);
DDR5-6400MT/s–理论带宽:102.4GB/s–估算带宽:80GB/s(效率80%)。

潜在提升方案(理论计算)

CPU升级:使用8核心P核,如果CPU单核心的AVX、FMA单元宽度不变,那么理论算力可以提升33%(6核–>8核),估计600 GFLOP/s;
RAM升级:更换DDR5-6400MT/s内存,使得内存带宽大幅度提高2.6倍(38.4GB/s–>102.4GB/s),估计80GB/s带宽;

估计通过更换CPU可以提高prompt速度到55 tokens/s,更换DDR5提升RAM速度可以提高decode到31.2 tokens/s。

英伟达5090显卡显卡推理

如果采用具有32G显存的5090显卡,单精度算力约为 120 TFLOPs(不考虑官方的AI算力2375 AI TOPS@int4?),显存带宽1792 GB/s。
算力约为CPU的200倍,带宽约为18倍,实际提升估计可以达到18倍(主要考虑decode),prompt达到2000 t/s,decode达到 216 t/s。

实测5090D运行QwQ 32B_Q4模型,prompt速度大约2800 t/s,decode速度大约 60 t/s,感觉没有跑满。不知道是Ollama的问题,还是OPEN webUI设置不对。
反向推算5090d的算力大约 180 T/s,带宽大约 1020 GB/s。

洋垃圾一体机部署方案

有提供一体机服务的商家,用洋垃圾的AMD epyc 7K62双路服务器,配合epyc的8通道内存能力,插满8条DDR4-3200MT/s的内存,获得大约双路200G/s的内存带宽。按照DeepSeek R1大模型671B激活37B的情况下, 以int4量化以后,大约19 G/token的参数读取带宽,通过双路共计约400 G/s带宽,实现约20 token/s的输出速度。

实际上,7K62价格约¥2000×2,加上主板¥3000、电源¥500、机箱¥300、SSD 1T ¥600,内存32G×16条¥200×16=¥3200元,总计大约1w1的成本,配上一张3090显卡¥6500,共计28000块的硬件成本,实现最低成本的DeepSeek R1满血版部署。按照3-4w价格进行销售,既满足中小企业私有化部署满血版AI的需求,又具有丰厚的利润空间。