当前位置: 首页 > news >正文

体验 ROCm 和 Strix Halo:从系统设置到模型运行全流程分享!

又一个博客

在这里,我将分享我对 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。虽然过程中有些小问题,但我认为还是很值得的。那么,你是否也想尝试一下呢?

http://www.jsqmd.com/news/668265/

相关文章:

  • 【3D视觉实战】ShapeNet数据集:从核心结构到语义扩展的完整指南
  • 谷歌开源大模型Gemma 4实测:千元机跑本地模型,速度慢、易出错?
  • Kali Linux 2023 上 Burp Suite Pro 2024 的保姆级安装与激活指南(含JDK 11配置)
  • PCHMI权限开发避坑指南:从用户等级映射到实际功能锁定的完整流程
  • 从LCD到MicroLED:手把手拆解主流显示技术演进史,看懂未来屏幕长啥样
  • 2025届学术党必备的AI写作网站横评
  • 人形机器人半马:进步与失控并存,短板暴露促进行业迭代
  • 从FGM到FreeLB:一次讲透对抗训练怎么“卷”起来的(附代码避坑指南)
  • DeepSeek融资3亿美元背后:算力人才两手抓,国产适配成行业变量
  • nRF52832串口DMA效率翻倍秘籍:从“定长接收”到“伪不定长”的完整配置流程
  • FanControl终极中文设置指南:5分钟让风扇控制说中文的完整教程
  • 告别手动敲命令:用Ansible CE模块批量管理华为交换机端口(附完整Playbook)
  • 用Rainmeter打造你的专属桌面:从零开始配置农历、股票和圆盘时钟插件
  • 【Java学习新手第一篇】:Hello World !
  • 别再乱选启动盘格式了!用Rufus烧录Windows安装盘时,GPT和MBR到底怎么选?(附DiskGenius查看方法)
  • 用STM32F407的TIM1驱动舵机:CubeMX配置PWM详解与避坑指南
  • 如何用TsubakiTranslator轻松翻译Galgame,打破语言障碍?
  • MMC并网逆变器:基于滑模控制的优化策略与实验结果分析
  • C#连接OPC UA服务器的三种身份验证方式详解:匿名、用户名密码和证书(附完整代码)
  • 告别驱动冲突:多维度解决AMD显卡驱动版本不匹配难题
  • 学习的时间复杂度和稀疏矩阵
  • GPT Image 2 泄露,文字渲染准确率提升,或让截图难成证据!
  • 从零开始,用Wireshark抓包分析BLE广播包(ADV_IND)的完整结构与实战解析
  • Windows/Mac/Linux三平台实测:Python pySerial连接Arduino/树莓派避坑指南
  • 当Air Florida 90号航班坠入波托马克河:用Elasticsearch+Kibana复盘一场‘非典型’空难的数据叙事
  • # 简易在线英语考试系统 - 课程设计报告
  • 从LED到DFB激光器:如何为你的项目选择对的SFP光模块?(附速率、距离避坑指南)
  • 别再被KB2999226和KB3118401补丁卡住了!Win10安装Wireshark的终极避坑指南
  • 别再只会用下载器了!手把手教你用Python解析Torrent文件,自己动手生成磁力链接
  • 10.1.24 Registry virtualization:为什么容器里的应用明明以为自己在写 HKCU / HKLM,Configuration Manager 实际看到的却是 \Registr