AW: Rechnen mit der GPU
9. Nov 2013, 00:25
Das mag durchaus gehen, jedoch sind viele Verfahren (generell gesprochen) oftmals nicht so ganz offensichtlich parallelisierbar, und bedürfen einiger Kniffe und Umformungen des Problems um das überhaupt in merkbarem Umfang nutzen zu können.
Einfach so parallelisierbar sind Probleme, bei denen auf einer größeren Menge von Eingangsdaten gleicher Art, die selbe Operation angewendet werden soll, wobei unbedingt keine Operation auf das Ergebnis einer anderen im selben Schritt angewiesen ist. Dinge, die dieser Form nicht entsprechen, müssen vor brauchbarer Implementierung auf Vektorprozessoren (was GPUs sind) in diese so weit es geht gebracht werden.
Nicht umsonst ist die Heimat dieser Prozessoren in der Grafik: Hier müssen traditionell völlig voneinaner unabhägige Punkte (Vektoren) im 3D Raum transformiert werden. Das kann man getrost mit allen gleichzeitig machen, da die Matrizen für alle die selben sind. Und auch bei Pixel-Orientierten Berechnungen ist es ähnlich trivial, da für die meisten in der Praxis relevanten Filter zwar vielleicht mehr als 1 Pixel in eine Berechnung eingeht, jedoch immer in seiner Eingangswertigkeit, so dass auch hier problemlos alles gleichzeitig gemacht werden kann.
Anderes Beispiel ist das Rechnen mit riesigen Matrizen, die strukturell schon fast einem Bitmap entsprechen, und sich bei den meisten Operationen ähnlich günstig verhalten.
Probleme, die nicht trivial oder leicht umformbar diese Eigenschaften haben, sind zuweilen echt kompliziert umzuformulieren, und erfordern ggf. sogar im Grundsatz schon eine andere Sicht- und Herangehensweise. Manche lassen sich gar nicht anpassen. Da ich kein Krypto-Man bin weiss ich nicht genau welche Algos sich im Detail da wie verhalten, aber vom Prinzip her kann ich mir schon vorstellen, dass das nicht mehr GPGPU für Anfänger ist. Das es das für manche Algos gibt will ich wieder besseren Wissens nicht anfechten, ich möchte nur in Frage stellen, ob das mal so eben aus dem Handgelenk geht, und wie tief die Parallelisierung da überhaupt geht (sprich: Wie viel Vorteil holt man am Ende heraus).
Die Einsetzbarkeit von GPGPU ist hochgradig vom ganz spezifischen Problem abhängig. Da reicht nichtmals "Krypto" als Stichwort, man muss den exakten Algo untersuchen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
|