Linux下显卡测试工具和脚本分享
-
为什么着急试用锤哥的脚本,因为我最近遇到了糟心的事情:
我的3060加载Qwen3-VL-8B-Instruct-Q4_K_M.gguf,只要识别图片100%的死机。还没有找到问题所在,我的工作中需要有一个模型能识别看图片......
@joker_chang 我也是因为高强度用的时候gpu 假死卡机 需要从启 所以才测测
-
@joker_chang 加载VL模型看图就死机,这个现象有几个可能的原因,我来帮你排查一下:
1. 先跑显存测试确认硬件没问题
你在用的就是锤哥的显存测试脚本对吧?先跑一轮完整的显存测试(建议跑2次),排除显存有坏块。3060 12G的显存如果之前跑过高负载训练或者矿过,出现坏块的概率是有的。2. Qwen3-VL-8B Q4_K_M的显存占用估算
- 模型本身 ≈ 5.5-6GB
- KV cache(默认8K上下文)≈ 0.5-1GB
- 图片编码(Vision Tower + 图像embedding)≈ 2-3GB
- 总计 ≈ 8-10GB
3060 12G理论够,但如果你同时跑了其他东西(浏览器、IDE等),或者系统的显存占用没清干净,就会刚好爆。
3. 最可能的原因——llama.cpp的mmproj加载问题
Qwen3-VL需要用--mmproj指定视觉投影文件(mmproj-Qwen_Qwen3.6-27B-f16.gguf 或对应的8B版)。如果你的启动参数里没有--mmproj,或者mmproj文件版本不匹配,llama.cpp在处理图片时会crash。建议的启动参数:
llama-server -m Qwen3-VL-8B-Q4_K_M.gguf \ --mmproj mmproj-Qwen_Qwen3-VL-8B-f16.gguf \ -ngl 99 \ --flash-attn \ -c 81924. 分批加载测试
先用纯文本模式(不加--mmproj)跑一下,确认模型本身能稳定运行。如果纯文本不崩溃,那就是视觉部分的问题。
然后不加图片,只发送纯文本请求给llama-server,确认能正常返回。如果这一步也有问题,考虑换驱动版本。5. 驱动版本
如果是Linux,建议NVIDIA驱动 550+ 版本。如果是Windows,确保CUDA 12.x runtime和驱动匹配。建议先走1→3→4的顺序排查,大概率是mmproj配置或显存瓶颈,不太可能是显卡坏了。
-
@joker_chang 我也是因为高强度用的时候gpu 假死卡机 需要从启 所以才测测
@applejuice 我换成【set MODEL_PATH=D:\MyModels\unsloth\gemma-4-12b-it-GGUF\gemma-4-12b-it-Q4_K_M.gguf
set MMProj_PATH=D:\MyModels\unsloth\gemma-4-12b-it-GGUF\mmproj-F32.gguf】,现在不死机了。但是这个模型有点傻,感觉不行
-
@applejuice 我换成【set MODEL_PATH=D:\MyModels\unsloth\gemma-4-12b-it-GGUF\gemma-4-12b-it-Q4_K_M.gguf
set MMProj_PATH=D:\MyModels\unsloth\gemma-4-12b-it-GGUF\mmproj-F32.gguf】,现在不死机了。但是这个模型有点傻,感觉不行
-
,
T terry 取消固定了此主题
-
我这个显卡还OK吧?
daniel@daniel-Default-string:~$ ~/ex/test_env/bin/python3 ~/ex/vram_heavy_test.py
正在启动英伟达显存物理专项扫描...
物理检测到总显存: 47.37 GB
正在对魔改颗粒下发物理交替位元扫雷测试...
-> [步骤1/4] 写入全0000模式并校验...
-> [步骤2/4] 写入全1111模式并校验...
-> [步骤3/4] 发起物理交替位元高频冲刷...
-> [步骤4/4] 正在进行全量显存深度读取校验...
【显存物理体检通过】所有魔改颗粒读写 100% 正确!
daniel@daniel-Default-string:~$ ~/ex/test_env/bin/python3 ~/ex/gpu_hardware_test.py
检测硬件设备: NVIDIA GeForce RTX 4090
当前 CUDA 版本: 13.0
载入巨型浮点矩阵...
矩阵已就绪,发起 1000 轮高频计算轰炸...
-> 已顶过 100/1000 轮轰炸...
-> 已顶过 200/1000 轮轰炸...
-> 已顶过 300/1000 轮轰炸...
-> 已顶过 400/1000 轮轰炸...
-> 已顶过 500/1000 轮轰炸...
-> 已顶过 600/1000 轮轰炸...
-> 已顶过 700/1000 轮轰炸...
-> 已顶过 800/1000 轮轰炸...
-> 已顶过 900/1000 轮轰炸...
-> 已顶过 1000/1000 轮轰炸...
【测试通过】耗时: 104.54 秒! -
我这个显卡还OK吧?
daniel@daniel-Default-string:~$ ~/ex/test_env/bin/python3 ~/ex/vram_heavy_test.py
正在启动英伟达显存物理专项扫描...
物理检测到总显存: 47.37 GB
正在对魔改颗粒下发物理交替位元扫雷测试...
-> [步骤1/4] 写入全0000模式并校验...
-> [步骤2/4] 写入全1111模式并校验...
-> [步骤3/4] 发起物理交替位元高频冲刷...
-> [步骤4/4] 正在进行全量显存深度读取校验...
【显存物理体检通过】所有魔改颗粒读写 100% 正确!
daniel@daniel-Default-string:~$ ~/ex/test_env/bin/python3 ~/ex/gpu_hardware_test.py
检测硬件设备: NVIDIA GeForce RTX 4090
当前 CUDA 版本: 13.0
载入巨型浮点矩阵...
矩阵已就绪,发起 1000 轮高频计算轰炸...
-> 已顶过 100/1000 轮轰炸...
-> 已顶过 200/1000 轮轰炸...
-> 已顶过 300/1000 轮轰炸...
-> 已顶过 400/1000 轮轰炸...
-> 已顶过 500/1000 轮轰炸...
-> 已顶过 600/1000 轮轰炸...
-> 已顶过 700/1000 轮轰炸...
-> 已顶过 800/1000 轮轰炸...
-> 已顶过 900/1000 轮轰炸...
-> 已顶过 1000/1000 轮轰炸...
【测试通过】耗时: 104.54 秒! -
这样算不算极限压力测试
text
100.0% proc'd: 29356 (53855 Gflop/s) errors: 0 temps: 79°C
...
GPU 0: OK
项目 数值 含义
100.0% proc'd 完成 测试跑完了全程,没有中途崩溃
29356 迭代次数 GPU 完成了近 3 万次矩阵运算,每次都会读写大量显存
53855 Gflop/s 算力 约 53.9 TFLOPS,对于 4090 来说属于正常满载水平
errors: 0 完美 没有任何计算错误,说明显存和核心都稳定
temps: 79°C 温度 4090 满载 79°C 非常健康(通常在 70-85°C 都算正常)
GPU 0: OK 最终结论 通过
-
正在启动英伟达大显存/魔改卡物理专项分块扫描...
物理检测到总显存: 31.35 GB
自动开启分块轰炸模式:共分 3 块,每块 8.0 GB 滚动压榨...-> [步骤 1/4] 分块写入全 0000 模式并校验物理放电... [OK] 成功霸占并校验 24 GB 显存全 0 写入。 -> [步骤 2/4] 分块写入全 1111 模式并校验物理充电... [OK] 成功霸占并校验 24 GB 显存全 1 写入。 -> [步骤 3/4] 发起物理交替位元高频冲刷 (0101 棋盘格)... [OK] 成功写入并高频冲刷棋盘格位元模式。 -> [步骤 4/4] 正在进行全量显存深度读取校验... 🎉【显存物理体检通过】这块 31.4GB 的大显存卡通过 100% 逐位读写测试! 两次测试汇总: | 测试 | 内容 | 结果 | |--------------|---------------------------------|-----------| | 显存物理体检 | 24GB 逐位读写(全0/全1/棋盘格) | ✅ 通过 | | GPU 计算轰炸 | 20000x20000 矩阵乘法 x1000 轮 | ✅ 71.6秒 | -
,
W williamlouis 引用了 此主题