LoginSignup
1
1

More than 3 years have passed since last update.

Fedora 31にamdgpu-proを(一応)入れてRADEONでFolding@homeを動かす

Last updated at Posted at 2020-04-03

概要

  • 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ブラウザから進行状況などを確認する機能の設定をする。

/etc/fahclient/config.xml
<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 だけでよい
  • allowweb-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: 1OpenCL 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​
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1