AMD ROCm折腾实录

PyTorch 篇

经典AI工具PyTorch
在CUDA上用着非常痛快,但是ROCm版仅供Linux使用。
偶尔见到一个自行编译的教程,于是决定自己试一试。

步骤

  • 安装python3.10+(已实测3.14),安装annaconda,安装Visual Studio(实际使用VS2026),git等工具
  • 克隆TheRock仓库至本地
  • 使用Command Prompt for VS,创建conda虚拟环境,按以下操作克隆pytorch仓库,生成
1
2
3
4
5
6
7
conda create -n rocm python=3.14 -y
conda activate rocm
cd /d "D:\Storage\Developer\Python\TheRock\external-builds\pytorch"
python pytorch_torch_repo.py checkout --gitrepo-origin https://github.com/rocm/pytorch.git --repo-hashtag release/2.10 --checkout-dir "D:\pyt"
--checkout-dir ../audio --torch-dir "D:\pyt"
python pytorch_vision_repo.py checkout --require-related-commit --checkout-dir ../vision --torch-dir "D:\pyt"
python build_prod_wheels.py build --install-rocm --index-url https://rocm.nightlies.amd.com/v2/gfx1150/ --pytorch-dir "D:\pyt" --pytorch-audio-dir "D:\Storage\Developer\Python\TheRock\external-builds\audio" --pytorch-vision-dir "D:\Storage\Developer\Python\TheRock\external-builds\vision" --output-dir "D:\Storage\Developer\Python\rocm-output"
  • 注意重新编译前记得清理pytorch/build/CMakeCache.txt和vision,audio的build目录
  • 然后生成的文件在rocm-output文件夹,打开真实python环境,依次安装rocm_sdk_core rocm_sdk_libraries rocm_sdk_devel rocm-*.tar.gz torch torchaudio torchvision
  • 安装pytest,在external-build/pytorch目录下运行python run_pytorch_smoke_tests.py --amdgpu-family gfx1150

LM Studio ROCm 篇

经典AI一键式工具LM Studio
提供基于llama.cpp的runtime,CUDA版本使用痛快,ROCm版只给独显和Strix Halo,还是得自己折腾。
又是看到一份教程,开始自己折腾。

步骤

  • 安装AMD-Software-PRO-Edition-For-HIP,大概对应CUDA SDK的东西
  • 暂时移除系统路径中的gcc和LLVM,将HIP_PATH/bin目录(也就是C:\Program Files\AMD\ROCm\7.1\bin)加到系统路径,稍后使用此处的clang
  • 安装Visual Studio(实际使用VS2026),git等工具
  • 克隆llama.cpp至本地,checkout至当前ROCm runtime使用的tag或commit hash
  • 使用Command Prompt for VS,运行以下命令行,编译,可能会提示缺少OpenSSL,似乎不影响,提示找不到rocm或hip则是使用的clang不对,用where clang查看用的哪个
1
2
cmake -S . -B build -G Ninja -DGPU_TARGETS=gfx1150 -DGGML_HIP=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release
cmake --build build
  • 找到build/bin/ggml-hip.dll,复制至C:\Users\USERNAME\.lmstudio\extensions\backends\llama.cpp-win-x86_64-amd-rocm-avx2-2.5.1,替换
  • 打开backend-manifest.json,添加你刚才编译时的GPU_TARGET,保存,然后打开LM Studio使用此runtime。
  • 选择模型时需要勾选“快速注意力”,否则闪退概率很大,实际上跑完一轮后也大概率直接掉加载,反正勉强能用