AMD-Grafikkarten unter Linux: Treiber, OpenCL, BOINC, amdconfig und headless per ssh

EselTreiber

Admiral Special
Mitglied seit
13.10.2007
Beiträge
1.407
Renomée
249
Standort
Hirschberg, BaWü
  • Spinhenge ESL
  • BOINC Pentathlon 2012
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2020
  • THOR Challenge 2020
  • BOINC Pentathlon 2021
Moin moin,

Da es in letzter Zeit öfters mal Fragen zum Thema Linux und OpenCL mit AMD-Hardware gegeben hat, wollte ich mal eine kleine Anleitung schreiben. Über diesen Weg habe ich alle meine Linux-Systeme erfolgreich aufsetzen können. In dieser Anleitung gebe ich beide Wege der Installation des AMD-Grafiktreibers (fglrx) an. Mit dem neuen 14.4 final funktioniert bei mir auch wieder die Paketerstellung und Installation. Zudem gehe ich den Weg der Verwendung einer aktuellen BOINC-Version ohne Installation. Damit BOINC nicht gleich losrechnet, sobald das System hochgefahren ist. Für Übertakter sicher interessant und man hat mehr Kontrolle über BOINC. Bei dieser Variante sitzen alle Konfigurationsdateien (für remote-Zugriff etc.) im Verzeichis aus welchem man den BOINC-Client auch startet.

Genug gelabert, los geht's!

Ich gehe einfach mal davon aus, dass Befehle wie cd, rm oder ls bekannt sind. Falls nicht, oder noch Unsicherheit besteht... hier gibt es LINUX-KONSOLENBEFEHLE in einer Übersicht.

1. Installation von Ubuntu 14.04 auf einem Rechner mit 64bit-Prozessor (ich gehe davon aus, dass alle Cruncher immer aktuelle Hardware haben)

1.1 Man erstellt sich einen USB-Stick für die Installation von Ubuntu 14.04. Hierfür lädt man das passende Image von der Ubuntu-Hompage. Für Leute, die am Headless-Betrieb interessiert sind, empfehle ich lieber Ubuntu-Gnome. Dieses System nutzt einen anderen Display Manager, welcher etwas einfacher zu benutzen ist.
Die Bedienung der Gnome3-Oberfläche ist gewöhnungsbedürftig, aber sehr gut. Zu Anfang sollte man wissen, dass der Mauszeiger in die obere linke Ecke bewegt werden muss, um ein Overlay-Menü zu öffnen. Darin kann man einfach auf der Tastatur "Terminal" eintippen und schon erscheint das entsprechende Icon für eine Konsole. "Ter" reicht da meist schon für. :)
Einfach mal angucken, wie das alles so funktioniert. Ist im Gegensatz zu Windows 8 auch mit einer Maus gut und schnell zu bedienen. (Genug Werbung für Gnome3 *elch* )
Alles weitere dann an entsprechender Stelle weiter unten.
Mit Hilfe von PendriveLinux erstellt man sich den bootfähigen USB-Stick samt Ubuntu-Installer. In Pendrive-Linux kann man direkt die entsprechende Distribution (Ubuntu 64bit) auswählen.
1.2 Man steckt den USB-Stick in den gewünschten Rechner und installiert sich ein frisches Ubuntu.

1.3 Per
sudo apt-get update
und
sudo apt-get dist-upgrade
bringt man das System auf den neuesten Stand. Sollte ein Update des Kernels erfolgt sein, so kann ein Neustart notwendig sein. Im Zweifelsfall einfach einen machen. :)

2. Installation des AMD-Grafiktreibers (manuell oder Paketerstellung)

2.1 Zunächst benötigt man erstmal die Vorraussetzungen für die Installation des Treibers. Die Abhängigkeiten für den Bau des Treibers weiß ich nicht genau, jedoch hat ein
sudo apt-get build-dep fglrx fglrx-amdcccle
bisher immer gereicht. Da wir ein 64bit System aufsetzen und einige Projekte 32bittig sind, braucht der Treiber zum Bau auch noch
sudo apt-get install lib32gcc1.
Will man die Pakete bauen und dann installieren, so benötigt man noch
sudo apt-get install dh-make build-essential dh-modaliases execstack dkms linux-headers-generic
und dann ist man ausgestattet.

2.2 Jetzt wird der Treiber runtergeladen. Der aktuelle Treiber 14.4 funktioniert momentan sehr gut. Dieser wird dann beispielhaft unter ~/Downloads gespeichert. Das Archiv wird entzippt
unzip amd-catalyst-14-4-linux-x86-x86-64.zip
Es wird ein Ordner erstellt, in den wir nun wechseln.
cd fglrx-14.10.1006
Der Treiber wird jetzt installiert:

2.2.1 Manuelle, direkte Installation
sudo ./amd-driver-installer-14.10.1006-x86.x86_64.run
Wenn ihr das Ganze in einer grafischen Umgebung macht, dann öffnet sich ein grafischer Installer. Diesem einfach folgen und den Treiber direkt installieren, nicht die Pakete bauen lassen.

2.2.2 Manuelle, Paketbau- und Installationsanleitung
Für diesen Fall führen wir
sudo ./amd-driver-installer-14.10.1006-x86.x86_64.run --listpkg
aus und lassen uns damit die Paketbaumöglichkeiten anzeigen.
xxx[/STRIKE]@[STRIKE]xxxxxx:~/Downloads/fglrx-14.10.1006$ ./amd-driver-installer-14.10.1006-x86.x86_64.run --listpkg
Created directory fglrx-install.pZakWe
Verifying archive integrity... All good.
Uncompressing AMD Catalyst(TM) Proprietary Driver-14.10.1006.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
=====================================================================
AMD Catalyst(TM) Proprietary Driver Installer/Packager
=====================================================================
List of generatable packages:

Package Maintainer(s): Aric Cyr <aric.cyr@gmail.com>
Mario Limonciello <superm1@gmail.com>
Status: *UNVERIFIED*
Debian Packages:
Debian/sid
Debian/unstable
Debian/etch
Debian/stable
Debian/lenny
Debian/testing
Debian/experimental

Package Maintainer(s): Niko Mirthes <nmirthes@gmail.com>
Michael Larabel <michael@phoronix.com>
Status: *UNVERIFIED*
Fedora Packages:
Fedora/FC3
Fedora/FC4
Fedora/FC5
Fedora/FC6
Fedora/F7
Fedora/F8
Fedora/F9
Fedora/F10
Fedora/RHEL3
Fedora/RHEL4

Package Maintainer(s): Anssi Hannula <anssi@mageia.org>
Status: *UNVERIFIED*
Mageia Packages:
Mageia/1
Mageia/2
Mageia/3
Mageia/4

Package Maintainer(s): Dmitry Mikhirev <dmikhirev@mandriva.org>
Status: *UNVERIFIED*
Mandriva Packages:
Mandriva/2007.0
Mandriva/2007.1
Mandriva/2008.0
Mandriva/2008.1
Mandriva/2009.0
Mandriva/2009.1
Mandriva/2010.0
Mandriva/2010.1
Mandriva/2010.2
Mandriva/2011.0
Mandriva/2012.0

Package Maintainer(s): AMD
Status: Verified
RedHat Packages:
RedHat/RHEL5_64a
RedHat/RHEL6_64a
RedHat/RHEL5
RedHat/RHEL6

Package Maintainer(s): Emanuele Tomasi <tomasi@cli.di.unipi.it>
Status: *UNVERIFIED*
Slackware Packages:
Slackware/Slackware

Package Maintainer(s): Sebastian Siebert <freespacer@gmx.de>
Status: *UNVERIFIED*
SuSE Packages:
SuSE/SLE10-IA32
SuSE/SLE10-AMD64
SuSE/SLE11-IA32
SuSE/SLE11-AMD64
SuSE/SUSE121-IA32
SuSE/SUSE121-AMD64
SuSE/SUSE122-IA32
SuSE/SUSE122-AMD64
SuSE/SUSE123-IA32
SuSE/SUSE123-AMD64
SuSE/SUSE131-IA32
SuSE/SUSE131-AMD64
SuSE/SUSE-autodetection

Package Maintainer(s): Alberto Milone <alberto.milone@canonical.com>
Status: *UNVERIFIED*
Ubuntu Packages:
Ubuntu/gutsy
Ubuntu/hardy
Ubuntu/intrepid
Ubuntu/jaunty
Ubuntu/karmic
Ubuntu/lucid
Ubuntu/maverick
Ubuntu/natty
Ubuntu/oneiric
Ubuntu/precise
Ubuntu/quantal
Ubuntu/raring
Ubuntu/saucy
Ubuntu/source
Ubuntu/trusty

For example, to build a Debian Etch package, run the following:
% ./amd-driver-installer-<version>-<architecture>.run --buildpkg Debian/etch

Removing temporary directory: fglrx-install.pZakWe
Dann lassen wir uns die Pakete bauen mit dem Befehl
sudo ./amd-driver-installer-14.10.1006-x86.x86_64.run --buildpkg Ubuntu/trusty

für den Fall, dass wir Ubuntu in der Version 14.4 verwenden. Die Codenamen entnimmt man zur Not der Wikipedia. :)
Nun baut der Installer die .deb-Pakete und legt sie in das selbige Verzeichnis. Ein einfaches
sudo dpkg --install *.deb
sorgt für die Installation aller gebauten Pakete. Achtung! Hier dürfen natürlich keine weiteren, unbeteiligten .deb-Pakete in diesem Ordner liegen. Sonst werden die mit installiert.

2.3 Nachdem der Treiber installiert ist, muss vor dem Neustart
sudo amdconfig --initial
ausgeführt werden. Besitzt das System mehrere Grafikkarten von AMD, so muss es
sudo amdconfig --initial --adapter=all
lauten.

2.4 Neustart! :D

2.5 Jetzt brauchen wir noch das OpenCL-SDK von AMD, damit unter Linux die Grafikkarte für OpenCL zur Verfügung steht. Das Ding kann man sich HIER ziehen. Natürlich die 64bit Version für Linux.

2.6 Nach dem Download, will das Paket mit
tar –vxf AMD-APP-SDK-v2.9-lnx64.tgz
entpackt werden.

2.7 Nun hängen in dem Ordner einige Dateien mehr ab. Da wird nun mit
sudo ./Install-AMD-APP.sh
das APP SDK installiert.

2.8 Neustart! :D

2.9 Zum Testen, ob die Karte dem System zur Verfügung steht, macht man
clinfo

Der Output sollte dann so aussehen:
Number of platforms: 1
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 1.2 AMD-APP (1445.5)
Platform Name: AMD Accelerated Parallel Processing
Platform Vendor: Advanced Micro Devices, Inc.
Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices cl_amd_hsa


Platform Name: AMD Accelerated Parallel Processing
Number of devices: 2
Device Type: CL_DEVICE_TYPE_GPU
Device ID: 4098
Board name: AMD Radeon HD 7900 Series
Device Topology: PCI[ B#1, D#0, F#0 ]
Max compute units: 28
Max work items dimensions: 3
Max work items[0]: 256
Max work items[1]: 256
Max work items[2]: 256
Max work group size: 256
Preferred vector width char: 4
Preferred vector width short: 2
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 4
Native vector width short: 2
Native vector width int: 1
Native vector width long: 1
Native vector width float: 1
Native vector width double: 1
Max clock frequency: 1000Mhz
Address bits: 32
Max memory allocation: 1073741824
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 2408579072
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 0x00007f00439c7080
Name: Tahiti
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1445.5 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1445.5)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_image2d_from_buffer cl_khr_spir cl_khr_gl_event


Device Type: CL_DEVICE_TYPE_CPU
Device ID: 4098
Board name:
Max compute units: 8
Max work items dimensions: 3
Max work items[0]: 1024
Max work items[1]: 1024
Max work items[2]: 1024
Max work group size: 1024
Preferred vector width char: 16
Preferred vector width short: 8
Preferred vector width int: 4
Preferred vector width long: 2
Preferred vector width float: 8
Preferred vector width double: 4
Native vector width char: 16
Native vector width short: 8
Native vector width int: 4
Native vector width long: 2
Native vector width float: 8
Native vector width double: 4
Max clock frequency: 3406Mhz
Address bits: 64
Max memory allocation: 2147483648
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 8192
Max image 2D height: 8192
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 4096
Alignment (bits) of base address: 1024
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: Yes
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 32768
Global memory size: 4107227136
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Global
Local memory size: 32768
Kernel Preferred work group size multiple: 1
Error correction support: 0
Unified memory for Host and Device: 1
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: Yes
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 0x00007f00439c7080
Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
Vendor: GenuineIntel
Device OpenCL C version: OpenCL C 1.2
Driver version: 1445.5 (sse2,avx)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1445.5)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_spir cl_amd_svm cl_khr_gl_event

Wird die Grafikkarte nicht aufgeführt, lief irgendwas schief.


3. Installation von BOINC

3.1 Boinc wird eigentlich nicht installiert, sondern nur entpackt. Heruntergeladen wird die aktuelle stable-Version von HIER.

3.2 Das wird mit
sh boinc_7.2.42_x86_64-pc-linux-gnu.sh
entpackt. Nun hängt da ein Ordner BOINC rum.

3.2 Wir wollen ja nicht immer eine Konsole auf haben, in der der Client läuft. Dafür gibt es ein supertolles Programm namens screen. Das schnappen wir uns mit
sudo apt-get install screen

3.3 Jetzt gehen wir mit
cd BOINC
in den Boinc-Ordner. Dort können wir mit
screen ./run_client
nun den Client starten. Jetzt machen wir uns die tollen Eigenschaften von Screen zunutze. Mit dem Drücken von STR+A auf der Tastatur und einem anschließenden Druck auf D minimiert sich Screen und wir sind wieder in der alten Konsole. Und der Client rennt auf der virtuellen Konsole im Screen munter weiter. Und wenn wir wieder an den Client müssen aus irgendwelchen Gründen? Ganz simpel: mit
screen –r
holen wir die virtuelle Konsole mit dem Client wieder nach vorne. Haben wir mehrere Screens am Laufen, werden uns die laufenden Screens angezeigt. Mit der Prozess-ID können wir die einzelnen Screens wieder öffnen.
screen –r 33475
für den Screen mit der Prozess-ID 33475.

3.4 So, da der Client im Screen rennt, öffnen wir uns mit
./run_manager
den BOINC-Manager. Es sollte nun die Karte als OpenCL-Device angezeigt werden und nutzbar sein!

4. Eine Einführung in amdconfig, welches das CCC unter Windows ersetzt, da das CCC unter Linux (wie von mickythebeagle bereits bemerkt) ein Witz ist. Wichtiges zum Betrieb mehrerer AMD-Grafikkarten in einem PC. Diese haben Device-IDs, welche man sich mit
amdconfig --list-adapters
anzeigen lassen kann. Will man nun eine spezielle Grafikkarte ansprechen, so macht man das mit
amdconfig --adapter=0 --BEFEHL
Bevor ihr versucht, einer Karte eine Taktrate zuzuweisen und dabei versehentlich die 1000 MHz für die HD7970 auch der HD5850 aufdrückt, probiert es am besten mit einem harmlosen Befehl wie --odgt oder --odgc aus. :)

4.1 Hardware-Parameter auslesen. Ob es der Grafikkarte unter der Belastung durch Milkyway oder Collatz noch thermisch gut geht, findet man mit
amdconfig --odgt
heraus. od steht hier für "OverDrive" und gt für "GetTemperature".
Will man darüber hinaus auch die Taktraten und die Auslastung der GPU in Prozent [%] auslesen, so bietet sich
amdconfig --odgc
an. gc steht hier für "GetClocks".

4.2 Hardware-Parameter ändern. Overclocking! Der Heilige Gral für Cruncher, um auch das letzte Bisschen Leistung aus den Karten zu pressen. Aber nicht übertreiben und immer auf Rechenfehler achten! Testet die neuen Taktraten immer mit einem Projekt, welches die Ergebnisse gegenrechnen lässt. Milkyway und Einstein eignen sich dafür. Zunächst muss das Overclocking erst einmal freigeschaltet werden. Damit akzeptiert man den damit einhergehenden Garantieverlust.
amdconfig --od-enable
Ein entpsrechender Hinweis erscheint und es kann los gehen. Mit
amdconfig --od-setclocks=500,1200
setzt man einen Coretakt von 500 MHz und einen Ramtakt von 1200 MHz. Die Grenzen für die Übertaktung gibt das Tool vor und lassen sich per
amdconfig --odgc
auslesen. Hier findet man nun die neu eingestellten Taktraten. Diese sind aber nach einem Neustart wieder auf Standard gestellt. Ist man mit den gewählten Taktraten zufrieden und möchte diese dauerhaft setzen, so nutzt man
amdconfig --odcc
Hat man es sich anders überlegt, oder nötigt einen die durch den Pentathlon ausgelöste Hitzewelle dazu, so kann man mittels
amdconfig --odrd
die Default-Werte der Karte wiederherstellen.

4.3 Die Lüftersteuerung lässt sich auch per Konsole bearbeiten. Will man seine Lüfter auf eine bestimmte Geschwindigkeit setzen, so benutzt man
amdconfig --pplib-cmd "set fanspeed DEVICE-ID PROZENT"
und das sieht dann, wenn man seine Karte mit der ID 0 auf 100% dauerhafte Lüftergeschwindigkeit setzen will wiefolgt aus:
amdconfig --pplib-cmd "set fanspeed 0 100"
Will man wieder auf den Automatikbetrieb wechseln, kann man entweder den Rechner neu starten oder aber die Automatik folgendermaßen wieder aktivieren:
amdconfig --pplib-cmd "set fanspeed 0 auto"
Hat man mehrere Karten, muss man die Device ID halt entsprechend der Karte anpassen. Siehe oben.

4.4 Durchgehende Überwachung der Parameter. führt man die --odgc oder --odgt Befehle in der Konsole aus, bekommt man den aktuellen Wert ausgegeben. Für eine kontinuierliche Ausgabe gibt uns AMD kein Tool mit, dafür hat aber Linux bereits eines an Bord. Unser Kumpel für diesen Fall heisst watch. Angenommen, wir wollen kontinuerlich die GPU-Temperatur überwachen, so benutzen wir
watch amdconfig --odgt
um uns in der aktuellen Konsole die Temperatur anzeigen zu lassen. Watch erneuert dann standardmässig alle 2 s die Abfrage des Befehls mit dem jeweils aktuellen Wert. Möchte man eine schnellere oder langsamere Anzeige haben, so lässt sich dieser Wunsch per Option an watch übergeben. Ich möchte alle 0.5 s den Temperaturwert aktualisiert haben, also
watch -n 0,5 amdconfig --odgt
Und schon wird es mir angezeigt.

4.4.1 Überwachung von amdconfig per GUI-Tool. Für die Windows-Verwöhnten und Konsolenhasser nach einem Tipp von cyrusNGC_224 (Danke an dieser Stelle dafür).
HIER kann man sich AMDOverdriveControl runterladen. Man bekommt ein deb-Installatiospaket, welches man via
sudo dpkg -i amdoverdrivectrl_1.2.7_amd64.deb
installieren kann. Die Anwendung sollte dann im Programme-Menü auftauchen. Ich kann das hier NICHT TESTEN, weil Nvidia-GraKa. Sollte aber so funktionieren. Bitte daher um Rückmeldung, falls es nicht geht.

4.5 Überwachung der restlichen PC-Temperaturen. Da auch der Prozessor und das Mainboard Temperatursensoren und die Lüfteranschlüsse Drehzahlsensoren haben, will ich hier kurz sensors vorstellen. Das Programm wird mit
sudo apt-get install lm-sensors
installiert. Nun muss das Programm noch die vorhandenen Sensoren einlesen. Das machen wir einmalig nach der Installation mittels
sudo sensors-detect
Jetzt werden wir gefragt, welche Sensoren da abgetastet werden sollen. Meiner Erfahrung nach einfach alle mit yes abtasten lassen und bei der Nachfrage nach dem Kernelmodul auch mit yes antworten, damit sensors immer zur Verfügung steht. Nach einem Neustart ist das Kernelmodul geladen und wir können die Werte mit
sensors
abfragen. Hier ist natürlich auch wieder watch von Interesse, mit welchem wir einfach die Werte beim Crunchen überwachen können.
watch sensors
Das soll es hier auch erst einmal mit der Überwachung der Hardware sein soweit.


5. Der Headless-Betrieb! Jetzt geht es ans Eingemachte, aber trotzdem keine Angst davor haben. Es wird in diesem Kapitel eine kleine Übung für einen Konsolen-basierten Texteditor geben. Den braucht man später dann auch, um Boinc remote zu konfigurieren.
Wer träumt nicht davon, einfach 50 Rechner herumstehen zu haben, auf welche man durch einen einzigen PC bequem zugreifen kann und auch systemrelevante Aufgaben durchführen kann? Und dabei noch keinerlei CPU/GPU-Last durch einen graphischen Desktop.... für den Cruncher ein Traum. Dank aktueller AMD-Treiber jetzt auch im Crunching-Betrieb mit GPUs kein Problem mehr! Aber eines nach dem Anderen....

5.1 Den Fernzugriff ermöglichen. Wir benötigen einen ssh-server, um dann später per SSH auf den Rechner zugreifen zu können. Den installieren wir uns mit
sudo apt-get install openssh-server

5.2 Den Fernzugriff nutzen unter Windows. Man lädt sich Putty runter. Das kann man dann starten und trägt die IP-Adresse des Linux-Rechners ein und verbindet. Man wird nach Login und Passwort gefragt und schon seit ihr auf eurem Rechner.

5.3 OpenCL headless ermöglichen. Der wohl schwierigste Teil der ganzen Reise. Zunächst die Anleitung für den Gnome3-Desktop, da diese deutlich kürzer und einfacher ist. Gnome verwendet den Display Manager GDM, wohingegen Unity (der Windowmanager von Ubuntu) den Display Manager LightDM verwendet.

5.4 Headless mit GDM. Quelle: http://www.mayankdaga.com/running-opencl-applications-remotely-on-amd-gpus/
Zunächst müssen wir als root einige Systemdateien ändern. Zum einen
sudo nano /etc/gdm/init/Default
hier muss noch vor dem Ende der Datei (Die 0 am Ende) folgendes eingetragen werden:
xhost +
chmod uog+rw /dev/ati/card*

Danach müssen wir der Konsole noch mitteilen, wie das mit dem X-Server laufen soll. Dafür müssen wir auch wieder in einer Systemdatei herumfummeln.
sudo nano /etc/bashrc
in welcher wir dann folgende Zeilen hinzufügen müssen:
case $DISPLAY in '') export DISPLAY=:0;; *) ;; esac
WICHTIG: die '' sind zwei einzel-Symbole und nicht das einfache Anführungszeichen!

Wenn alles gespeichert ist, dann sollte nach einem Neustart OpenCL auch per SSH zugängig sein. Also einfach
clinfo
per SSH ausführen und schauen, ob die Karte(n) aufgeführt werden.

5.5 Headless mit LightDM.
-to do-
 
Zuletzt bearbeitet:
Eine Klasse Anleitung !
Das dürfte vielen Linux Usern die Angst vorm Terminal haben diese jene nehmen.
 
Klasse, Eseltreiber.

Ich werde es probieren :).
 
Das Ganze jetzt noch für openSUSE und ich wär happy *lova*

Gruß,
Ritschie
 
Hab mal genau nach der Anleitung installiert.
Der drecks Catalyst hat ja unter Linux noch nicht mals ne lüfter Einstellung ?

Wollte mal eine XFX HD6850 testen. Die hat ja beim System Start 73% Lüfter Speed, und das hält keiner aus.
 
Alles kein Thema. Auch unter Linux geht das. Ich wollte das Kapitel amdconfig eigentlich erst später machen. Aber hier für dich mal die Möglichkeit der Lüftereinstellung. Diese ist nur temporär, d.h. nach einem Neustart wieder auf Standard. Sehr praktisch, wenn man mal einen Fehler gemacht hat und die Standard-Einstellungen wieder haben möchte.
Mit
amdconfig --pplib-cmd "set fanspeed 0 100"
setzt du die Lüftergeschwindigkeit von device 0 auf 100%. Wenn es wieder zurück zur Automatik gehen soll:
amdconfig --pplib-cmd "set fanspeed 0 auto"

Kommt aber auch noch in den Guide zusammen mit allen anderen wichtigen amdconfig Optionen.
 
ich kenne die Befehle, aber andere evtl. nicht.


bildschirmfotovom2014o6kkb.png


und der allerwichtigste ist dann auch erst mal dieser :

aticonfig --adapter=0 --od-gettemperature

Mann soll ja auch wissen wie warm die Karte wird.

@Ritschie ,
Das Bios der XFX ist ja das Prob: da wird immer 73% Lüfterspeed geregelt . ;D
 
Zuletzt bearbeitet:
Richtig, allerdings bevorzuge ich die Kurzform. Wenn nur eine Karte verbaut ist, dann ist die Adapter-Auswahl nicht notwendig. Ein einfaches
amdconfig --odgt
reicht da. :)
 
Boinc meldet bei mir leider immer noch "No usable GPUs found".
clinfo erkennt auch die Grafikkarte (s. Spoiler). Liegt es vielleicht an der Grafikeinheit des i3? Stört das?

Number of platforms: 1
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 1.2 AMD-APP (1268.1)
Platform Name: AMD Accelerated Parallel Processing
Platform Vendor: Advanced Micro Devices, Inc.
Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices


Platform Name: AMD Accelerated Parallel Processing
Number of devices: 2
Device Type: CL_DEVICE_TYPE_GPU
Device ID: 4098
Board name: ASUS R7 260X Series
Device Topology: PCI[ B#1, D#0, F#0 ]
Max compute units: 14
Max work items dimensions: 3
Max work items[0]: 256
Max work items[1]: 256
Max work items[2]: 256
Max work group size: 256
Preferred vector width char: 4
Preferred vector width short: 2
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 4
Native vector width short: 2
Native vector width int: 1
Native vector width long: 1
Native vector width float: 1
Native vector width double: 1
Max clock frequency: 1075Mhz
Address bits: 32
Max memory allocation: 1073741824
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 1713373184
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 0x00007f3c239b2560
Name: Bonaire
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1268.1 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1268.1)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_image2d_from_buffer


Device Type: CL_DEVICE_TYPE_CPU
Device ID: 4098
Board name:
Max compute units: 4
Max work items dimensions: 3
Max work items[0]: 1024
Max work items[1]: 1024
Max work items[2]: 1024
Max work group size: 1024
Preferred vector width char: 16
Preferred vector width short: 8
Preferred vector width int: 4
Preferred vector width long: 2
Preferred vector width float: 8
Preferred vector width double: 4
Native vector width char: 16
Native vector width short: 8
Native vector width int: 4
Native vector width long: 2
Native vector width float: 8
Native vector width double: 4
Max clock frequency: 2799Mhz
Address bits: 64
Max memory allocation: 4192850944
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 8192
Max image 2D height: 8192
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 4096
Alignment (bits) of base address: 1024
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: Yes
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 32768
Global memory size: 16771403776
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Global
Local memory size: 32768
Kernel Preferred work group size multiple: 1
Error correction support: 0
Unified memory for Host and Device: 1
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: Yes
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 0x00007f3c239b2560
Name: Intel(R) Core(TM) i3-3220T CPU @ 2.80GHz
Vendor: GenuineIntel
Device OpenCL C version: OpenCL C 1.2
Driver version: 1268.1 (sse2,avx)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1268.1)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt
 
Dann schalte die igp des i3 doch mal im Bios/Uefi aus ?

Dann siehste ja obs daran liegt !
 
Schreib' uns mal die ersten Zeilen des Boinc-Logs hier rein. Da kann man schon mal etwas mehr Infos bekommen.

In etwa so weit mit zensierten IDs und so.

Code:
24.04.2014 11:20:42 |  | cc_config.xml not found - using defaults
24.04.2014 11:20:42 |  | Starting BOINC client version 7.2.42 for x86_64-pc-linux-gnu
24.04.2014 11:20:42 |  | log flags: file_xfer, sched_ops, task
24.04.2014 11:20:42 |  | Libraries: libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
24.04.2014 11:20:42 |  | Data directory: /home/[S]xxx[/S]/Downloads/BOINC
24.04.2014 11:20:42 |  | CAL: ATI GPU 0: AMD Radeon HD 7870/7950/7970/R9 280X series (Tahiti) (CAL version 1.4.1848, 3072MB, 2916MB available, 8288 GFLOPS peak)
24.04.2014 11:20:42 |  | OpenCL: AMD/ATI GPU 0: AMD Radeon HD 7870/7950/7970/R9 280X series (Tahiti) (driver version 1445.5 (VM), device version OpenCL 1.2 AMD-APP (1445.5), 3072MB, 2916MB available, 8288 GFLOPS peak)
24.04.2014 11:20:42 |  | OpenCL CPU: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz (OpenCL driver vendor: Advanced Micro Devices, Inc., driver version 1445.5 (sse2,avx), device version OpenCL 1.2 AMD-APP (1445.5))
24.04.2014 11:20:42 |  | Host name: [S]xxx[/S]
24.04.2014 11:20:42 |  | Processor: 8 GenuineIntel Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz [Family 6 Model 42 Stepping 7]
24.04.2014 11:20:42 |  | Processor features: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
24.04.2014 11:20:42 |  | OS: Linux: 3.13.0-24-generic
24.04.2014 11:20:42 |  | Memory: 3.83 GB physical, 3.96 GB virtual
24.04.2014 11:20:42 |  | Disk: 454.42 GB total, 424.50 GB free
24.04.2014 11:20:42 |  | Local time is UTC +2 hours
24.04.2014 11:20:42 |  | Config: GUI RPCs allowed from:
24.04.2014 11:20:42 |  | [S]xxx.xxx.xxx.xxx[/S]
24.04.2014 11:20:42 | Einstein@Home | URL [url]http://einstein.phys.uwm.edu/;[/url] Computer ID [S]xxx[/S]; resource share 100
24.04.2014 11:20:42 | boincsimap | URL [url]http://boincsimap.org/boincsimap/;[/url] Computer ID [S]xxx[/S]; resource share 990
24.04.2014 11:20:42 |  | General prefs: from [url]http://bam.boincstats.com/[/url] (last modified 02-May-2013 20:39:58)
24.04.2014 11:20:42 |  | Host location: none
24.04.2014 11:20:42 |  | General prefs: using your defaults
24.04.2014 11:20:42 |  | Reading preferences override file
24.04.2014 11:20:42 |  | Preferences:
24.04.2014 11:20:42 |  | max memory usage when active: 1958.48MB
24.04.2014 11:20:42 |  | max memory usage when idle: 3525.26MB
24.04.2014 11:20:42 |  | max disk usage: 408.98GB
24.04.2014 11:20:42 |  | max CPUs used: 6
24.04.2014 11:20:42 |  | don't compute while active
24.04.2014 11:20:42 |  | don't use GPU while active
24.04.2014 11:20:42 |  | suspend work if non-BOINC CPU load exceeds 25%
24.04.2014 11:20:42 |  | (to change preferences, visit a project web site or select Preferences in the Manager)
24.04.2014 11:20:42 |  | Not using a proxy
24.04.2014 11:20:44 |  | Suspending GPU computation - user request
24.04.2014 11:20:44 | Einstein@Home | Sending scheduler request: To report completed tasks.
24.04.2014 11:20:44 | Einstein@Home | Reporting 2 completed tasks
 
Zuletzt bearbeitet:
Log:
24-Apr-2014 11:46:47 [---] cc_config.xml not found - using defaults
24-Apr-2014 11:46:47 [---] Starting BOINC client version 7.2.42 for x86_64-pc-linux-gnu
24-Apr-2014 11:46:47 [---] log flags: file_xfer, sched_ops, task
24-Apr-2014 11:46:47 [---] Libraries: libcurl/7.29.0 NSS/3.15.5 zlib/1.2.7 libidn/1.26 libssh2/1.4.3
24-Apr-2014 11:46:47 [---] Data directory: /var/lib/boinc
24-Apr-2014 11:46:47 [---] OpenCL CPU: Intel(R) Core(TM) i3-3220T CPU @ 2.80GHz (OpenCL driver vendor: Advanced Micro Devices, Inc., driver version 1268.1 (sse2,avx), device version OpenCL 1.2 AMD-APP (1268.1))
24-Apr-2014 11:46:47 [---] No usable GPUs found
24-Apr-2014 11:46:47 [---] Host name: localhost.localdomain
24-Apr-2014 11:46:47 [---] Processor: 4 GenuineIntel Intel(R) Core(TM) i3-3220T CPU @ 2.80GHz [Family 6 Model 58 Stepping 9]
24-Apr-2014 11:46:47 [---] Processor features: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave avx f16c lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
24-Apr-2014 11:46:47 [---] OS: Linux: 3.13.5-101.fc19.x86_64
24-Apr-2014 11:46:47 [---] Memory: 15.62 GB physical, 7.82 GB virtual
24-Apr-2014 11:46:47 [---] Disk: 49.09 GB total, 37.64 GB free
24-Apr-2014 11:46:47 [---] Local time is UTC +2 hours
24-Apr-2014 11:46:47 [Asteroids@home] URL http://asteroidsathome.net/boinc/; Computer ID 75260; resource share 500
24-Apr-2014 11:46:47 [Constellation] URL http://aerospaceresearch.net/constellation/; Computer ID 64820; resource share 500
24-Apr-2014 11:46:47 [Einstein@Home] URL http://einstein.phys.uwm.edu/; Computer ID 10702667; resource share 500
24-Apr-2014 11:46:47 [---] General prefs: from http://www.worldcommunitygrid.org/ (last modified 06-Nov-2013 20:18:21)
24-Apr-2014 11:46:47 [---] Host location: none
24-Apr-2014 11:46:47 [---] General prefs: using your defaults
24-Apr-2014 11:46:47 [---] Reading preferences override file
24-Apr-2014 11:46:47 [---] Preferences:
24-Apr-2014 11:46:47 [---] max memory usage when active: 12795.57MB
24-Apr-2014 11:46:47 [---] max memory usage when idle: 15194.73MB
24-Apr-2014 11:46:47 [---] max disk usage: 5.00GB
24-Apr-2014 11:46:47 [---] suspend work if non-BOINC CPU load exceeds 25%
24-Apr-2014 11:46:47 [---] (to change preferences, visit a project web site or select Preferences in the Manager)
24-Apr-2014 11:46:47 [---] Not using a proxy
24-Apr-2014 11:47:02 Initialization completed
24-Apr-2014 12:14:10 [Constellation] Sending scheduler request: To report completed tasks.
24-Apr-2014 12:14:10 [Constellation] Reporting 2 completed tasks
24-Apr-2014 12:14:10 [Constellation] Not requesting tasks: don't need
24-Apr-2014 12:14:12 [Constellation] Scheduler request completed
24-Apr-2014 12:34:07 [Asteroids@home] Computation for task ps_140415_110387_9_0 finished
24-Apr-2014 12:34:07 [Constellation] Starting task trackjack_hyend_www.hybrid-triebwerk.de_2014-04-19_00_1481942_2
24-Apr-2014 12:34:09 [Asteroids@home] Started upload of ps_140415_110387_9_0_0
24-Apr-2014 12:34:15 [Asteroids@home] Finished upload of ps_140415_110387_9_0_0
 
Ah, du verwendest Fedora, richtig? OS: Linux: 3.13.5-101.fc19.x86_64
Unter Fedora habe ich das ehrlich gesagt noch nie zum Laufen bekommen. Aber hier hat jemand ein ähnliches Problem gehabt, vielleicht hilft dir das weiter: http://boinc.berkeley.edu/dev/forum_thread.php?id=8571
 
Ich habs nicht hinbekommen.
Nach dem Neustart der Catalyst Installation 2.4 sagt er die Konfiguration klappt nicht und etwas mit low Mode oder sowas. Er bot diverse Möglichkeiten, aber da kam ich nicht weiter :-(.

Und danach noch Grub zerschossen, da kommt doch Freude auf.

Edit:
Konnte den Fehler näher eingrenzen.
Es liegt nicht am Catalyst-Treiber.
Schon nachdem ich sudo...update und ...dist-upgrade gemacht habe, kommt es nach Neustart zu Grafikfehlern, wodurch das System praktisch unbedienbar wird.
Äußerst uncool, wo kann man sich beschwerden ;-)?
 
Zuletzt bearbeitet:
Du nutzt das normal-Ubuntu mit Unity? Damit hatte ich auch schonmal Grafikfehler in Verbindung mit AMD Karten. Der Bildschirm wurde nur halb oder klötzchenweise angezeigt.
 
Ja, das normale Ubuntu.
Was wäre die Alternative?
 
Nahezu unendlich viele. Ich nehme Ubuntu Gnome, wegen dem GDM als Displaymanager. Gibt aber noch Kubuntu mit KDE, Xubuntu mit Xfce oder Lubuntu mit LXDE.....
Woher der Fehler mit dem zerstückelten Bildschirm kommt, weiss ich aber auch bis heute nicht. Einige Rechner produzieren ihn... andere nicht.
 
Hab Xubuntu und Gnome probiert, bei beiden wurde der Installationsbildschirm nicht richtig dargestellt.

Mist verdammter. Die einzige Version, mit der ich überhaupt installieren konnte war die Beta2.
 
Dann schnapp' dir zur Not das Ubuntu 13.10 und schau, ob es mit der alten Version funktioniert. Rennt hier auch noch auf einem Rechner. Das mit dem Installer ist aber auch arg merkwürdig. Da weiss ich auch nicht weiter.
 
Hatte ich heute Nacht indirekt mit Linux Mint 16 probiert. Selbes Problem.
 
Kann man bei dem neuen Client unter Ubuntu nicht die Ansicht ändern ?

Ich meine :

3. Installation von BOINC

3.1 Boinc wird eigentlich nicht installiert, sondern nur entpackt. Heruntergeladen wird die aktuelle stable-Version von HIER.

3.2 Das wird mit
sh boinc_7.2.42_x86_64-pc-linux-gnu.sh
entpackt. Nun hängt da ein Ordner BOINC rum.


dann bla bla bla ...........

Der rennt ja, aber nur in der Kompackt Ansicht. *suspect*
 
Die sollte man ganz gewöhnlich wie unter Windows über Ansicht/erweiterte Ansicht umschalten können. Wenn du Unity verwendest, dann befindet sich die Leiste mit den MEnüs ganz oben am Bildschirmrand. Ist eine Unity-Eigenheit.... weswegen ich es auch nicht nutze.
 
Zurück
Oben Unten