Dienstag, 16. April 2024

Archiv


Im Rausch der Rechengeschwindigkeit

Dass sich Grafikkarten für hochkomplexe Rechenprozesse nutzen lassen, ist bekannt. Mit OpenCL, einer Erweiterung der Programmiersprache C, kann sogar festgelegt werden, welche Arbeitsschritte – zum Beispiel eines Bildbearbeitungsprogramms – ausschließlich von der Grafikkarte ausgeführt werden sollen.

Von Achim Killer | 05.10.2013
    "Stellen Sie sich vor, Sie haben Anwendungen, in denen hochkomplexe Algorithmen bearbeitet werden müssen. Wenn Sie das jetzt auf einem normalen Intel-Prozessor ablaufen lassen würden, dann würden Sie möglicherweise zwölf Stunden Rechenzeit benötigen. OpenCL bietet Ihnen jetzt die Möglichkeit, diese Algorithmen umzusetzen in parallelisierte Anweisungen für zum Beispiel GPUs und die können dann natürlich in einem sehr viel schnelleren Takt ausgeführt werden. Also da gibt es Prozesse, die wirklich von zwölf Stunden auf 15 Minuten reduziert werden können."

    Manfred Kloiber: Frank Förster vom Chip-Entwickler Altera zu den Vorteilen von OpenCL, der Open Computing Language. Diese Vorteile bestehen darin, dass OpenCL-Entwickler sowohl für den Hauptprozessor, als auch für den Grafik-Chip eines Computers programmieren. Überhaupt liegt, Grafikprozessoren rechnen zu lassen, im Trend. Titan, der zweitstärkste Supercomputer der Welt, arbeitet etwa mit einer viertel Million Grafik-Kernen von Nvidia, wobei er sehr viel weniger Strom verbraucht als die wenigen vergleichbaren Systeme. Und auch Smartphones sollen künftig verstärkt die Grafikeinheiten ihrer Prozessoren nutzen. Achim Killer berichtet:


    Beginn Beitrag:


    Die wichtigste Aufgabe des Chips auf der Grafikkarte ist es, den Computerbildschirm mit Pixeln zu füllen. Das ist rechenaufwendig. Nur deshalb sind solche Beschleunigerbausteine entwickelt wurden. Trotzdem können sie mehr, Bildbearbeitungsbefehle ausführen etwa. Und das machen sie, wenn das entsprechende Multimedia-Programm in OpenCL geschrieben ist, einer Erweiterung der Programmiersprache C. Frank Förster vom Chip-Entwickler Altera:

    "Die Zielsetzung von OpenCL ist es einfach, Parallelisierungsanweisungen zu geben, um festzulegen, welche Teile eines Programms auf einer anderen Rechnerplattform ausgeführt werden kann, zum Beispiel GPUs oder FPGAs."

    Also auf Grafikprozessoren oder Field Programmable Gate Arrays, den wichtigsten Beschleunigerchips. Diese Bausteine verarbeiten dann den Programmcode gemeinsam mit dem Hauptprozessor, wobei die für den Beschleunigerchip vorgesehenen Teile erst, während das Programm läuft, in Maschinen-Code übersetzt werden.

    "Je nach Zielsystem muss natürlich diese Hochsprache in unterschiedliche Maschinensprachen übersetzt werden. Also ein Beispiel: Nehmen Sie eine GPU. Der OpenCL-Befehl wird dann durch einen Ziel-Compiler für die GPU geleitet und erzeugt dann eben einen Maschinenbefehl für die GPU. Das ist dann die Herausforderung, dass man eben für jede Ziel-Plattform einen eigenen Maschinen-Code-Compiler vorhalten muss."

    Aber wenn so ein Just-in-Time-Compiler erst einmal entwickelt ist, dann unterstützt der entsprechende Beschleuniger-Chip jede in OpenCL geschriebene Anwendung. In der rechenhungrigen Unternehmens-IT kommt OpenCL denn auch schon seit einiger Zeit zum Einsatz.

    "Im Prinzip überall da, wo man sagt, ich muss Prozesse massiv beschleunigen. Also wir haben Beispiele im High-Frency-Trading. Gleichzeitig auch Suchmaschinen verwenden OpenCL genauso wie die Versicherungswirtschaft für die Risikobewertung. Also es wird sehr stark im Server-Acceleration-Bereich angewendet."

    Und jetzt hält OpenCL auch im Desktop- und Handheld-Bereich Einzug. Das Bildbearbeitungsprogramm Photoshop unterstützt seit letztem Jahr OpenCL. Und der Grafikkartenhersteller Nvidia drückt mit Macht sein eigens Programmiersystem für GPUs in den Markt für Smartphones.

    Virtuelle Münzen, Bitcoins, lassen sich sehr effektiv schürfen, wenn dafür nicht nur der Hauptprozessor, sondern auch der Grafik-Chip eines Rechners verwendet wird.

    "Dieselben Funktionen, die benötigt werden, um dreidimensionale Grafiken darzustellen, kann man verwenden, um sehr effizient Hashwerte auszurechnen. Das bedeutet, dass Systeme mit starken Grafikkarten sehr gut geeignet sind, um Bitcoins zu suchen",

    so Miko Hyppönen, der Cheftechniker des IT-Sicherheitsunternehmens F-Secure. Er befasst sich mit dem Bitcoin-Mining, weil Bot-Netze mittlerweile nicht nur Spam verschicken und Websites angreifen, sondern für ihre Bot-Herder auch virtuelles Geld ausrechnen. Und besonders viele Bitcoins kann ein Bot dann über das Netz an seinen Hirten schicken, wenn er einen Rechner mit einer leistungsfähigen Grafik-Karte befallen hat.

    Und dann ist da noch das Folding-at-Home-Projekt der Stanford University. Zigtausende Surfer stellen dafür Rechenleistung ihrer PCs zu Verfügung, indem sie ein kleines Programm installieren und - wenn gerade nichts anderes zu tun ist – für die Wissenschaft rechnen lassen. Ziel ist es, die räumliche Struktur menschlicher Proteine zu erforschen, um Alzheimer, die Creutzfeldt-Jakob-Krankheit und Krebs heilen zu können. Auch über 20.000 Grafikkarten rechnen dabei mit und falten im Dienste der Medizin Proteine. Will Ramey von Nvidia:

    "Wenn der Computer einen Grafik-Prozessor hat, kann er schneller rechnen und die Ergebnisse an Folding-at-Home liefern. Deshalb stellen Leute mit solchen Systemen einen Großteil der Ressourcen für dieses Wissenschaftsprojekt zu Verfügung, das es uns eines Tages vielleicht ermöglicht, ein längeres, glücklicheres und gesünderes Leben zu leben."