インストールガイドの変更と roc-obj
ツール、OpenMPオフロードにおけるプロファイル/トレース機能の修正を含む ROCm v4.5.2 がリリースされた。
新リリースはそれとして、ROCm v4.5.x では OpenCLランタイムから Polaris (gfx803) のサポートが外されていることに気付いた。
v4.3.[0-1] では正常に動作したのだが、v4.5.0 からはプラットフォーム自体は認識されるものの、Polaris (gfx803) がデバイスとして認識されなくなった。
ROCm v4.5.0 リリース時に、一部 ROCmソフトウェア/ライブラリから Polaris (gfx803) のサポートを取り除く動きが見られることに触れたが、ROCmの各種ランタイム、内部コードも同様の作業を進めていることとなる。
ROCm v4.5 がリリース ―― CPU+GPU の統合メモリをサポート、RDNA系のサポートは v5.0 に? | Coelacanth’s Dream
このことは以下の issue でも報告されている。
issue内のコメントにあるように、「公式的にはサポートしない」ことと「サポートを取り除く」ことには、意味としても実際の結果としても大きな開きがある。
Polaris (gfx803) は ROCm の初期バージョンからサポートされ、またその価格帯から広く出回った GPU であるため、該当 issue では ROCm v4.5.x での変更を残念に思うコメントが見られる。
参考までに載せると、Steamハードウェア&ソフトウェア 調査 によれば、Linuxプラットフォームにおいて 2021/11 で最も使用されている GPU は Radeon RX 480 (Polaris) であり、6.76% のシェアを持っている。
ROCmSupportアカウントは、意図的な変更ではない可能性があるとしているが、Polaris (gfx803) を含む GFX8 世代の AMD GPU は ROCm v4.0.0 から公式サポートから外されており、検証が行われていないとしている。
実質的にはサポートが削除され、今後戻されることはない、と言っているようにも聞こえる。
ROCm v4.3.1 を再インストールする
自環境で実践した ROCm v4.3.1 の再インストール方法。
最近になって AMDGPU-PRO と ROCm のインストール方法が変わり、amdgpu-install
パッケージのインストール時にレポジトリURLが追加され、そこから amdgpu-install
コマンドで各種 AMDGPU-PRO/ROCm パッケージをインストールする形となった。
最新バージョンの 21.40.2 で追加される ROCmレポジトリ (rocm.list
) は、ROCm v4.5.2 のものであるため、apt edit-sources rocm.list
等で URL部末尾を 4.3.1
に書き換えればそのバージョンのパッケージをインストール可能になる。
ROCm v4.5.x のパッケージを一度削除してから、v4.3.1 のを再インストールしないと反映されない場合があるため注意。
# deb [arch=amd64] https://repo.radeon.com/rocm/apt/4.5.2 ubuntu main deb [arch=amd64] https://repo.radeon.com/rocm/apt/4.3.1 ubuntu main
amdgpu-install
コマンドには --rocmrelease=
オプションが存在するが、自分が試した限り、別バージョンの ROCm をインストールしたい場合は手動でレポジトリを追加する必要があった。
またヘルプメッセージには記載されていないが、--rocmrelease=
は <major>.<minor>.<step>
のフォーマットでバージョンを指定する。
AMDGPU-PRO の OpenCL (Legacy) であれば最新バージョンでも Polaris (gfx8) をサポートしているため、そちらを使う手もある。
Usage: amdgpu-install [options...] Options: -h|--help Display this help message --dryrun Print list of commands to run and exit --pro (DEPRECATED) Install legacy OpenGL, pro Vulkan, and open source multimedia. This is equivalent to: amdgpu-install --usecase=workstation --vulkan=pro --usecase= Install a set of libraries for a specific use case --list-usecase Show all available usecases and descriptions --opencl= Install a specific OpenCL implementation. This option implies the addition of the opencl usecase. Available implementations: rocr (ROCr/KFD based OpenCL) legacy (Legacy OpenCL) --vulkan= Install a specific vulkan implementation Available implementations: amdvlk (AMD open source implementation) pro (AMD closed source implementation) --no-dkms Do not install dkms and use built-in kernel driver --no-32 Do not install 32 bit graphics runtime support --rocmrelease= Install a specific ROCm release. By default only one release of ROCm can be installed. Using this option will allow installation of multiple releases. Note: when used during uninstall, the specific rocm release will be removed. Use --rocmrelease=all to uninstall all rocm releases. --accept-eula Accept EULA for this run only (for non-free install) Note: only use this option if you accept the EULA --uninstall Uninstall the graphics driver Options --opencl/--vulkan/--usecase can be used together, e.g.: amdgpu-install --usecase=graphics --vulkan=amdvlk --opencl=rocr Multiple implementations can be selected if comma separated, e.g.: amdgpu-install --usecase=graphics,opencl --opencl=rocr,legacy --vulkan=amdvlk,pro Unless the -h|--help option is given, 'apt-get' options may be present