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
运行命令
- 首先尝试-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
- 尝试-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。非准确数据但大差不差,不再赘述。
总结
- 对于7840HS,更推荐使用vulkan构建,可以充分利用核显性能;
- 没有必要折腾rocm,内存占用高且对比cpu几乎没有推理速度优势,不如直接使用cpu部署。
- 本次测试仅针对qwq-32b-q4_k_m.gguf模型,其他模型测试结果可能不同。