概要
- amdgpu-pro(RADEON用の不自由なドライバー)はFedoraをサポートしていない
- これをなんとかして突っ込んでOpenCLが動くようにする
- 他の機能(OpenGLなど)が動くかは不明(未調査)
- 今回はRADEON RX 550で動作を確認
- Folding@homeのインストールといくつかの設定をする
amdgpu-proのインストール
ダウンロード
普通にググると、ダウンロードして中の amdgpu-pro-install
を実行するなどと出るが、Fedoraでは失敗する。
↓で手持ちのGPUを選択する(とはいえどれを選んでも同じ物が出てきそう)
https://www.amd.com/ja/support
そして Ubuntu x86 64ビット 版をダウンロードする。
(多分CentOS版でも少し手順が変わるだけでできそうだがひとまず忘れる)
そして展開する。
$ tar -xf (ファイル名)
amdgpu-pro-19.50-967956-ubuntu-18.04
のような名前のフォルダができる。バージョンが変わればもちろんこの名前は変わる。下記ではこの名前を例として使っている。
なんとかしてFedoraにインストールする
各パッケージが .deb
形式になっているのでこれを解体する必要がある。
dpkgをインストールする。
もちろんrootユーザーでやる必要がある(# で示す)。
# dnf install dpkg
そして .deb
ファイルが入っているフォルダに入って .deb
を全て解体する。
$ cd amdgpu-pro-19.50-967956-ubuntu-18.04
$ ls *.deb | xargs -I {} dpkg -x {} amdgpu_root
$ cd amdgpu_root
そして解体したファイルをOSに突っ込む。
rootユーザーで作業する。
# cd (ダウンロードした場所)/amdgpu-pro-19.50-967956-ubuntu-18.04/amdgpu_root
# ls
etc lib opt usr ←こんな風にフォルダがある
そしてこの各フォルダを / (ルートディレクトリ) にコピーする。
# cp -R * /
コピーしたモジュール(.so
ファイル)をOSに認識させる。
# ldconfig
Folding@home のインストール
ここではCUI版(つまりコマンドのみで操作する)をインストールする。
これはCentOS版をインストールすればよい。
https://download.foldingathome.org/releases/public/release/fahclient/
ここから CentOS-(数字がでかいやつ) → v(数字がでかいやつ) → fahclient-***.x86_64.rpm と進んでダウンロードする。
そしてインストールする。
# rpm -i (ダウンロードした.rpmファイル)
最初の設定
チームとかpasskeyとか
動かすだけなら必要ないが、最初の設定のときにやっておいた方が何かと楽である。
https://apps.foldingathome.org/passkey/create
先にユーザー名を決めて、↑からpasskeyを取得しておく。
ユーザー名は任意だが、大小文字が区別される。
メールでpasskeyが届く。
https://stats.foldingathome.org/teams
チームも調べておくとよいだろう。
↑のチーム一覧の他、Twitter等にもチームの案内がある。
設定ファイルの生成
準備ができたら設定ファイルを生成する。
# FAHClient --configure
(いくつかの質問に答える passkeyなどもここで入力する)
設定ファイルは /etc/fahclient/config.xml
に保存される。
このファイルを直接編集することでも設定の変更が行える。
変更を反映するにはFolding@homeの再起動が必要。
ブラウザ用UI
Webブラウザから進行状況などを確認する機能の設定をする。
<allow v='127.0.0.0/8 192.168.1.0/24'/>
<web-allow v='127.0.0.0/8 192.168.1.0/24'/>
- インストールしたPCから直接アクセスするなら
127.0.0.0/8
だけでよい -
allow
とweb-allow
の両方を書かないとアクセスできない
このPCからは localhost:7396 でアクセスできる。
他のPCからは (PCのIPアドレス):7396 でアクセスできる。
他のPCからアクセスする場合は、ファイヤーウォールの設定も行う。
# firewall-cmd --add-port=7396/tcp --permanent
# firewall-cmd --reload
GPUの動作確認
# su - fahclient -s /bin/bash
$ FAHClient --info
↓のような文字列が出力される。
11:48:17:INFO(1):Read GPUs.txt
***************************** Folding@home Client ******************************
Website: https://foldingathome.org/
Copyright: (c) 2009-2018 foldingathome.org
Author: Joseph Coffland <joseph@cauldrondevelopment.com>
Args: --info
************************************ Build *************************************
Version: 7.5.1
Date: May 12 2018
Time: 22:51:07
Repository: Git
Revision: 4705bf53c635f88b8fe85af7675557e15d491ff0
Branch: master
Compiler: GNU 4.4.7 20120313 (Red Hat 4.4.7-18)
Options: -std=gnu++98 -O3 -funroll-loops
Platform: linux2 4.14.0-3-amd64
Bits: 64
Mode: Release
************************************ System ************************************
CPU: AMD Ryzen 7 2700X Eight-Core Processor
CPU ID: AuthenticAMD Family 23 Model 8 Stepping 2
CPUs: 16
Memory: 31.35GiB
Free Memory: 559.09MiB
Threads: POSIX_THREADS
OS Version: 5.5
Has Battery: false
On Battery: false
UTC Offset: 9
PID: 32025
CWD: /var/lib/fahclient
OS: Linux 5.5.11-200.fc31.x86_64 x86_64
OS Arch: AMD64
GPUs: 1
GPU 0: Bus:11 Slot:0 Func:0 AMD:5 Baffin [Polaris11]
CUDA: Not detected: Failed to open dynamic library 'libcuda.so':
libcuda.so: cannot open shared object file: No such file or
directory
OpenCL Device 0: Platform:0 Device:0 Bus:11 Slot:0 Compute:1.2 Driver:3004.6
********************************************************************************
GPUs: 1
と OpenCL Device 0:(省略)
の両方が表示されていれば多分動作する。
GPUs: 0
なのに OpenCL Device 0:
だけ出ている場合
先頭に INFO(1):Read GPUs.txt
が出ていない場合は、GPUs.txtのダウンロードに失敗している。
Folding@homeを何度か再起動しているとダウンロードされて正常に表示される…かもしれない。
OpenCL: Not detected
と出る場合
-
Failed to open dynamic library 'libOpenCL.so' cannot open shared object file: No such file or directory
amdgpu-pro
のインストールに失敗している。
ldconfig
の実行をやり直してみる。 -
clGetDeviceIDs() returned -1
Fedora 31ではドライバーのインストール失敗時にしか出なかったが、他のディストリビューションでは別の原因で出ることもある模様。
参考: https://foldingforum.org/viewtopic.php?f=81&t=33353&p=319562#p319562 -
clGetDeviceIDs() returned -1001
対応するGPUが見つからない場合に出る模様。
Folding@home の実行
# systemctl start FAHClient
PC起動時に自動起動させるなら↓も実行する。
# systemctl enable FAHClient
進行状況の表示
ブラウザで localhost:7396 または (PCのIPアドレス):7396 にアクセスする。
または
進捗などを見る(JSON形式)
$ FAHClient --send-command "simulation-info 0"
GPUなどもある場合は番号を変えると確認できる
$ FAHClient --send-command "simulation-info 1"
PPD(1日あたりの取得ポイント)の推定値を見る
FAHClient --send-command ppd