当前位置: 首页 > news >正文

llama-bench 实测:扫 4 个参数,定位本地 LLM 基准测试的性能瓶颈

llama-bench 实测:扫 4 个参数,定位本地 LLM 基准测试的性能瓶颈

【免费下载链接】llama.cppLLM inference in C/C++项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp

同事同一张卡、同一个模型跑出了你的两倍速度,问题多半不在硬件,而在参数。llama-bench 是 llama.cpp 官方的性能测试工具,专门做本地 LLM 基准测试:它把每次推理拆成 PP(prompt processing,提示词处理速度)和 TG(text generation,文本生成速度)两个指标,反复跑多轮取均值,让你用同一把尺子比较量化方案、GPU 层分配和线程数。

矩阵乘法是 LLM 推理的性能核心,也是所有参数调优最终要撬动的东西。

第一次部署:先跑一条默认命令拿到基线

工具在仓库tools/llama-bench/目录下,编译后就在 build 目录里:

git clone https://gitcode.com/GitHub_Trending/ll/llama.cpp cd llama.cpp cmake -B build cmake --build build --config Release -j --target llama-bench

然后直接跑:

./build/bin/llama-bench -m models/qwen2.5-7b-q4_k_m.gguf

默认测试是 512 token 提示词 + 128 token 生成,每个配置重复 5 次取均值,输出带标准差:

modelsizebackendngltestt/s
qwen2 7B Q4_K - Medium4.36 GiBCUDA-1pp5127285.68±100.06
qwen2 7B Q4_K - Medium4.36 GiBCUDA-1tg128119.92±0.43

看 tg128 这列就行,那是对话体感的直接反映。标准差大说明机器在飘,先关后台程序再测。注意这个数值不含分词和采样耗时,衡量的是纯推理速度。

生成速度上不去:先查 -ngl,再对比量化版本

扫 -ngl:层数没卸完,速度就卡在 CPU 上

-ngl指定卸载到 GPU 的层数,默认 -1 是全卸。想确认当前分配合不合理,一条命令扫:

./build/bin/llama-bench -m models/qwen2.5-7b-q4_k_m.gguf -ngl 10,20,30,35
nglpp512tg128
10373.3613.45
20472.6521.36
30631.8740.04
352400.01131.66

注意最后两档:34→35 层时 tg 从 71.76 跳到 131.66。数没你想的那么线性——7B 模型 Q4 量化后约 4.7 GiB,加上 KV cache,8G 显存装得下,全量卸载才解锁 GPU 的真实算力。中间档速度上不去,说明瓶颈还在 CPU 上那一截层。

Q4_K_M 对 Q8_0:两个量化版本谁更值得部署

-m可以传多个文件,一次测完:

./build/bin/llama-bench -m models/qwen2.5-7b-q4_k_m.gguf \ -m models/qwen2.5-7b-q8_0.gguf -p 0 -n 128
modelsizetg128
qwen2 7B Q4_K - Medium4.36 GiB131.42±0.59
qwen2 7B Q8_08.32 GiB87.20±0.31

Q8_0 慢约 34%,体积是 2.4 倍,换来的精度提升值不值,取决于你的场景——这是 GGUF 量化性能对比要回答的问题。显存紧张就留 Q4_K_M,追求质量就 Q8_0,拿数据说话。

一条命令扫完整参数矩阵

参数支持逗号分隔多值、区间first-last,以及first-last+step(步长)和first-last*mult(倍数)两种区间写法。多个参数同时给多值时,llama-bench 会跑完所有组合:

./build/bin/llama-bench -m models/qwen2.5-7b-q4_k_m.gguf \ -ngl 8-24+8 -b 128,256,512,1024 -p 1024 -n 0

4 个层数 × 4 个 batch,16 行结果一次出完,比手动一个个试快得多。重复次数用-r控制,默认 5 次;结果飘的时候把它调到 10,同时检查机器温度。

长上下文:-b 和 -t 各管一头

场景换成 RAG 或长文总结,卡点变成提示词处理速度。关掉生成、只测 PP:

./build/bin/llama-bench -m models/qwen2.5-7b-q4_k_m.gguf -n 0 -p 1024 -b 128,256,512,1024
n_batchpp1024
1281436.51±3.66
5122254.45±15.59
10242498.61±13.58

1024 相对 128 提升约 74%;再往上报显存不足就降档,小一档的值照样能当参照。

纯 CPU 推理时,线程数用-t扫:

./build/bin/llama-bench -m models/qwen2.5-7b-q4_k_m.gguf -n 0 -n 16 -p 64 -t 4,8,16,32
threadspp64tg16
423.18±0.0612.22±0.07
832.29±1.2116.71±0.66
1633.52±0.0315.32±0.05
3259.00±1.1116.41±0.79

别急着往上加线程:8 到 16 时 tg 不升反降,内存带宽争用的典型信号。最优值通常贴着物理核数,超线程数翻倍往上加多半白搭。

把基线存下来:四种输出格式一张表收完

-o切换输出格式:

格式命令用途
md-o md(默认)直接贴进文档、PR 描述
csv-o csv喂给 Excel 做透视表
json-o jsonsamples_ts每次重复的原始数据和完整硬件配置,方便程序化分析
sql-o sql直接导入 SQLite 长期追踪
./build/bin/llama-bench -o json -m models/qwen2.5-7b-q4_k_m.gguf > baseline.json ./build/bin/llama-bench -o sql -m models/qwen2.5-7b-q4_k_m.gguf | sqlite3 bench.db

之后每次代码或驱动更新后重跑,sqlite3 bench.db "select test_time, avg_ts from llama_bench"一条查询就能看出回退发生在哪次提交。

把基线 JSON 存进仓库,每次 merge 前跑一次再入库,llama.cpp 的性能迭代就不会悄无声息地漏掉。

【免费下载链接】llama.cppLLM inference in C/C++项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4263439.html

相关文章:

  • AI办公三巨头竞逐,从工作流到Agent落地的全拆解
  • SCUT-HEAD数据集解析与YOLOv8头部检测实战指南
  • Cursor、Harvey验证开源模型垂类应用潜力,AI“普罗米修斯时刻”来临!
  • 端侧模型与自研芯片:从玄戒O100看AI本地化最佳实践
  • LLM生产部署成本全解析:从显存到Token的真实账单
  • 蓝桥杯国赛单片机频率控制器设计:模块化编程与PWM精准控制实战
  • 服务空转问题排查:从现象到根因的完整复盘
  • MATLAB数学建模实战:从核心流程到高效求解
  • 谷歌Pixel 11设备帮助工具解析:Gemini驱动的AI故障排查
  • C++函数模板实战:从PTA题目到工业级泛型编程实现
  • Superpowers 上手指南:三步给你的编码 Agent 装上一套完整 Agentic 技能系统
  • 模糊综合评价模型原理与MATLAB实现:从数学建模到工程实践
  • 从零构建YOLO可用的脸部皮肤病检测数据集:VOC格式标注与实战指南
  • Build Your Own X 完整指南:从零构建数据库、操作系统等 30 个方向的开源教程
  • Python实现分支定界算法:从零构建整数规划求解器
  • React-antd-admin-template 编辑器完整指南:从 Markdown 到富文本
  • 安全与风控大厂Java面试实录:JDK17、Redis分布式锁、Kafka风控事件削峰、Seata分布式事务、Spring AI+RAG智能风控助手,谢飞机三轮被虐哭(附完整答案解析)
  • SVM图像分类实战:从HOG特征提取到模型调优全解析
  • Java单机服务轻量级本地缓存实现:ConcurrentHashMap与定时清理策略
  • Wider Person数据集解析与YOLOv8密集行人检测实战指南
  • openapi-backend 5 分钟上手:用 OpenAPI 规范起 mock 服务,前端联调不用排队等接口
  • 大脑+小脑协同:人形机器人具身智能架构设计与仿真实现
  • 多语言推理迁移难?RP-OPSD在线自蒸馏训练范式详解
  • FancyZones 窗口管理完整指南:5 步重建你的多屏工作流
  • 职业院校技能大赛特色赛,获奖很容易
  • 基于TensorFlow 2.5的SRGAN图像超分辨率实战:从原理到自定义训练
  • SQLAlchemy+Alembic实战:DownloaderForReddit数据库模型设计与自动迁移机制详解
  • YOLO农业质检数据集实战:大豆种子好坏检测与模型训练全流程
  • PAST-Bench:个人智能体自我改进能力的评测基准设计与实践
  • 基于OpenCV的多角度多尺度模板匹配算法:从原理到工程实践