- Published on
AMD 395 使用 amd-ttm 后 Vulkan 显存识别异常的修复
- Authors

- Name
- JiGu
- @crypto20x
问题描述
在 AMD RX 395 机器上,使用 amd-ttm 工具修改显存配置后,Vulkan 版 llama.cpp 启动时识别到的显存非常少,无法正常加载模型运行推理。
原因分析
amd-ttm 修改后,系统默认使用的 Vulkan 驱动变为 AMDVLK(AMD 官方开源 Vulkan 驱动)。AMDVLK 在某些场景下对大显存的识别存在兼容性问题,导致 llama.cpp 通过 Vulkan API 查询到的可用显存远小于实际值。
解决方案
设置环境变量,强制使用社区 RADV 驱动(Mesa 项目维护),该驱动对大显存的兼容性更好:
export AMD_VULKAN_ICD=RADV
设置后重新启动 llama.cpp 即可正常识别全部显存。
持久化配置
将环境变量写入 shell 配置文件,避免每次手动设置:
echo 'export AMD_VULKAN_ICD=RADV' >> ~/.bashrc
source ~/.bashrc
验证
vulkaninfo --summary
确认输出中使用的驱动为 radv 而非 amdvlk,然后启动 llama.cpp 验证显存识别是否正常。
补充说明
| 驱动 | 说明 |
|---|---|
| AMDVLK | AMD 官方开源 Vulkan 驱动,amd-ttm 修改后默认使用 |
| RADV | Mesa 社区维护的 Vulkan 驱动,兼容性更好,推荐在 amd-ttm 场景下使用 |
两个驱动可以共存,通过
AMD_VULKAN_ICD环境变量随时切换,无需卸载任何一个。