
!!编译rocblas需要全程全局魔法,开始准备编译前,请确保编译环境全程全局魔法。
没有编译条件的可以使用我编译好的rocm_rocblas
链接:https://pan.quark.cn/s/33ae06cdaffa
提取码:LV9y
首先安装以下依赖
1.Git for Windows
2.Visual Studio 2022 (桌面C++开发)
3.Strawberry perl
4.python 3.11
5.AMD HIP SDK for Windows 5.7.1
然后将
Git
Perl
ROCM
加入环境变量path中,确保可以运行以下命令
hipinfo
git
perl
python
接下来去C盘的根目录新建名为“github”的文件夹,进入C:\github中,右键运行终端或者powershell。
运行以下命令
git clone -b 2023.06.20 https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
等待完成后检查C:\github\vcpkg中是否存在vcpkg.exe,存在即可。
确保存放源码的硬盘剩余空间在30G以上,如果编译很多显卡建议100G以上
新建一个目录存放源码文件,比如D:\rocm
进入目录右键打开终端,运行
git clone -b release/rocm-rel-5.7.1.1 https://github.com/ROCmSoftwarePlatform/rocBLAS.git
下载https://github.com/ROCm/rocBLAS/files/13599164/vcpkg.json
将vcpkg.json移动至Rocblas目录下
继续运行
git clone -b release/rocm-rel-5.7.1.1 https://github.com/ROCm/Tensile
下载https://raw.githubusercontent.com/ulyssesrr/docker-rocm-xtra/f25f12835c1d0a5efa80763b5381accf175b200e/rocm-xtra-rocblas-builder/patches/Tensile-fix-fallback-arch-build.patch
将Tensile-fix-fallback-arch-build.patch放到D:\rocm中
继续运行
cd Tensile
git apply D:\rocm\Tensile-fix-fallback-arch-build.patch
如果没有任何输出就是成功了。
到这里准备工作就完成了。

默认情况下这份源码并不支持某些显卡,比如比如gfx1103——780M
需要自行在源码中添加gfx1103
Tensile\pytest.ini
Tensile\Tensile\Source\CMakeLists.txt
Tensile\Tensile\Source\lib\include\Tensile\AMDGPU.hpp
Tensile\Tensile\Source\lib\include\Tensile\Serialization\Predicates.hpp
以及
Tensile-rocm\Tensile\Common.py中
globalParameters["SupportedISA"]
CACHED_ASM_CAPS
这两个变量
模仿近似的架构增加即可比如gfx1103参考gfx1101

接下来开始编译,在开始菜单中打开“x64 Native Tools Command Prompt for VS 2022”,进入rocblas目录
cd D:\rocm\Rocblas
python rdeps.py
等待vcpkg下载安装软件包,完成后运行
python rmake.py -a gfx1031 --no-lazy-library-loading --no-merge-architectures -t D:\rocm\Tensile
Tensile目录根据你的实际情况填写,gfx1031修改为你需要编译的目标gpu。比如rx5700xt使用gfx1010。如果编译多个GPU 中间使用;分开,前后加上""。
比如python rmake.py -a "gfx1031;gfx1032;gfx1033" --no-lazy-library-loading --no-merge-architectures -t D:\rocm\Tensile
这里会报错。
在D:\rocm\Tensile\build\lib\Tensile\Source\lib\CMakeLists.txt中
搜索find_package(msgpack REQUIRED)修改为find_package(msgpack REQUIRED NAMES msgpack msgpack-c msgpack-cxx)
搜索get_target_property(msgpack_inc msgpackc INTERFACE_INCLUDE_DIRECTORIES),在下面添加
elseif(TARGET msgpack-cxx)
get_target_property(msgpack_inc msgpack-cxx INTERFACE_INCLUDE_DIRECTORIES)
这两行然后保存。
回到编译命令行中继续执行编译命令。
等待完成后
继续在编译命令行中运行
.\build\release\virtualenv\Scripts\activate.bat
TensileCreateLibrary --architecture gfx1031 --code-object-version default --merge-files --library-format msgpack .\library\src\blas3\Tensile\Logic\asm_full D:\hip HIP
这里gfx1031和上面一样需要修改为你的目标gpu,D:\hip可自行指定,确保文件夹存在即可
完成后将D:\hip\library中所有文件复制到C:\Program Files\AMD\ROCm\5.7\bin\rocblas\library中即可
某些软件需要放在软件根目录的.\rocblas\library中
这样就可以让你的显卡能够运行LLM,SD这些AI应用了。
gfx803:RX 400、RX 500
gfx900:RX Vega 56/64
gfx906:Radeon VII
gfx1010:RX 56xx、57xx
gfx1012:RX 53xx、55xx
gfx1030:RX 68xx、69xx
gfx1031:RX 67xx
gfx1032:RX 66xx
gfx1033:Steam Deck
gfx1034:RX 64xx、65xx
gfx1035:660M、680M
gfx1036:AMD Radeon(TM) Graphics (锐龙7000系列核显)
gfx1100:RX 79xx
gfx1101:RX 77xx、78xx
gfx1102:RX 76xx
gfx1103:740M、760M、780M