Zum Inhalt springen

Exklusives Interview: Ian Buck von Nvidia spricht über GPGPU

    1651193043

    Lernen Sie Ian Buck von Nvidia kennen

    Vielen Dank, dass Sie sich heute die Zeit für ein Gespräch genommen haben. Beginnen wir mit einigen Grundlagen. Warum erzählst du unseren Lesern nicht ein bisschen über dich und was du derzeit bei Nvidia machst?

    Ich bin der Software Director für GPU Computing hier bei Nvidia. Mein Hauptaugenmerk liegt auf dem Aufbau und der Weiterentwicklung einer vollständigen GPU-Computing-Plattform, die Systemsoftware, Entwicklertools, Sprach- und Compiler-Anweisungen, Bibliotheken sowie gezielte Anwendungen und Algorithmen umfasst. Mit Hilfe eines großartigen Teams entwickeln wir sowohl die Endbenutzer-Software als auch die Richtung für das GPU-Computing innerhalb von Nvidia.

    Warum fangen wir nicht von vorne an? Ich kann mir vorstellen, dass Ihr Interesse an GPGPU nicht begann, als Sie 5 Jahre alt waren – welche Ereignisse in Princeton oder Stanford haben Sie wirklich dazu gebracht, Ihr Interesse an GPGPU zu entdecken?

    Ich habe mich in meinen Tagen in Princeton mit GPU-Computing beschäftigt und mit thermischer Konvektion und Flüssigkeitssimulation auf Grafikhardware experimentiert, die zu dieser Zeit der SGI O2 war. Obwohl die Dinge so sehr eingeschränkt waren, war es schwer, Argumente dafür zu finden.

    Während meiner Doktorarbeit in Stanford habe ich ernsthaft begonnen, mich mit GPU-Computing zu beschäftigen. In Stanford erkannte ich zusammen mit anderen in der Forschungsgemeinschaft, dass die natürliche Weiterentwicklung der programmierbaren Grafik die Entwicklung der GPU zu einem allgemeineren Prozessor war. Wir haben eines der ersten SIGGRAPH-Papiere über Raytracing mit GPU-Hardware der DX9-Klasse geschrieben, um dies zu beweisen. Was an der Arbeit so motivierend war, war, dass dieser Commodity-Prozessor, der in jedem PC verfügbar war, einer Leistungswachstumsrate nach dem Mooreschen Gesetz folgte, viel schneller als die CPU. Dies warf die Frage auf: Was könnte ein PC leisten, wenn er mehrere Größenordnungen mehr Rechenleistung als heute hätte? Ein absoluter Wendepunkt für die Computerwissenschaften sowie Computer Vision, KI, Data Mining und Grafik.

    Was war Ihre Rolle bei Brook?

    Nachdem ich an der Fähigkeit zum Raytracing auf der GPU gearbeitet hatte, verlagerte sich mein Forschungsschwerpunkt in Stanford auf das Verständnis des richtigen Programmiermodells für GPU-Computing. Zu dieser Zeit hatten viele andere gezeigt, dass die GPU für eine Vielzahl verschiedener Anwendungen gut war, aber es gab kein gutes Framework oder Programmiermodell, wie man die GPU als Rechengerät betrachten sollte. Damals war ein Doktortitel in Computergrafik erforderlich, um eine Anwendung auf die GPU portieren zu können. Also startete ich das Brook-Projekt mit dem Ziel, eine Programmiersprache für GPU-Computing zu definieren, die die Grafikismen der GPU in allgemeinere Programmierkonzepte abstrahiert. Brooks grundlegendes Programmierkonzept war der „Stream“, eine Sammlung von Datenelementen, die ähnliche Arbeit erforderten. Brook wurde schließlich meine Doktorarbeit in Stanford. 

    Ihre Arbeit begann mit Merrimac, dem Stanford Streaming Super Computer. Wie unterscheidet sich das von so etwas wie einem Tesla?

    Die Programmiermodellkonzepte von Brook waren auf mehr als nur GPUs anwendbar. In Stanford haben wir an zwei verschiedenen Implementierungen des Brook-Programmiermodells gearbeitet: eine für GPUs, die andere für Merrimac, eine in Stanford entwickelte Forschungsarchitektur. Viele der Ideen, die im Rahmen von Merrimac entwickelt wurden, beeinflussten, wie GPUs für Allzweck-Computing verbessert werden konnten. Es sollte auch beachtet werden, dass Bill Dally, der leitende Ermittler von Merrimac in Stanford, jetzt Chief Scientist bei Nvidia ist. 

    Hatte CUDA irgendwelche Wurzeln in Gelato? Was war die erste akademische Erforschung von GPGPU? Was ist mit der ersten kommerziellen Nutzung?

    Ich habe CUDA gestartet, während ich meine Forschung in Stanford abgeschlossen habe. Nvidia unterstützte meine Forschung bereits sehr und sah eindeutig das Potenzial, GPU-Computing auf der Hardwareseite der Dinge besser zu ermöglichen. Ich kam 2005 zu Nvidia, um das CUDA-Projekt zu starten. Damals waren es nur ich und ein anderer Ingenieur. Wir haben das Projekt nun zu der Organisation ausgebaut, die es heute ist, und zu einer zentralen Komponente der heutigen GPUs von Nvidia.

    www.gpgpu.org bietet eine schöne Geschichte des GPU-Computing, die bis ins Jahr 2002 zurückreicht.

    Derzeit drängt AMD auf Brook als Programmiersprache der Wahl für GPGPU, während Nvidia C mit CUDA-Erweiterungen hat. Wie würden Sie die Stärken/Schwächen beider vergleichen?

    Beginnend bei Nvidia hatten wir die Gelegenheit, einige der grundlegenden Designentscheidungen von Brook zu überdenken, die größtenteils auf den Möglichkeiten von Hardware der DX9-Klasse basierten. Eine der wichtigsten Einschränkungen waren die Beschränkungen des Speichermodells, die es dem Programmierer erforderten, seinen Algorithmus auf ein ziemlich begrenztes Speicherzugriffsmuster abzubilden. Mit unserem C mit CUDA-Erweiterungen haben wir diese Einschränkungen gelockert. Im Grunde wurde dem Programmierer einfach ein riesiger Pool von Threads gegeben und er konnte auf den Speicher zugreifen, wie er oder sie es wünschte. Diese Verbesserung sowie einige andere ermöglichten es uns, die vollständige C-Sprachsemantik auf der GPU zu implementieren.

    0 0 votes
    Rating post
    Abonnieren
    Benachrichtige mich bei
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x