2025-09-21

【LMDE】Mesa の Rusticl で OpenCL を動かせるようにしてみた

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 環境を活用する場がないという・・・・。(えぇぇ???)