我对 ROCm 和 Strix Halo 的第一印象

发布: (2026年4月19日 GMT+8 05:50)
4 分钟阅读

Source: Hacker News

Here I’ll share my first impressions with ROCm and Strix Halo and how I’ve set up everything.

Strix Halo on htop
128 GB 在 CPU 与 GPU 之间高效共享。

操作系统选择与驱动安装

我习惯使用 Ubuntu,所以我坚持使用受支持的 24.04 LTS 版本,并按照官方安装说明进行操作。

官方安装说明

BIOS update

没有 BIOS 更新,事情是无法正常工作的:PyTorch 无法找到 GPU。更新可以很容易地在 BIOS 设置中完成;机器连接到我的 Wi‑Fi 网络并自动下载。

Source:

BIOS 设置和 Grub 更改

在 BIOS 设置中,确保将保留的视频内存设为较低的数值,并使用 GTT 让内存在 CPU 与 GPU 之间共享。保留的内存可以低至 512 MB

含义

  • CPU 不能使用 GPU 保留的内存。
  • GPU 可以使用 保留 + GTT 的总量,但同时使用两者的效率可能不如单一的大 GTT 池,因为会产生碎片和寻址开销。
  • 某些老旧游戏或软件可能会将 GPU 内存视为 512 MB 并拒绝运行;截至目前我尚未遇到这种情况。

然后编辑 /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ttm.pages_limit=32768000 amdgpu.gttsize=114688"

运行 sudo update-grub

注意: amdgpu.gttsize 不应包含整个系统内存。保留一部分内存(≈ 4 GB–12 GB)给 CPU(总内存 − 保留的 GPU 内存 − GTT),以保持 Linux 内核的稳定性。

使用 UV 的 PyTorch

由于 PyTorch 的依赖关系图非常复杂,我最终使用 uv 并在 pyproject.toml 中加入了以下配置:

[project]
name = "myproject"
version = "0.1.0"
description = "Add your description here"
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 available: {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 仓库并将模型转换为 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;请查看我的仓库获取设置说明: 。

以下是使 Opencode 与 Llama.cpp 服务器配合使用的配置:

{
    "$schema": "https://opencode.ai/config.json",
    "provider": {
        "local": {
            "options": {
                "baseURL": "http://localhost:8080/v1",
                "apiKey": "any-string",
                "reasoningEffort": "auto",
                "textVerbosity": "high",
                "supportsToolCalls": true
            },
            "models": {
                "qwen-coder-local": {}
            }
        }
    },
    "model": "local/qwen-coder-local",
    "permission": {
        "*": "ask",
        "read": {
            "*": "allow",
            "*.env": "deny",
            "**/secrets/**": "deny"
        },
        "bash": "allow",
        "edit": "allow",
        "glob": "allow",
        "grep": "allow",
        "websearch": "allow",
        "codesearch": "allow",
        "webfetch": "allow"
    },
    "disabled_providers": [
        "opencode"
    ]
}

结论

所以,正如承诺的那样,我的第一印象是:目前为止,还不错。我能够使用 PyTorch 并在 Llama.cpp 上运行 Qwen 3.6,拥有大上下文窗口。虽然有一些粗糙的地方,但总体来说相当值得。

0 浏览
Back to Blog

相关文章

阅读更多 »