体验 ROCm 和 Strix Halo:从系统设置到模型运行全流程分享!
正如我之前所说,我的初印象是:目前一切都还不错,我能够使用 PyTorch 并在 llama.cpp 上以大上下文窗口运行 Qwen3.6。虽然过程中有些小问题,但我认为还是很值得的。那么,你是否也想尝试一下呢?

又一个博客
在这里,我将分享我对 ROCm 和 Strix Halo 的初印象,以及我是如何完成所有设置的。
操作系统选择与驱动安装
我习惯使用 Ubuntu 系统,所以这次依旧选择了受支持的 24.04 LTS 版本,并按官方安装说明进行了操作。
BIOS 更新
似乎不更新 BIOS 很多功能都无法正常使用,比如 PyTorch 就找不到 GPU。不过在 BIOS 设置中更新很简单,它能连接我的 Wifi 网络并自动下载更新。
BIOS 设置与 Grub 修改
同样在 BIOS 设置中,要确保将预留的显存设置为较低的值,并通过 GTT 让 CPU 和 GPU 共享内存,预留内存最低可设为 512MB。相关影响如下:
- CPU 无法使用 GPU 的预留内存。
- GPU 可以使用预留内存和 GTT 的总和,但由于碎片化和寻址开销,同时使用两者的效率可能不如使用一个大的 GTT 池。
- 遗憾的是,一些旧游戏或软件可能会将 GPU 内存识别为 512MB 并拒绝运行,不过我目前还没遇到这种情况。
然后,我在 `/etc/default/grub` 文件中做了如下修改:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ttm.pages_limit=32768000 amdgpu.gttsize=114688"
接着运行 `sudo update-grub` 命令。需要注意的是,`amdgpu.gttsize` 不应包含整个系统内存,为保证 Linux 内核的稳定性,应该给 CPU 预留一些内存(建议是 4GB 到 12GB,即总内存减去预留的 GPU 内存再减去 GTT 内存)。
支持 UV 的 PyTorch
由于 PyTorch 复杂的依赖关系,这一步有点棘手,但最终我还是通过以下配置让它正常工作了:
[project]
name = "myproject"
version = "0.1.0"
description = "在此添加你的描述"
readme = "README.md"
requires-python = ">&=3.13"
dependencies = [
"torch==2.11.0+rocm7.2",
"triton-rocm",
]
[tool.uv]
environments = ["sys_platform == 'linux'"]
[[tool.uv.index]]
name = "pytorch-rocm"
url = "https://download.pytorch.org/whl/rocm7.2"
explicit = true
[tool.uv.sources]
torch = { index = "pytorch-rocm" }
torchvision = { index = "pytorch-rocm" }
triton-rocm = { index = "pytorch-rocm" }
你甚至可以将以下内容添加到 `.bashrc` 文件中:
alias pytorch='''uvx --extra-index-url https://download.pytorch.org/whl/rocm7.2 \
--index-strategy unsafe-best-match \
--with torch==2.11.0+rocm7.2,triton-rocm \
ipython -c "import torch; print(f\"ROCM: {torch.version.hip}\"); \
print(f\"GPU 可用: {torch.cuda.is_available()}\"); import torch.nn as nn" -i
'''
Llama.cpp
podman run --rm -it --name qwen-coder --device /dev/kfd --device /dev/dri \
--security-opt label=disable --group-add keep-groups -e HSA_OVERRIDE_GFX_VERSION=11.5.0 \
-p 8080:8080 -v /some_path/models:/models:z ghcr.io/ggml-org/llama.cpp:server-rocm \
-m /models/qwen3.6/model.gguf -ngl 99 -c 327680 --host 0.0.0.0 --port 8080 \
--flash-attn on --no-mmap
你可以通过以下命令轻松下载模型:
uvx hf download Qwen/Qwen3.6-35B-A3B --local-dir /some_path/models/qwen3.6
然后使用 llama.cpp 仓库中的 `convert_hf_to_gguf.py` 脚本将其转换为 gguf 格式:
git clone https://github.com/ggerganov/llama.cpp.git /some_path/llama.cpp
cd /some_path/models/qwen3.6 &&
uvx --extra-index-url https://download.pytorch.org/whl/rocm7.2 \
--index-strategy unsafe-best-match \
--with torch==2.11.0+rocm7.2,triton-rocm,transformers \
ipython /some_path/llama.cpp/convert_hf_to_gguf.py \
-- . --outfile model.gguf
Opencode
我使用 Podman 来运行 Opencode。以下是让它与 Llama.cpp 配合使用的配置:
{ "$schema": "https://opencode.ai/config.json", "provider": { "local": { "options": { "baseURL": "http://localhost:8080/v1", "apiKey": "任意字符串", "reasoningEffort": "自动", "textVerbosity": "高", "supportsToolCalls": true }, "models": { "qwen-coder-local": {} } } }, "model": "local/qwen-coder-local", "permission": { "*": "询问", "read": { "*": "允许", "*.env": "拒绝", "**/secrets/**": "拒绝" }, "bash": "允许", "edit": "允许", "glob": "允许", "grep": "允许", "websearch": "允许", "codesearch": "允许", "webfetch": "允许" }, "disabled_providers": [ "opencode" ]}
总结
正如我之前所说,我的初印象是:目前一切都还不错,我能够使用 PyTorch 并在 llama.cpp 上以大上下文窗口运行 Qwen3.6。虽然过程中有些小问题,但我认为还是很值得的。那么,你是否也想尝试一下呢?
欢迎来到AMD开发者中国社区,我们致力于为全球开发者提供 ROCm、Ryzen AI Software 和 ZenDNN等全栈软硬件优化支持。携手中国开发者,链接全球开源生态,与你共建开放、协作的技术社区。
更多推荐

所有评论(0)