OpenCL mit Kali Linux und einer AMD R9

In meinem nachweihnachtlichen Wahn ergab es sich das ich beschloss mein kleiner PC bräuchte , aus Gründen!, mal wieder eine neue Grafikkarte. So erstand ich kurz nach Weihnachten eine kleine AMD R9 Variante und freute mich ein paar Stunden an der doch deutlich gestiegenen Spieleperformance unter meiner Windows8.1 Installation. Nun gehöre ich allerdings auch zu den bekennenden Linuxbenutzern und meine Windowsinstallation fällt für mich wirklich nur unter reine Spielerei, ab und an muss man sich die Abgründe auch mal anschauen um Linux wieder richtig zu schätzen zu wissen. Aus der reinen Bequemlichkeit heraus nicht mehr alle Tools die ich so für meine Arbeit und mein Hobby so brauche von Hand in Debian nachzuinstallieren bin ich inzwischen auch auf meinem Desktop von Debian zu Kali Linux gewechselt, was sich auch für den „normalen“ Betrieb hervorragend eignet.

Mein neues Spielzeug sollte also auch unter Kali seine Aufgaben verrichten und mir dort ein sauberes Bild liefern, kein Problem mit den komerziellen AMD Treibern, dachte ich mir. Falsch gedacht. Die Treiber die Kali mitlieferte wahren wie zu erwarten schon etwas älter weshalb diese nicht so ganz in Frage kamen. Also kämpfte ich mich mit W3M durch die AMD Seite um an ein wenig aktuelere Treiber zu kommen. Ein Erlebnis das ich nicht unbedingt jeden Tag brauche, um ehrlich zu sein. Nach einer Gefühlten halben Stunde hatte ich mich dann mit W3M auch wieder halbwegs angefreundet und die passenden Stable Treiber für Linux auf meiner Kiste. Das Erbebnis war dann allerdings ernüchternd, meine gerade gekaufte Karte war dann wohl doch etwas zu neu für den hauseigenen fglrx Treiber von AMD. Zumindest wurde sie noch immer nicht erkannt. Zurück also zu meinem W3M, langsam begann ich sogar ernsthaft wieder mich an die Bedienung so richtig zu erinnern, erschreckend. Weitere 20 Minuten später stolperte ich dann über die DEV Treiber von AMD die angeblich sogar diese Karte unterstützen. Also ging der ganze Spaß noch einmal von vorne los. Da der AMD Installer inzwischen richtig gut funktioniert stellte mich der Uninstall der alten Treiber und die Installation der neuen auch nicht wirklich vor ein größeres Problem. Einen kurzen Reboot später, erkannte mein Rechner dann auch unter Linux meine neueste Erwerbung und ich war fürs erste zufrieden.

Fürs erste. So eine GPU kann ja auch für andere nützliche Dinge verwendet werden, da sie sich unter Linux bei mir doch eher langweilen dürfte. Zeit also meinem alten Freund Pyrit mal etwas Beine zu machen.

Den ursprünglichen Benchmark habe ich dann einfach mal vergessen zu Kopieren, man sollte aber eigentlich noch schön erkennen können wo der den ungefähr angesiedelt war. Mit 4 CPU Kernen so bei mageren 2200 PMK/s. Zwar nicht schlecht für so eine billig CPU doch das sollte dann doch noch deutlich besser gehen. Doch vorher wartet ein wenig Arbeit auf mich. Nach kurzer Benutzung von Google landete ich auch auf einer Webseite die mir eine passende Lösung anbot. Die Anleitungen die im Netz zu finden waren, zumindest alle die mir so von Google in den ersten Minuten geliefert wurden hatten alle samt allerdings das gleiche Problem, sie basierten auf einer alten Version des AMD-SDK und AMD hat da wohl in der neuesten Version einiges geändert. Meine ersten Versuche. Pyrit mit OpenCL unterstüzun zu kompilieren schlugen auf mehrere, teils extrem schmerzhafte Arten fehl. Ein paar Tage lies ich die Grafikkarte also links liegen und kümmerte mich wieder um ein paar andere Probleme.

Heute Nacht beschloss ich allerdings in die zweite Runde zu gehen und versuchte es auf die denkbar einfachste Weise. ATI-Dev-Teiber installieren, AMD-APP-SDK installieren, PyOpenCL herunterladen und mit einem einfachen python configure.py && make install installieren und zum Abschluß das wichtigste pyrit und cpyrit-opencl herunterladen und installieren. Fertig. Auf keinen Fall sollte man auf die Idee kommen auch nur ein einziges Packet aus dem Kali Repo zu ziehen das auch nur im Ansatz mit OpenCL zu tun hat. Sowas würde dazu führen das einfach mal sämtliche ATI-Librarys die zum Trebeir gehören geplättet werden und man am Ende in komischen Zuständen landet. Auch Linux ist so ganz ohne Bild nur extrem schwer zu bedienen. Der Einfachste Weg war also in diesem Fall anscheinend der richtige, kein herumspielen mit ldconfig (macht das neue AMD-APP-SDK automatisch) und auch keine anderen Sonderaktionen. Treiber drauf, SDK drauf, Python unterstützung drauf und damit hat sich dann auch dieses Problem gelöst. Hier mal mein erster Benchmark.

root@brecht-desk:~# pyrit benchmark
No protocol specified
Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+

Running benchmark (13565.4 PMKs/s)... - 

Computed 13565.38 PMKs/s total.
#1: 'OpenCL-Device 'Devastator'': 12068.0 PMKs/s (RTT 2.8)
#2: 'CPU-Core (SSE2/AES)': 733.1 PMKs/s (RTT 3.0)
#3: 'CPU-Core (SSE2/AES)': 827.9 PMKs/s (RTT 3.3)
#4: 'CPU-Core (SSE2/AES)': 993.0 PMKs/s (RTT 2.8)

Nicht schlecht, doch Moment mal, Devastator? Das war doch der alte GPU der irgendwo in meinem Prozessor wohnt. Mal abgesehen davon sind 12068 eventuell doch etwas zu wenig dafür das da eine halbwegs aktuelle Karte drin steckt. Kurzes suchen in meinen Systemeinstellungen zeigte mir dann auch wo mein Problem lag. Die alte Grafikkarte war noch aktiv. Wann mir diese Einstellung im Bios geglückt ist darüber kann ich dann wohl nur spekulieren, die letzten Tage sind aufgrund von akutem Schlafmangel etwas verschwommen. Kurzer Reboot mit geänderten Bioseinstellungen ergab dann auch auch direkt ein deutlich besseres Ergebnis.

brechthold@brecht-desk:~$ pyrit benchmark
Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+

Running benchmark (58535.3 PMKs/s)... \ 

Computed 58535.31 PMKs/s total.
#1: 'OpenCL-Device 'Pitcairn'': 61089.2 PMKs/s (RTT 2.7)
#2: 'CPU-Core (SSE2/AES)': 830.6 PMKs/s (RTT 3.1)
#3: 'CPU-Core (SSE2/AES)': 863.6 PMKs/s (RTT 2.8)
#4: 'CPU-Core (SSE2/AES)': 787.0 PMKs/s (RTT 2.9)

So kann man das jetzt dann auch schon fast lassen, nur ein kleines Problemchen hätte ich da noch. Mir fehlt ein CPU Kern. Ganz am Anfang, also vor meiner kleinen Compilersession gab es da noch 4 CPU Kerne. Vor allem muss es doch auch noch eine Mögichkeit geben beide GPU Chips irgendwie zum laufen zu bekommen. Das sind dann allerdings Probleme mit denen ich mich im neuen Jahr auseinandersetze, für den Moment sollten mir die 60k ausreichen um ein wenig zu experimentieren. Der vollständigkeit halber hier allerdings auch noch die Ergebnisse der langen Version des Benschmarks unter Pyrit. Hashcat kommt dann Anfang nächsten Jahres dran, mal schauen ob es da ähnlich läuft.

brechthold@brecht-desk:~$ pyrit benchmark_long
Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+

Running benchmark (61661.8 PMKs/s)... / 

Computed 61661.78 PMKs/s total.
#1: 'OpenCL-Device 'Pitcairn'': 61039.6 PMKs/s (RTT 2.9)
#2: 'CPU-Core (SSE2/AES)': 796.9 PMKs/s (RTT 3.0)
#3: 'CPU-Core (SSE2/AES)': 824.1 PMKs/s (RTT 3.1)
#4: 'CPU-Core (SSE2/AES)': 812.6 PMKs/s (RTT 2.9)

Nachdem jetzt meine Arbeit hier beendet ist werde ich jetzt noch versuchen im alten Jahr ein paar Stunden Schlaf zu finden um das neue dann auch passend zu begrüßen.

Brechthold
Brechthold gehört zu dem Gründungsteam von Contempt-it . Nach ein paar Jahren der Abstinenz jetzt wieder zurück im Adminteam um ein wenig Ordnung zu schaffen. Zu seinen Lieblingsthemen gehören Honeypots, IDS-Systeme und Servermonitoring. Neben seiner Arbeit im Adminteam werkelt er noch an seinem Brechtblog

3 Kommentare

  1. Hallo,

    ich würde gerne wissen, welche Treiber Version und welche APP-SDK Version du installiert hast.
    Gibt es Abhängigkeiten, die vor der TreiberInstallation installiert sein müssen? Fresh Kali 1.0.6 Installation

    Habe eine R9 290x Powercolor PCS+ Karte und wenn ich unter System Settings –> Details nachsehe, dann steht da VESA: HAWAII

    System Settings –> Details I see Graphics: VESA: HAWAII

    root@ozo:~# grep -i vesa /var/log/Xorg.0.log
    [ 3.167] (II) fglrx(0): VESA BIOS detected
    [ 3.167] (II) fglrx(0): VESA VBE Version 3.0
    [ 3.167] (II) fglrx(0): VESA VBE Total Mem: 16384 kB
    [ 3.167] (II) fglrx(0): VESA VBE OEM: AMD ATOMBIOS
    [ 3.167] (II) fglrx(0): VESA VBE OEM Software Rev: 15.42
    [ 3.167] (II) fglrx(0): VESA VBE OEM Vendor: (C) 1988-2010, Advanced Micro Devices, Inc.
    [ 3.167] (II) fglrx(0): VESA VBE OEM Product: HAWAII
    [ 3.167] (II) fglrx(0): VESA VBE OEM Product Rev: 01.00

    root@ozo:~# fglrxinfo
    display: :0.0 screen: 0
    OpenGL vendor string: Advanced Micro Devices, Inc.
    OpenGL renderer string: AMD Radeon R9 290 Series
    OpenGL version string: 4.3.12618 Compatibility Profile Context 13.251

    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii XT [Radeon R9 290X] (prog-if 00 [VGA controller])
    Kernel driver in use: fglrx_pci

    Für eine Hilfestellung wäre ich dir sehr dankbar!

Schreibe einen Kommentar zu tr00n3r Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen