Rusticl は Rust 言語で開発されている OpenCL 実装です。OpenCL 3.0 に対応しています。
従来の Mesa の OpenCL 実装は Clover という名前で OpenCL 1.2 までの対応でした。性能があまりよくなかったのか、OpenCL 1.2 までで使える範囲が狭かったのかわかりませんが、評判はよくなかったようです。
手順をば
環境は LMDE 7(Debian 13) で、AMDGPU というか radeonsi ドライバーです。
まずは ICD ランタイムをインストールします。
apt install mesa-opencl-icd clinfo
この状態で確認すると Clover だけが表示されるはずです。
$ clinfo --list Platform #0: Clover `-- Device #0: AMD Radeon Graphics (radeonsi, renoir, ACO, DRM 3.64, 6.16.3-zen3) Platform #1: rusticl
続いて、環境変数をセットして Rustcl が有効になることを確認します。
$ export RUSTICL_ENABLE=radeonsi $ clinfo --list Platform #0: Clover `-- Device #0: AMD Radeon Graphics (radeonsi, renoir, ACO, DRM 3.64, 6.16.3-zen3) Platform #1: rusticl `-- Device #0: AMD Radeon Graphics (radeonsi, renoir, ACO, DRM 3.64, 6.16.3-zen3)
Platform rustcl にデバイス情報が表示されるようになりました。OK です。
OpenCL の Platform が 2 つ存在していることになるので、Clover を無効化して rustcl だけの状態にしてあげます。
$ ls /etc/OpenCL/vendors mesa.icd rusticl.icd
mesa.icd が Clover のランタイムを指しているので、これをリネームして無効化します。
$ sudo dpkg-divert --divert '/etc/OpenCL/vendors/mesa.icd.disabled' --rename '/etc/OpenCL/vendors/mesa.icd' '/etc/OpenCL/vendors/mesa.icd から /etc/OpenCL/vendors/mesa.icd.disabled へのローカルな退避 (divert)' を追加しています
どうでしょうか。確認してみましょう。
$ clinfo --list Platform #0: rusticl `-- Device #0: AMD Radeon Graphics (radeonsi, renoir, ACO, DRM 3.64, 6.16.3-zen3)
お、Platform が rusticl だけになりましたね、成功です。
あとは環境変数の恒常的な設定をどこからしらに組み込めば完成です。/etc/environment でもよいですし、.bashrc とかでもよいです。
ただですね、ワタシは Darktable とか使わない人なので、せっかくの OpenCL 環境を活用する場がないという・・・・。(えぇぇ???)