环境准备
在动手之前,先确认一下你的硬件和驱动。这套操作我在 RX 6800 XT 上跑通,其他 RDNA2/3 卡也适用,但显存不够的卡可能要自觉降模型。
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| AMD 显卡 | RX 580 8GB | RX 6800 XT |
| 系统内存 | 16GB | 32GB |
| 驱动版本 | 22.5.1 | 23.11.1+ |
| 存储空间 | 20GB 可用 | 50GB 可用 |
驱动这块,如果是较新的内核,直接装 mesa-vulkan-drivers 就行,不用折腾 ROCm。跑一下 vulkaninfo --summary 确认能看到自己的卡。
快速编译部署
先把项目拉下来,编译时打开 Vulkan 支持。我习惯把所有步骤写进一个脚本,省得每次手敲:
#!/bin/bash
# 检查驱动版本
VULKAN_VERSION=$(vulkaninfo | grep "driverVersion" | head -1)
echo "当前 Vulkan 驱动版本:$VULKAN_VERSION"
sudo apt update
sudo apt install -y build-essential cmake vulkan-utils
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir build && cd build
cmake -DLLAMA_VULKAN=ON -DAMD_VULKAN_COMPAT=ON ..
make -j$(nproc)
echo "编译完成"
AMD_VULKAN_COMPAT 这个选项在一些老卡上能避免奇怪的显存分配错误,如果确定是新卡也可以不加。
内存分配配置
llama.cpp 默认的显存分配比较保守,尤其是跨设备内存共享时容易成为瓶颈。可以把下面内容写成 amd_memory.cfg(非必须,但方便调参):
[memory]
device_local_ratio = 0.8
host_visible_ratio = 0.2
max_buffer_size = 4294967296
prefer_coherent = true

