Frage

ich begonnen hatte vor einigen Tagen arbeiten an GPGPU und erfolgreich cholesky Faktorisierung mit guten performacne umgesetzt und ich nahm an einer Konferenz zum Thema High Performance Computing, wo einige Leute gesagt, dass „GPGPU ist ein Hack“.

Ich bin immer noch verwirrt, was es bedeutet und warum sie sagen, es hacken. Man sagte, dass dieser Hack ist, weil Sie Ihr Problem in eine Matrix konvertieren und tun Operationen darauf. Aber noch bin ich verwirrt, das tut Leute denken, es ist ein Hack ist oder wenn ja, dann warum?

Kann mir jemand helfen, warum sie es nannten ein Hack, während ich nichts falsch mit ihm gefunden.

War es hilfreich?

Lösung

Ein möglicher Grund für eine solche Meinung ist, dass die GPU nicht ursprünglich für allgemeine Berechnungen bestimmt war. Auch die Programmierung eine GPU ist weniger traditionell und mehr Hardcore und daher eher als ein Hack wahrgenommen werden.

Der Punkt, dass „man das Problem in eine Matrix konvertieren“ ist überhaupt nicht sinnvoll. Welche Aufgabe Sie lösen mit dem Schreiben von Code, den Sie angemessene Datenstrukturen zur Verfügung. Im Fall der GPU-Matrizen sind wahrscheinlich die vernünftigste Datenstrukturen und es ist kein Hack, sondern nur eine natürliche Wahl, sie zu nutzen.

Allerdings nehme ich an, dass es eine Frage der Zeit, für GPGPU immer weit verbreitet. Die Leute müssen nur auf die Idee zu gewöhnen. Nachdem alle, die Sorgen läuft die Einheit des Computers das Programm?

Andere Tipps

Auf der GPU, den Zugriff effizient Speicher ist von größter Bedeutung optimale Leistung zu erzielen. Dabei geht es oft Umstrukturierung oder sogar völlig neue Algorithmen und Datenstrukturen auswählen. Dies ist Grund, warum GPU Programmierung kann als Hack wahrgenommen werden.

Zweitens einen vorhandenen Algorithmus zur Anpassung an den GPU zu laufen ist nicht an und für sich die Wissenschaft. Der relativ geringe wissenschaftliche Beitrag einiger GPU-Algorithmus bezogene Papiere zu einer negativen Wahrnehmung der GPU Programmierung geführt hat streng „Engineering“.

Offensichtlich nur die Person, die sagte, dass mit Sicherheit sagen kann, warum er es sagte, aber hier ist mein nehmen:

  • Ein "Hack" ist keine schlechte Sache.
  • Es zwingt die Menschen neue Programmiersprachen und Konzepte zu lernen. Für Menschen, die gerade versuchen, das Wetter oder die Proteinfaltung oder Arzneimittelwirkungen zu modellieren, ist dies eine unliebsame Ärgernis. Sie wollten nicht wirklich Fortran (oder was auch immer) in erster Linie lernen, und jetzt die lernen müssen, andere Programmiersystem.
  • Die Programmiertools sind nicht sehr reifen noch.
  • Die Hardware ist nicht so zuverlässig wie CPUs (noch) nicht so alle Rechnungen haben zweimal getan werden, um sicherzustellen, Sie die richtige Antwort haben. Ein Grund dafür ist, dass GPUs kommt nicht mit Fehlerkorrektur-Speicher noch, also wenn Sie versuchen, einen Supercomputer mit Tausenden von Prozessoren zu bauen, die Wahrscheinlichkeit einer kosmischen Strahlung ein wenig in ihren Zahl spiegelt nähert Sicherheit.

Wie für den Kommentar „ Sie Ihr Problem in eine Matrix konvertieren und Operationen auf, es zu tun “, denke ich, dass zeigt eine Menge Unwissenheit. Praktisch alle High-Performance Computing passt diese Beschreibung!

Eines der wichtigsten Probleme in GPGPU für die letzten Jahre und wahrscheinlich für die nächsten paar ist, dass sie für beliebige Aufgaben Programmierung nicht ganz einfach war. Bis DX10 gab es keine ganze Zahl Unterstützung unter GPUs und Verzweigung ist immer noch sehr schlecht. Das ist sehr viel eine Situation, wo um Sie maximalen Nutzen zu erhalten haben Sie den Code in eine sehr unangenehme Art und Weise schreiben alle möglichen Effizienzgewinne aus der GPU zu extrahieren. Dies liegt daran, Sie auf Hardware laufen, der Verarbeitung von Polygonen und Texturen noch gewidmet ist, statt abstrakte parallelen Aufgaben.

Natürlich, das ist mein nehmen auf sie und YMMV

Die GPGPU geht zurück zu den Tagen des mathematischen Co-Prozessor. Ein Hack ist eine Verknüpfung zu einem langatmigen Problem zu lösen. GPGPU ist ein Hack wie NAT auf der IPV4 ein Hack ist. Computational Probleme wie Netzwerke werden immer größer, da wir versuchen, mehr zu tun, ist GPGPU eine gute Zwischenlösung, ob es außerhalb des Core-CPU-Chip bleibt und verfügt über separate verschroben API oder wird in die CPU über die API oder Herstellung saugte ist bis zu dem Weg Finders.

Ich nehme an, er meinte, dass mit GPGPU Sie Ihre Implementierung zur Umstrukturierung gezwungen, so dass es die Hardware ausgestattet, nicht das Problem Domäne. Elegante Umsetzung sollte die letztere passen.

Beachten Sie, dass das Wort „Hack“ verschiedene Bedeutungen haben kann: http://www.urbandictionary.com/define.php?term=hack

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top