LOADING

加载过慢请开启缓存 浏览器默认开启

780M核显(7840HS)通过llama.cpp部署QwQ-32b

780M核显(7840HS)通过llama.cpp部署QwQ-32b

统一测试prompt

帮我写一份stable diffusion正向提示词,描绘一个汉服美女

测试模型

qwq-32b-q4_k_m.gguf

测试平台

  • Windows 11 专业工作站版 24H2
  • AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
  • 2*24G ddr5 5600mhz,合计48GB,BIOS中分配了8GB给核显

测试过程

vulkan

构建版本

llama-b4837-bin-win-vulkan-x64

构建步骤

直接下载官方上传的github releases构建:

https://github.com/ggml-org/llama.cpp/releases/download/b4837/llama-b4837-bin-win-vulkan-x64.zip

运行命令

llama-server -m "C:\AI\models\qwq-32b-q4_k_m.gguf" --port 8080 --host 0.0.0.0 -ngl 999

测试结果

  • 推理速度
prompt eval time =    1838.24 ms /    23 tokens (   79.92 ms per token,    12.51 tokens per second)
       eval time =  383019.23 ms /  1259 tokens (  304.22 ms per token,     3.29 tokens per second)
      total time =  384857.47 ms /  1282 tokens
  • 内存占用
load_tensors: offloading 64 repeating layers to GPU
load_tensors: offloading output layer to GPU
load_tensors: offloaded 65/65 layers to GPU
load_tensors:      Vulkan0 model buffer size = 18508.35 MiB
load_tensors:   CPU_Mapped model buffer size =   417.66 MiB

虽然显示占用内存为18508.35 MiB,但任务管理器显示专用GPU内存占用7.6GB/8.0GB,共享GPU内存占用13.7/19,9GB,内存占用37.5/39.8GB(含系统占用),总计占用似乎略高于hip。

  • 硬件占用率

核显约99%,CPU几乎无占用。

hip

构建版本

自行根据源代码构建:msvc,rocm for gfx1103

构建步骤

1.

cmake -S . -B build -G Ninja -DAMDGPU_TARGETS=gfx1103 -DGGML_HIP=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DGGML_RPC=ON

2.

cmake --build build

运行命令

  1. 首先尝试-ngl 64
llama-server -m "C:\AI\models\qwq-32b-q4_k_m.gguf" --port 8080 --host 0.0.0.0 -ngl 64

出现报错:

ggml_backend_cuda_buffer_type_alloc_buffer: allocating 17899.25 MiB on device 0: cudaMalloc failed: out of memory
  1. 尝试-ngl 54
llama-server -m "C:\AI\models\qwq-32b-q4_k_m.gguf" --port 8080 --host 0.0.0.0 -ngl 54

可以正常加载模型

测试结果

  • 推理速度
prompt eval time =    1173.13 ms /    23 tokens (   51.01 ms per token,    19.61 tokens per second)
       eval time =  294617.95 ms /   801 tokens (  367.81 ms per token,     2.72 tokens per second)
      total time =  295791.07 ms /   824 tokens
  • 内存占用
load_tensors: offloading 54 repeating layers to GPU
load_tensors: offloaded 54/65 layers to GPU
load_tensors:        ROCm0 model buffer size = 14994.21 MiB
load_tensors:   CPU_Mapped model buffer size = 18926.01 MiB

专用+共享GPU内存约14.6G,内存占用约18.5G,合计约33.1G。

  • 硬件占用率
    核显约80%,CPU约50%(含系统占用)。

其他构建

还测试过avx2构建,内存占用显著降低(约21G左右),CPU占用60%左右,速度接近hip。非准确数据但大差不差,不再赘述。

总结

  1. 对于7840HS,更推荐使用vulkan构建,可以充分利用核显性能;
  2. 没有必要折腾rocm,内存占用高且对比cpu几乎没有推理速度优势,不如直接使用cpu部署。
  3. 本次测试仅针对qwq-32b-q4_k_m.gguf模型,其他模型测试结果可能不同。