How-To Anleitung Falten unter Linux und Ubuntu

How-To-Threads
Linux-Falten und die ganze Chose mit den AMD-GPUs

Dieser Beitrag erhebt (noch) keinen Anspruch darauf, eine vollständige Anleitung zu sein, sondern gibt lediglich Anhaltspunkte bzw. Tipps, was getan werden kann, um dem Ziel eines lauffähigen AMD-Falters näher zu kommen. Ich biete mich gerne als Experte Amateur mit Erfahrung an, wenn jemand eins dieser Vorhaben umsetzen möchte (AMD-Falter und/oder Anleitung dazu).
Verwendet wurde Folding@home-Client 7.5.1 mit AMDGPU-PRO 19.50 auf Ubuntu 18.04.3.


  1. OpenCL
  2. passende Einstellungen im Folding@home-Client
  3. Zugriff des F@h-Clients auf die OpenCL-Dateien
1. OpenCL

Für Radeon-GPUs ab GCN 1.2 ("Tonga" R9 285, "Hawaii" R9 290(X) und Nachfolger) setzt AMD für seinen Grafiktreiber auf den quelloffenen "Untersatz" AMDGPU + optional weitere Funktionalität über die (noch?) proprietäre AMDGPU-PRO-Komponente. Dazu zählt u.a. eine OpenCL-Implementierung.

-> Download bei AMD

Hier geht's los mit der Installation.

Die dort angebotenen Pakete sind immer nur für ganz bestimmte OS-Versionen geeignet - z.B. Ubuntu 18.04.3, insbesondere muss auf den entsprechenden Kernel geachtet werden (hier: 5.0).

So war z.B. wenige Tage vor meiner Installation des LTS-Release 18.04.3 schon 18.04.4 erschienen. Also updatete sich meine frische .3er-Installation erstmal auf .4, und damit auch den Kernel von 5.0 auf 5.3. Dummerweise weigert sich der AMD-Treiber 19.50, mit Kernel 5.3 zusammenzuarbeiten, sodass ich zunächst im GRUB-Bootloader einstellen musste, dass der alte Kernel geladen wird.

Für Arch-basierte Distributionen gibt es andere Möglichkeiten, einen OpenCL-Stack auf die Beine zu stellen, ohne auf den AMD-Installer angewiesen zu sein. Die habe ich noch nicht getestet.

OpenCL-Mesa taugt nach dem, was ich gehört habe, nicht für folding@home.

Ansonsten kann man es auch mal mit ROCm versuchen, das ist AMDs Open-Source-Compute-Projekt. Ich meine sogar, der OpenCL-Teil von AMDGPU-PRO wäre ROCm-basiert. Wie dem auch sei, eine Anleitung gibt es hier, die habe ich auch noch nicht zu Ende ausprobiert.



2. Einstellungen

Standardmäßig faltet der Client mit einem CPU-Slot, legt sofort los und ignoriert GPUs. Dadurch wird auch keine GPUs.txt angelegt.
Wir entfernen also per FAHControl (oder mittels Editor aus der /etc/fahclient/config.xml) die Option gpu=false. Ich lege gerne noch pause-on-start=true an, damit nur gefaltet wird, wenn ich das starte. Einen Neustart später hat der FAHClient (hoffentlich) eine GPUs.txt erstellt und erkennt nun vielleicht schon die GPU. Er wird sich aber wahrscheinlich darüber beschweren, dass er keine OpenCL-Device findet o.ä.

3. Zugriff auf OpenCL

Bei der Installation als Dienst erhält folding@home sein eigenes Nutzerkonto namens „fahclient“.

Um Compute-Zugriff auf die GPU zu haben, muss dieser User der Gruppe „video“ angehören. Das überprüft man z.B. mit dem Kommando „less /etc/group“. Wenn nicht, mit „sudo usermod -aG video fahclient“ hinzufügen (entnommen aus diesem Wiki-Eintrag).
Der FAHClient-Dienst ist wohl schon zu einer Zeit vor systemd programmiert worden und macht damit Probleme. Zum Glück hat der User tchiers im Foldingforum einen alternativen Dienst geschrieben, der die Aufgabe übernimmt. Wir nehmen die neuere Version von Seite 2, die erste führt zu Instabilitäten.

Wir erstellen den Dienst in Form einer Textdatei mit dem Befehl

sudo systemctl edit --force --full fah.service

Inhalt der Datei:
[Unit]
Description=Folding@Home for Systemd
After=remote-fs.target
After=network-online.target
After=graphical.target
Wants=network-online.target graphical.target


[Service]
Type=simple
WorkingDirectory=/var/lib/fahclient
User=fahclient
ExecStart=/usr/bin/FAHClient /etc/fahclient/config.xml --pid-file=/var/run/fahclient.pid

[Install]
WantedBy=graphical.target
Nun den ursprünglichen Dienst deaktivieren und den neuen aktivieren:
sudo systemctl disable FAHClient.service
sudo systemctl enable fah.service



Wenn an irgendeiner Stelle eine Änderung nicht umgesetzt wird, erstmal rebooten :ka:


Sollte etwas unklar oder kompletter Humbug sein, sagt mir bitte bescheid! Ich arbeite wie gesagt gerne auch an einer Ausarbeitung zur kompletten Anleitung mit. Bin nur etwas ineffizient beim Schreiben, deshalb kommt so auf Anhieb nicht viel bei rum.
 
Zuletzt bearbeitet:
@Mr.Knister

ich bin gerade dabei deinen Post durchzuarbeiten :). ich finds bissl schade, dass auf der offiziellen Seite noch die alte Version angegeben wird:

wget https://download.foldingathome.org/...-testing-64bit/v7.4/fahclient_7.4.4_amd64.deb
wget https://download.foldingathome.org/...testing-64bit/v7.4/fahcontrol_7.4.4-1_all.deb
wget https://download.foldingathome.org/...-testing-64bit/v7.4/fahviewer_7.4.4_amd64.deb

Ein Versuch, 7.4 auf 7.5 zu ändern, sowie 7.4.4 auf 7.5.1 schlug leider fehl. Schade. Absolute Nueligne unter Linux finden sich so nicht zurecht..
 
Hallo,

hat von euch jemand zufällig noch die ursprünglich unter Posting #2 zu findende Anleitung?

Ich habe vorhin Ubuntu unter meinem Falt-Rechner aktualisiert und muss den (aktuellsten) Treiber aus der *run-Datei neu installieren, wofür die Anleitung sehr hilfreich wäre. (Aus der Erinnerung bekomme ich das nicht gebacken.)

Danke vorab!
 
Jetzt muss ich mal etwas Werbung machen, bei so vielen neuen Faltern hier:

Werbung an.

Sollte jemand sich einen reinen Faltrechner zulegen wollen, der ist hier genau richtig. Dieses Ubuntu-Image ist für die reine Falterei gedacht und läuft komplett autonom. Das heisst, bei evtl Downloadhängern oder ähnliches startet sich der PC neu und versucht erneut, eine WU zu bekommen.
Ebenfalls ist eine Zeitsteuerung integriert, um den PC zu bestimmten Zeiten automatisch zu beenden und nach einer festgelegten Zeit neu zu starten, nachdem eine WU fertiggefaltet wurde.

Werbung aus.
 
Okay...es tut mir leid, aber ich schaff es einfahc nicht unter Linux die GPU zum falten zu bringen. Nach 3 Tagen startet zumindest die CPU :). Aber die GPU erkennt er nicht bzw kann ich keinen GPU Slot hinzufügen. OS ist Ubuntu 19.10. Nvidia treiber (GTX1070; 435 Driver) sind drauf. Hat jemand noch eine Idee was ich tun könnte?
 
GPUs.txt ist da;

ich denke ich habs: in dem selben Ordner gab es ein log file. In dem stand: OpenCL: Not detected: Failed to open dynamic library 'libOpenCL.so': libOpenCL.so: cannot open shared object file: No such file or directory.

Ein

sudo apt install ocl-icd-opencl-dev

hat das anscheinend behoben :). Ich bekomme leider gerade keine WS. also entweder noch ein Fehler..oder doch was anderes :)


Edit: Es funzt :D :D :D :D :D
 
Zuletzt bearbeitet:
Okay. Ich habe nun meine Erfahrungen mit Ubuntu bissl zusammen geschrieben. Es ist absolut nicht vollständig und von einem Noob geschrieben. Also falls zu viel falsch ich, werde ich es löschen oder erweitern.

Folgendes Grundproblem hatte ich bei Ubuntu: 1) Python 2.x wird vorrausgesetzt, welches in Ubuntu nicht mehr enthalten ist. 2) python-gnome2 wird benötigt, welche nicht auffindbar war. Ich bekam immer, ein "Das Paket ist nicht verfügbar" zurück. Existiert das Paket noch irgendwo? 3) Es wird noch eine Libary(?) für OpenCL benötigt.

A) Folding at Home (FAH) benötigt Python 2.7 sowie python-gnome2. Letzteres ist jedoch nicht mehr verfügbar (unter Ubuntu). Zur Installation von FAH wird daher folgendes vorgeschlagen:

$ sudo apt update && sudo apt upgrade -y

$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

$ cd /usr/src
$ sudo wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
$ sudo tar xzf Python-2.7.16.tgz

$ cd Python-2.7.16
$ sudo ./configure --enable-optimizations
$ sudo make altinstall

$ sudo apt install python-gtk2
$ sudo apt install equivs

$ sudo apt install ocl-icd-opencl-dev

B) Download FAH Client and Control

C) python-gnome2 Vorbereitung

$ equivs-control python-gnome2

$ nano python-gnome2

# change text to

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: python-gnome2
Version: 1:42
Maintainer: your Name <yourname@youremail.com>
Architecture: all
Description: A fake package to make FAHControl install

#Build the fake package you just edited:

$ equivs-build python-gnome2

D) Installieren von python-gnome 2 sowie von FAH
$sudo dpkg -i ./python-gnome2_42_all.deb

Danach Fortfahren mit FAHClient und anschließend FAHControl
 
Okay. Ich habe nun meine Erfahrungen mit Ubuntu bissl zusammen geschrieben. Es ist absolut nicht vollständig und von einem Noob geschrieben. Also falls zu viel falsch ich, werde ich es löschen oder erweitern.

Folgendes Grundproblem hatte ich bei Ubuntu: 1) Python 2.x wird vorrausgesetzt, welches in Ubuntu nicht mehr enthalten ist. 2) python-gnome2 wird benötigt, welche nicht auffindbar war. Ich bekam immer, ein "Das Paket ist nicht verfügbar" zurück. Existiert das Paket noch irgendwo? 3) Es wird noch eine Libary(?) für OpenCL benötigt.

A) Folding at Home (FAH) benötigt Python 2.7 sowie python-gnome2. Letzteres ist jedoch nicht mehr verfügbar (unter Ubuntu). Zur Installation von FAH wird daher folgendes vorgeschlagen:

$ sudo apt update && sudo apt upgrade -y

$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

$ cd /usr/src
$ sudo wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
$ sudo tar xzf Python-2.7.16.tgz

$ cd Python-2.7.16
$ sudo ./configure --enable-optimizations
$ sudo make altinstall

$ sudo apt install python-gtk2
$ sudo apt install equivs

$ sudo apt install ocl-icd-opencl-dev

B) Download FAH Client and Control

C) python-gnome2 Vorbereitung

$ equivs-control python-gnome2

$ nano python-gnome2

# change text to

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: python-gnome2
Version: 1:42
Maintainer: your Name <yourname@youremail.com>
Architecture: all
Description: A fake package to make FAHControl install

#Build the fake package you just edited:

$ equivs-build python-gnome2

D) Installieren von python-gnome 2 sowie von FAH
$sudo dpkg -i ./python-gnome2_42_all.deb

Danach Fortfahren mit FAHClient und anschließend FAHControl

Guckst du hier:
[HowTo] - Anleitung Falten unter Linux und Ubuntu
 
Zurück