ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

llama-bench 测速实操:3 个参数让本地模型 tokens/s 翻倍

2026/8/29 11:42:21 拓冰建站 浏览量
llama-bench 测速实操:3 个参数让本地模型 tokens/s 翻倍 llama-bench 测速实操3 个参数让本地模型 tokens/s 翻倍【免费下载链接】llama.cppLLM inference in C/C项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp同一个 7B Q4_0 模型、同一块 GPU默认配置跑 13 t/s改一个参数就是 131 t/s。差的不是硬件是配置。llama-bench 是 llama.cpp 官方自带的性能测试工具把本地大模型测速这件事标准化了每次测试默认重复 5 次取平均参数还能用逗号一次扫多个值。下面按建基线 → 定位瓶颈 → 调参数 → 回归验证走一遍完整的 llama.cpp 性能测试流程。先跑一遍默认测试结论先行优化之前先用默认测试拿一组可复现的基线数据。编译好项目后直接运行git clone https://gitcode.com/GitHub_Trending/ll/llama.cpp cd llama.cpp make llama-bench ./llama-bench -m models/7B/ggml-model-q4_0.gguf默认会输出两行结果pp512处理 512 token 提示词2368.80±93.24 t/stg128生成 128 token131.42±0.59 t/s。把这两个数字记下来后面所有调优都和它对比。完整参数列表见 llama-bench 使用说明。看懂两个指标PP 和 TG结论先行表里的测试类型直接告诉你瓶颈在哪。⚡PPPrompt Processing模型读题的速度。输入 token 并行计算数值通常上千受算力和内存带宽影响大。TGText Generation答题的速度。一次解码一个 token数值通常几十到两百直接决定对话流畅度。pg两者串联-pg 512,128模拟先读题再答题的真实对话。数值是 5 次重复的平均值加标准差不含分词和采样时间是纯粹的推理速度。读法很简单backend 列显示 CPU 但你有 GPU说明层没卸干净看 -nglPP 低而 TG 正常说明算力吃不满看 -b± 波动大先关后台程序再测。如何设置 GPU 层数 -ngl结论先行-ngl 是最大的单一杠杆它决定模型有多少层卸载到 GPU。模型每生成一个 token本质是一串矩阵乘法把层放到 GPU就是让这些乘法走 GPU 的算力而不是 CPU 的慢内存路径。一行命令可以扫多个取值./llama-bench -m models/7B/ggml-model-q4_0.gguf -ngl 10,20,30,357B 模型实测变化nglpp512t/stg128t/s10373.36 ± 2.2513.45 ± 0.9335全卸载2400.01 ± 7.72131.66 ± 0.49注意中途的表现ngl30 时 TG 只有 40 t/s 左右35 层全部上 GPU 后才跳到 131 t/s约 9.8 倍——剩几层在 CPU 上就会卡住整条流水线半卸载往往比想象中慢。默认 ngl-1 就是全卸载显存装不下时再逐层调低。如何设置线程数 -t结论先行-t 只影响 CPU 部分模型全在 GPU 上时可以忽略。以物理核心数为起点往上扫./llama-bench -m models/7B/ggml-model-q4_0.gguf -p 64 -n 16 -t 4,8,16,328 核机器实测线程数pp64t/stg16t/s423.18 ± 0.0612.22 ± 0.07832.29 ± 1.2116.71 ± 0.661633.52 ± 0.0315.32 ± 0.05超过核心数后收益趋平TG 甚至回落——线程争抢吃掉了提升。这台机器的甜点是 8 线程。如何设置批处理大小 -b结论先行-b 主要影响 PP对 TG 基本无效。批大小决定模型每轮一次处理多少提示词 token长文档场景下批越大算力浪费越少从 128 提到 1024PP 速度约提升 74%。代价是占更多内存爆显存就往下调。./llama-bench -m models/7B/ggml-model-q4_0.gguf -n 0 -p 1024 -b 128,256,512,1024导出测试结果5 种输出格式结论先行默认 Markdown 表给人看自动化就用-o切换。-o md默认表格直接贴进文档-o csv导入 Excel 做透视分析-o json结构化数据含 cpu_info、gpu_info 硬件信息和每轮原始数据 samples_ts方便 Python 画图-o jsonl每条测试一行 JSON适合追加进日志文件-o sql生成建表和 INSERT 语句直接灌进 SQLite 长期追踪字段含义详见 llama-bench 源码。./llama-bench -o json bench.json ./llama-bench -o sql | sqlite3 perf.db回归验证把闭环走完结论先行调优的最后一步是用最优参数重跑第一条命令确认提升并入库留档。-r保持 5 次以上重复默认就是 5别用单次结果下结论对比多个模型时-m传多个路径即可自动做组合测试一次跑完 Q4_K 和 Q8_0 两种量化每次变更都把硬件信息和参数存进数据库下次对比才有参照测速是一个数据闭环基线、扫描、验证。现在就可以把那条默认命令跑起来先拿到你的第一组基线。【免费下载链接】llama.cppLLM inference in C/C项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考