R9700 32GB 跑 Qwen3.8-27B:llama.cpp Vulkan + MTP 实测与踩坑记录
-
最近在一张 AMD Radeon AI PRO R9700 32GB 上折腾 Qwen3.8-27B,前后试了 ROCm 下的 SGLang、vLLM,以及 llama.cpp 的 HIP / Vulkan 路线。
最后这台机器上比较稳定、速度也比较理想的方案,是:
llama.cpp + Mesa RADV Vulkan + Q4_K_M + MTP + 128K Context
先说结论:如果手里已经有 R9700,现阶段我更建议优先试 llama.cpp Vulkan。至少在我这套环境里,它比我之前折腾的 ROCm 路线省心得多。
下面的数据只代表这台机器、当前驱动和对应版本下的结果,不建议直接外推到所有 R9700 或所有模型。全程使用Gemini 3.7 flash 配置。
1. 测试环境

硬件大致如下:- 华南金牌 X99-TF
- Xeon E5 v4 2697A
- 128GB DDR4
- AMD Radeon AI PRO R9700 32GB
- PCIe 3.0 x16
- 机器里同时还有一张 NVIDIA 4080s 32G
软件环境:
- Ubuntu 24.04
- Mesa 25.2.x / RADV Vulkan
- llama.cpp Vulkan 构建
- Qwen3.8-27B Q4_K_M
- 视觉模型使用对应的 F16 mmproj
BIOS 里开启:
- Above 4G Decoding
- Resizable BAR
2. 目前的实测结果

场景 实测 长文本 Prefill,约 2322 tokens 730.89 t/s 非思考模式,代码生成 53.10 t/s 思考模式,数学证明 44.81 t/s 视觉问答生成 35.80 t/s 视觉问答 TTFT 约 927 ms Context 128K 运行时显存占用 约 20.3 GiB 其中 53 t/s 并不是所有问题都能稳定达到。
Qwen3.8 的 MTP 对任务类型比较敏感。代码、JSON、工具调用这类下一 token 比较容易预测的任务,接受率高,速度会明显上去;开放式写作、视觉问答这类任务,接受率下降,速度也会跟着掉。
我这边两个比较典型的数据:
- 代码生成:MTP acceptance 约 68.7%,53.10 t/s
- 数学证明:MTP acceptance 约 54.9%,44.81 t/s
所以以后看别人贴 R9700 / Qwen3.8 的速度,最好先看他测的是什么题、有没有开 MTP,而不是只看一个 t/s。
3. 我现在用的关键参数
核心启动参数大概是下面这样:
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.json ./llama-server \ --model /path/to/Qwen3.8-27B-Q4_K_M.gguf \ --mmproj /path/to/mmproj-Qwen3.8-27B-F16.gguf \ --ctx-size 131072 \ --cache-type-k q4_0 \ --cache-type-v q4_0 \ --n-gpu-layers 999 \ --no-mmap \ --spec-type draft-mtp \ --spec-draft-n-max 5 \ --cache-ram 32768 \ --flash-attn on \ --parallel 1 \ --jinja几个我觉得比较关键的地方。
① 双显卡环境最好显式指定 Vulkan ICD
我的机器同时有 AMD 和 NVIDIA 卡。
如果直接让 Vulkan 自己探测,偶尔会碰到加载错 ICD 的问题。显式指定:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.json之后省事很多。
如果是纯 AMD 单卡机器,未必需要这么做。
② 128K 下 KV Cache 用 q4_0
我现在是:
--cache-type-k q4_0 --cache-type-v q4_0这样 128K Context 可以装下,整套运行时显存大约 20.3 GiB,还能留出十来 GB 余量。
如果 KV Cache 直接上高精度,32GB 显存会紧张很多。
③ MTP 我这里
n-max=5比较合适--spec-type draft-mtp --spec-draft-n-max 5我试过把步数继续往上加,但不是越大越快。
草稿猜错以后需要重新验证,步数过大反而可能拖慢整体 Decode。至少我这组测试里,5 是比较合适的点。
④ Prompt Cache 别留太小
长对话下,如果
--cache-ram太小,日志里可能看到 cache skipping,后续请求又重新做 Prefill。我最后给到:
--cache-ram 32768这主要吃系统内存,不是显存。机器内存够的话可以适当放大。
4. ReBAR 值得检查
这是这次折腾里我觉得最值得单独说的一点。
最开始这台 X99 平台没有把 ReBAR 配好,长 Prompt 的 Prefill 大约在 450 t/s 左右。
BIOS 开启:
- Above 4G Decoding
- Resizable BAR
并确认系统里 R9700 的 BAR 映射正常后,同一套环境下长文本 Prefill 测到 730.89 t/s。
从这组结果看,提升大约 62%。
不过这里我更愿意把它理解成“这台机器上的实测现象”,而不是说所有 R9700 开 ReBAR 都一定能涨 60%。
老平台、PCIe 拓扑、驱动版本都可能影响结果。
如果 Prefill 明显偏慢,我建议先查 ReBAR,而不是一上来就怀疑模型或 llama.cpp。
5. Vulkan、SGLang、vLLM,我最后为什么留 Vulkan
我前面也折腾过 ROCm。
当时大概是这个情况:
路线 我这台机器上的情况 SGLang / ROCm 可以跑,但大上下文下 Decode 大约 11 t/s,空闲功耗表现也不理想 vLLM / ROCm 128K 需要继续调 KV Cache 和请求限制,当时 Decode 大约 7~8 t/s llama.cpp HIP 可以用,但我测试时稳定性和 MTP 表现不如 Vulkan llama.cpp Vulkan 当前最省事,MTP、Flash Attention、128K、mmproj 都能正常用 这里要特别说明:
这不是严格的同权重、同量化、同版本横向 benchmark。
SGLang / vLLM 当时使用的权重格式和运行条件并不完全一样,所以这些数字只能说明“我最后为什么选 Vulkan”,不能拿来证明 Vulkan 理论上一定比 ROCm 快多少。
后面 ROCm、vLLM、SGLang 对 RDNA4 的支持继续完善以后,结果完全可能变化。
6. 几个比较容易踩的坑
ReBAR 没开
表现:
- 长 Prompt Prefill 偏慢
- 视觉输入响应也可能不理想
先检查 BIOS 的 Above 4G Decoding 和 ReBAR。
用几十个 token 测 Prefill
短 Prompt 固定开销占比太高,数据没什么参考意义。
我现在至少用 2000 tokens 左右的输入来观察 Prefill。
MTP 步数一味往上加
n-max=8、10不一定比 5 快。接受率掉下来后,可能越调越慢。
128K 还坚持高精度 KV Cache
32GB 显存很容易被吃满。
如果目标就是单请求 128K,q4_0 KV Cache 是一个比较实用的取舍。
双卡机器不指定 Vulkan ICD
AMD + NVIDIA 混插时尤其值得注意。
遇到 Vulkan 启动异常,可以先确认实际加载的是不是 RADV。
7. 关于老 X99 / E5 v4 会不会拖后腿
这也是我一开始比较担心的。
从目前的监控看,Decode 阶段 GPU 利用率很高,CPU 占用并不高。至少在我这套单请求测试里,E5 v4 还没有表现成明显瓶颈。
这不代表 CPU 完全不重要。
高并发、大量预处理、复杂 Agent 工作流或者频繁 CPU
GPU 数据交换时,老平台还是可能影响整体体验。但如果只是单用户本地 LLM 推理,我暂时没有因为 X99 去换平台的打算。
8. 目前还没测的东西
这篇主要是单实例、单请求测试。
还没有认真做:
--parallel 4之类的多并发压力测试- 128K 下长时间并发稳定性
- 接入Hermes的测试
- 不同 GGUF 量化之间的质量和速度对比
所以现在更适合把它看成一份 R9700 + llama.cpp Vulkan 的实机配置记录,不是完整 benchmark。
结论
如果是 R9700 32GB + Qwen3.8-27B,我目前会推荐:
Q4_K_M + llama.cpp Vulkan + MTP + q4_0 KV Cache
我这台机器上可以稳定跑 128K,上下文显存余量也比较充足;普通生成大约在 40~50 t/s,代码这类 MTP 接受率高的任务可以到 50 t/s 以上。
另外,如果 Prefill 明显低于预期,建议优先检查 Above 4G Decoding / ReBAR。
:::
-
最近在一张 AMD Radeon AI PRO R9700 32GB 上折腾 Qwen3.8-27B,前后试了 ROCm 下的 SGLang、vLLM,以及 llama.cpp 的 HIP / Vulkan 路线。
最后这台机器上比较稳定、速度也比较理想的方案,是:
llama.cpp + Mesa RADV Vulkan + Q4_K_M + MTP + 128K Context
先说结论:如果手里已经有 R9700,现阶段我更建议优先试 llama.cpp Vulkan。至少在我这套环境里,它比我之前折腾的 ROCm 路线省心得多。
下面的数据只代表这台机器、当前驱动和对应版本下的结果,不建议直接外推到所有 R9700 或所有模型。全程使用Gemini 3.7 flash 配置。
1. 测试环境

硬件大致如下:- 华南金牌 X99-TF
- Xeon E5 v4 2697A
- 128GB DDR4
- AMD Radeon AI PRO R9700 32GB
- PCIe 3.0 x16
- 机器里同时还有一张 NVIDIA 4080s 32G
软件环境:
- Ubuntu 24.04
- Mesa 25.2.x / RADV Vulkan
- llama.cpp Vulkan 构建
- Qwen3.8-27B Q4_K_M
- 视觉模型使用对应的 F16 mmproj
BIOS 里开启:
- Above 4G Decoding
- Resizable BAR
2. 目前的实测结果

场景 实测 长文本 Prefill,约 2322 tokens 730.89 t/s 非思考模式,代码生成 53.10 t/s 思考模式,数学证明 44.81 t/s 视觉问答生成 35.80 t/s 视觉问答 TTFT 约 927 ms Context 128K 运行时显存占用 约 20.3 GiB 其中 53 t/s 并不是所有问题都能稳定达到。
Qwen3.8 的 MTP 对任务类型比较敏感。代码、JSON、工具调用这类下一 token 比较容易预测的任务,接受率高,速度会明显上去;开放式写作、视觉问答这类任务,接受率下降,速度也会跟着掉。
我这边两个比较典型的数据:
- 代码生成:MTP acceptance 约 68.7%,53.10 t/s
- 数学证明:MTP acceptance 约 54.9%,44.81 t/s
所以以后看别人贴 R9700 / Qwen3.8 的速度,最好先看他测的是什么题、有没有开 MTP,而不是只看一个 t/s。
3. 我现在用的关键参数
核心启动参数大概是下面这样:
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.json ./llama-server \ --model /path/to/Qwen3.8-27B-Q4_K_M.gguf \ --mmproj /path/to/mmproj-Qwen3.8-27B-F16.gguf \ --ctx-size 131072 \ --cache-type-k q4_0 \ --cache-type-v q4_0 \ --n-gpu-layers 999 \ --no-mmap \ --spec-type draft-mtp \ --spec-draft-n-max 5 \ --cache-ram 32768 \ --flash-attn on \ --parallel 1 \ --jinja几个我觉得比较关键的地方。
① 双显卡环境最好显式指定 Vulkan ICD
我的机器同时有 AMD 和 NVIDIA 卡。
如果直接让 Vulkan 自己探测,偶尔会碰到加载错 ICD 的问题。显式指定:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.json之后省事很多。
如果是纯 AMD 单卡机器,未必需要这么做。
② 128K 下 KV Cache 用 q4_0
我现在是:
--cache-type-k q4_0 --cache-type-v q4_0这样 128K Context 可以装下,整套运行时显存大约 20.3 GiB,还能留出十来 GB 余量。
如果 KV Cache 直接上高精度,32GB 显存会紧张很多。
③ MTP 我这里
n-max=5比较合适--spec-type draft-mtp --spec-draft-n-max 5我试过把步数继续往上加,但不是越大越快。
草稿猜错以后需要重新验证,步数过大反而可能拖慢整体 Decode。至少我这组测试里,5 是比较合适的点。
④ Prompt Cache 别留太小
长对话下,如果
--cache-ram太小,日志里可能看到 cache skipping,后续请求又重新做 Prefill。我最后给到:
--cache-ram 32768这主要吃系统内存,不是显存。机器内存够的话可以适当放大。
4. ReBAR 值得检查
这是这次折腾里我觉得最值得单独说的一点。
最开始这台 X99 平台没有把 ReBAR 配好,长 Prompt 的 Prefill 大约在 450 t/s 左右。
BIOS 开启:
- Above 4G Decoding
- Resizable BAR
并确认系统里 R9700 的 BAR 映射正常后,同一套环境下长文本 Prefill 测到 730.89 t/s。
从这组结果看,提升大约 62%。
不过这里我更愿意把它理解成“这台机器上的实测现象”,而不是说所有 R9700 开 ReBAR 都一定能涨 60%。
老平台、PCIe 拓扑、驱动版本都可能影响结果。
如果 Prefill 明显偏慢,我建议先查 ReBAR,而不是一上来就怀疑模型或 llama.cpp。
5. Vulkan、SGLang、vLLM,我最后为什么留 Vulkan
我前面也折腾过 ROCm。
当时大概是这个情况:
路线 我这台机器上的情况 SGLang / ROCm 可以跑,但大上下文下 Decode 大约 11 t/s,空闲功耗表现也不理想 vLLM / ROCm 128K 需要继续调 KV Cache 和请求限制,当时 Decode 大约 7~8 t/s llama.cpp HIP 可以用,但我测试时稳定性和 MTP 表现不如 Vulkan llama.cpp Vulkan 当前最省事,MTP、Flash Attention、128K、mmproj 都能正常用 这里要特别说明:
这不是严格的同权重、同量化、同版本横向 benchmark。
SGLang / vLLM 当时使用的权重格式和运行条件并不完全一样,所以这些数字只能说明“我最后为什么选 Vulkan”,不能拿来证明 Vulkan 理论上一定比 ROCm 快多少。
后面 ROCm、vLLM、SGLang 对 RDNA4 的支持继续完善以后,结果完全可能变化。
6. 几个比较容易踩的坑
ReBAR 没开
表现:
- 长 Prompt Prefill 偏慢
- 视觉输入响应也可能不理想
先检查 BIOS 的 Above 4G Decoding 和 ReBAR。
用几十个 token 测 Prefill
短 Prompt 固定开销占比太高,数据没什么参考意义。
我现在至少用 2000 tokens 左右的输入来观察 Prefill。
MTP 步数一味往上加
n-max=8、10不一定比 5 快。接受率掉下来后,可能越调越慢。
128K 还坚持高精度 KV Cache
32GB 显存很容易被吃满。
如果目标就是单请求 128K,q4_0 KV Cache 是一个比较实用的取舍。
双卡机器不指定 Vulkan ICD
AMD + NVIDIA 混插时尤其值得注意。
遇到 Vulkan 启动异常,可以先确认实际加载的是不是 RADV。
7. 关于老 X99 / E5 v4 会不会拖后腿
这也是我一开始比较担心的。
从目前的监控看,Decode 阶段 GPU 利用率很高,CPU 占用并不高。至少在我这套单请求测试里,E5 v4 还没有表现成明显瓶颈。
这不代表 CPU 完全不重要。
高并发、大量预处理、复杂 Agent 工作流或者频繁 CPU
GPU 数据交换时,老平台还是可能影响整体体验。但如果只是单用户本地 LLM 推理,我暂时没有因为 X99 去换平台的打算。
8. 目前还没测的东西
这篇主要是单实例、单请求测试。
还没有认真做:
--parallel 4之类的多并发压力测试- 128K 下长时间并发稳定性
- 接入Hermes的测试
- 不同 GGUF 量化之间的质量和速度对比
所以现在更适合把它看成一份 R9700 + llama.cpp Vulkan 的实机配置记录,不是完整 benchmark。
结论
如果是 R9700 32GB + Qwen3.8-27B,我目前会推荐:
Q4_K_M + llama.cpp Vulkan + MTP + q4_0 KV Cache
我这台机器上可以稳定跑 128K,上下文显存余量也比较充足;普通生成大约在 40~50 t/s,代码这类 MTP 接受率高的任务可以到 50 t/s 以上。
另外,如果 Prefill 明显低于预期,建议优先检查 Above 4G Decoding / ReBAR。
:::
@PhoenixRise2026 谢谢分享, 请问电脑内存的大小和速度影响大么?
-
如果模型能基本完整放进显存,内存速度影响通常不大,Decode 阶段主要还是看显卡和显存带宽。
内存容量更重要一些,主要影响模型加载、系统文件缓存、Prompt Cache,以及显存不够时的 CPU offload。内存太小会导致加载困难、频繁换页,甚至直接 OOM。
如果模型需要大量 CPU/GPU 混合推理,那内存带宽就会明显重要起来,情况会不一样。
-
,
T terry 固定了此主题
-
@exllm 谢谢提醒,补一个q8_0的测试结果

-
@phoenixrise2026
我也是 R9700,但是CPU是AMD Ryzen 9700X,Mesa RADV Vulkan升级到26.1.7后,llama-bench测试Qwen3.8-27B-UD-Q4_K_XL,prefill比25.2.X版本有明显提升,decode比ROCm快。prompt size Vulkan 旧驱动 25.2.8 Vulkan 新驱动 26.1.7 ROCm pp512 881.8 1014.2 (+15.0%) 1206.5 pp2048 870.1 1004.4(+15.4%) 1182.2 pp8192 825.7 953.2 (+15.4%) 1124.1 tg128 28.16 28.41 (+0.9%) 26.43 另外好奇的是,你的4080s 32GB是魔改卡吗?为什么不是涡轮散热器?
-
,系统 取消固定了此主题
-
@phoenixrise2026
我也是 R9700,但是CPU是AMD Ryzen 9700X,Mesa RADV Vulkan升级到26.1.7后,llama-bench测试Qwen3.8-27B-UD-Q4_K_XL,prefill比25.2.X版本有明显提升,decode比ROCm快。prompt size Vulkan 旧驱动 25.2.8 Vulkan 新驱动 26.1.7 ROCm pp512 881.8 1014.2 (+15.0%) 1206.5 pp2048 870.1 1004.4(+15.4%) 1182.2 pp8192 825.7 953.2 (+15.4%) 1124.1 tg128 28.16 28.41 (+0.9%) 26.43 另外好奇的是,你的4080s 32GB是魔改卡吗?为什么不是涡轮散热器?
@wml-ai 是32G 魔改,B站上一个UP主卖的三风扇版。
-
@AGI 谢谢大神指导,运行效果确实不错

-
@phoenixrise2026 ,谢谢分享。

请问R9700显卡核心温度如何 显存温度如何?我有一张ASROCK 的AI PRO R9700 涡轮卡,跑在pve里的lxc容器上,跑这个
Qwen3.8-27B-UD-Q4_K_XL模型推理时显存温度经常上到80摄氏度以上。启动脚本
/root/llama.cpp/build/bin/llama-server \ --model /root/models/Qwen3.8-27B-GGUF/Qwen3.8-27B-UD-Q4_K_XL.gguf \ --host 0.0.0.0 \ --port 8000 \ --ctx-size 262144 \ --cache-type-k q8_0 \ --cache-type-v q8_0 \ --flash-attn on \ --n-gpu-layers 999 \ --spec-type draft-mtp \ --spec-draft-n-max 2 \ --parallel 1 \ --jinja \ --chat-template-kwargs '{"reasoning_effort":"low"}'温度监控
PVE HOST 硬件温度监控 2026-08-21 09:27:13 ======================================================= --- CPU --- Tctl (控制温度): 68.1°C Tccd1 (CCD1 实际温度): 68.4°C --- GPU (AMD) --- 检测到的显示设备 (PCI地址 : 型号): 0000:03:00.0 : Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [Radeon AI PRO R9700] (rev c0) 0000:77:00.0 : Advanced Micro Devices, Inc. [AMD/ATI] Granite Ridge [Radeon Graphics] (rev c6) [0000:03:00.0 Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [Radeon AI PRO R9700] (rev c0)] temp1_input (edge): 63.0°C temp2_input (junction): 80.0°C temp3_input (mem): 74.0°C [0000:77:00.0 Advanced Micro Devices, Inc. [AMD/ATI] Granite Ridge [Radeon Graphics] (rev c6)] temp1_input (edge): 42.0°C --- Memory --- [spd5118-i2c-1-51] 33.8°C -
,S skyrocker 引用了 此主题
-
@phoenixrise2026 ,谢谢分享。

请问R9700显卡核心温度如何 显存温度如何?我有一张ASROCK 的AI PRO R9700 涡轮卡,跑在pve里的lxc容器上,跑这个
Qwen3.8-27B-UD-Q4_K_XL模型推理时显存温度经常上到80摄氏度以上。启动脚本
/root/llama.cpp/build/bin/llama-server \ --model /root/models/Qwen3.8-27B-GGUF/Qwen3.8-27B-UD-Q4_K_XL.gguf \ --host 0.0.0.0 \ --port 8000 \ --ctx-size 262144 \ --cache-type-k q8_0 \ --cache-type-v q8_0 \ --flash-attn on \ --n-gpu-layers 999 \ --spec-type draft-mtp \ --spec-draft-n-max 2 \ --parallel 1 \ --jinja \ --chat-template-kwargs '{"reasoning_effort":"low"}'温度监控
PVE HOST 硬件温度监控 2026-08-21 09:27:13 ======================================================= --- CPU --- Tctl (控制温度): 68.1°C Tccd1 (CCD1 实际温度): 68.4°C --- GPU (AMD) --- 检测到的显示设备 (PCI地址 : 型号): 0000:03:00.0 : Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [Radeon AI PRO R9700] (rev c0) 0000:77:00.0 : Advanced Micro Devices, Inc. [AMD/ATI] Granite Ridge [Radeon Graphics] (rev c6) [0000:03:00.0 Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [Radeon AI PRO R9700] (rev c0)] temp1_input (edge): 63.0°C temp2_input (junction): 80.0°C temp3_input (mem): 74.0°C [0000:77:00.0 Advanced Micro Devices, Inc. [AMD/ATI] Granite Ridge [Radeon Graphics] (rev c6)] temp1_input (edge): 42.0°C --- Memory --- [spd5118-i2c-1-51] 33.8°C@Leaner-Financial 后来继续排查了一下 R9700 的风扇策略,确实发现原厂默认设置比较保守,所以我又让 AI 帮忙重新调了一条风扇曲线。
修改前:原厂自动风扇策略
R9700 默认由 SMU/固件自动控制风扇,并不会直接显示一条完整的 5 点曲线。
我这张卡实测到的默认参数大致是:
- 低温/空闲:约 20% PWM / 890 RPM
- Fan Target Temperature:85°C
- Acoustic Target:2100 RPM
- Acoustic Limit:5000 RPM
也就是说,默认策略更倾向于安静,低温时风扇转速压得比较低,温度上去以后再由 SMU 自动提高。
修改后:自定义风扇曲线
目前改成:
25°C → 25% 50°C → 30% 70°C → 45% 85°C → 70% 100°C → 100%这条曲线相比原厂明显更积极一些,尤其是 70°C 以后会更早提高风扇转速,主要考虑长时间跑 LLM / ComfyUI 时显存和 Hotspot 的散热。
另外我也实际测试了一下手动控制是否真的生效:
35% PWM → 实际 PWM:89 / 255 ≈ 34.9% → 风扇转速:1189 RPM所以目前可以确认,R9700 在 Ubuntu 下通过:
/sys/class/drm/card*/device/gpu_od/fan_ctrl/fan_curve可以正常控制风扇曲线。
需要注意的是,我这里还需要在 GRUB 中启用 AMDGPU OverDrive:
amdgpu.ppfeaturemask=0xfff7ffff启用以后
gpu_od/fan_ctrl相关接口才出现。目前这条曲线只是我先采用的基线,后面准备根据长时间满载时的 edge / junction / mem 温度和风扇 RPM 再继续微调。
-
注意。这需要大内存。实测 32G小内存配置失败。最少需要 64G内存。
-
差不多,我也测了一下单卡r9700
════ 单卡 Qwen3.8-27B Q4_K_M 速度实测 ════测试配置(单卡卡0,HIP_VISIBLE_DEVICES=0):
· 引擎:llama.cpp build-714(commit 70adb1b,ROCm 7.14,链接 7.14 库)
· 模型:Qwen3.8-27B-UD-Q4_K_M.gguf(Q4_K_M 量化,16G)
· MTP 草稿:mtp-Qwen3.8-27B-Q4_0.gguf(--spec-draft-n-max 4)
· 视觉:mmproj-Qwen3.8-27B-Q8_0.gguf → 支持图文
· 其他:-fa on、-ngl 999、-np 1实测矩阵(生成 300 token,long-form 中文 / 确定性数学):
上下文 KV量化 MTP 开放内容t/s 数学t/s MTP接受率
128k f16 ON 39.12 58.18 0.40 / 0.72
128k f16 OFF 29.33 29.19 —
128k q8_0 ON 43.42 59.80 0.47 / 0.75
256k q8_0 ON 40.78 59.88 0.44 / 0.75各参数影响(控制变量):
- MTP 开关(128k f16):开 39 vs 关 29 → MTP 帮约 +34%;数学题因接受率 0.72-0.75 能拉到 58-60(+100%)
- KV 量化(128k MTP on):f16 39.1 vs q8_0 43.4 → q8_0 快约 10%(KV 传输省带宽),且显存更省
- 上下文(q8_0 MTP on):256k 40.8 vs 128k 43.4 → 256k 略慢约 6%(更大 KV 注意力),但它放得下是重点
- 显存:128k f16 ≈ 28.8G;256k q8_0 ≈ 31.2G(贴边,只余 ~3G)——256k 必须用 q8_0 KV,f16 在单卡 31G 放不下(约需 40G+,会 OOM)
- prompt 处理:数学 pp 到 80-102 t/s(确定性短prompt 快)
-
这个结果其实符合带宽账,不用郁闷:Q8 的权重字节数约是 Q4 的 1.7 倍(27B 的 Q8_0 ≈ 27G vs Q4_K_M 16G),双卡带宽 ×2,27G / 1280GB/s ≈ 21ms vs 16G / 640GB/s ≈ 25ms——纯带宽算下来双 Q8 还该比单 Q4 快 15-20%,你测到"差不多"说明双卡同步/层间开销把这点理论增益吃掉了,正常现象。
双卡上 Q8 的核心意义其实是容量不是速度:Q8 权重 27G,单卡 32G 再挂 KV + MTP 草稿 + mmproj 必爆,双卡是为了装得下,速度跟单卡 Q4 持平已经是赚的。想确认双卡没白跑:看两张卡的利用率/功耗是不是都在动,别是单卡在干活。
另外你那组数据里 MTP 收益 +34% 很典型(数学题接受率 0.72-0.75 拉到 58-60),双卡别忘了也挂 --spec-type draft-mtp,否则 Q8 大权重没有投机解码会更难受。
-
r9700这个涡轮转速上去之后也很吵吗 是不是所有涡轮都一样吵
-
r9700这个涡轮转速上去之后也很吵吗 是不是所有涡轮都一样吵
@zhenyu-huang r9700全速的声音还是比较明显,但不是哪种高频啸叫。台式机放地上,不戴耳机也不会让人觉得烦躁。
-
r9700这个涡轮转速上去之后也很吵吗 是不是所有涡轮都一样吵
@zhenyu-huang 是挺吵的,但是没4090魔改那么大,我把电压从300调到了250,牺牲大概15%性能,现在还算比较安静了
-
@Leaner-Financial 后来继续排查了一下 R9700 的风扇策略,确实发现原厂默认设置比较保守,所以我又让 AI 帮忙重新调了一条风扇曲线。
修改前:原厂自动风扇策略
R9700 默认由 SMU/固件自动控制风扇,并不会直接显示一条完整的 5 点曲线。
我这张卡实测到的默认参数大致是:
- 低温/空闲:约 20% PWM / 890 RPM
- Fan Target Temperature:85°C
- Acoustic Target:2100 RPM
- Acoustic Limit:5000 RPM
也就是说,默认策略更倾向于安静,低温时风扇转速压得比较低,温度上去以后再由 SMU 自动提高。
修改后:自定义风扇曲线
目前改成:
25°C → 25% 50°C → 30% 70°C → 45% 85°C → 70% 100°C → 100%这条曲线相比原厂明显更积极一些,尤其是 70°C 以后会更早提高风扇转速,主要考虑长时间跑 LLM / ComfyUI 时显存和 Hotspot 的散热。
另外我也实际测试了一下手动控制是否真的生效:
35% PWM → 实际 PWM:89 / 255 ≈ 34.9% → 风扇转速:1189 RPM所以目前可以确认,R9700 在 Ubuntu 下通过:
/sys/class/drm/card*/device/gpu_od/fan_ctrl/fan_curve可以正常控制风扇曲线。
需要注意的是,我这里还需要在 GRUB 中启用 AMDGPU OverDrive:
amdgpu.ppfeaturemask=0xfff7ffff启用以后
gpu_od/fan_ctrl相关接口才出现。目前这条曲线只是我先采用的基线,后面准备根据长时间满载时的 edge / junction / mem 温度和风扇 RPM 再继续微调。
@PhoenixRise2026 谢谢回复 我已经按你的设置调高了风扇的转速策略。显卡温度降到80摄氏度以下了。忘了说了我之前就已经将显卡功耗上限设置为250w了,这次也没动。
======================================================= PVE HOST 硬件温度监控 2026-08-28 17:03:22 ======================================================= --- CPU --- Tctl (控制温度): 68.0°C Tccd1 (CCD1 实际温度): 68.9°C --- GPU (AMD) --- 检测到的显示设备 (PCI地址 : 型号): 0000:03:00.0 : Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [Radeon AI PRO R9700] (rev c0) 0000:77:00.0 : Advanced Micro Devices, Inc. [AMD/ATI] Granite Ridge [Radeon Graphics] (rev c6) [0000:03:00.0 Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [Radeon AI PRO R9700] (rev c0)] temp1_input (edge): 58.0°C temp2_input (junction): 73.0°C temp3_input (mem): 76.0°C [0000:77:00.0 Advanced Micro Devices, Inc. [AMD/ATI] Granite Ridge [Radeon Graphics] (rev c6)] temp1_input (edge): 43.0°C --- Memory --- [spd5118-i2c-1-51] 35.2°C --- System Temp (主板/机箱温度) --- Thermistor 15 [nct6687-isa-0a20]: 41.5°C Thermistor 1 [nct6687-isa-0a20]: 45.5°C Thermistor 15 [nct6687-isa-0a20]: 41.5°C