PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hot or not: CUDA?


Bietchiebatchie
2008-05-07, 22:54:58
Ich soll an der Uni einen Seminarvortrag über CUDA halten - daher wollte ich mal fragen, ob schon irgendwer sich intensiver damit befasst hat oder sogar schon selber genutzt hat: Was gefällt richtig gut und was nervt extrem? Was ist gut gelöst, was schlecht? Mich interessieren auptsächlich subjektive Einschätzungen; wenn es irgendwelche Papers gibt, die total sind, würde mich natürlich auch interessieren - der Fokus liegt aber bei euren Meinungen.

Achja, sorry für den dämlichen Threadtitel, aber mir ist gerade nix besseres eingefallen...

ScottManDeath
2008-05-08, 09:09:21
Ich hab letztes Frühjahr Stream Clustering mit CUDA als Semesterprojekt für eine Computational Geometry Vorlesung implementiert. Der Algorithmus war nicht unbedingt optimal geeignet, denn er hat nur eine recht geringe arithmetische Dichte. Für mein A hats aber gereicht :tongue:

Problem ist das man Algorithmen auf das massive parallele Maschinenmodel auslegen muss, und das kann weh tun. Für GPGPU ist CUDA aber in Meilenstein und wesentlich einfacher zu nutzen als OpenGL/GLSL oder D3D/HLSL.

Allerdings gibts da aus den 80ern und 90ern einige Paper die parallele Algorithmen beschreiben wie z.B. Prefix Sum, Parallel Reduction oder Scan.

Gast
2008-05-08, 12:50:40
Was gefällt richtig gut und was nervt extrem? Was ist gut gelöst, was schlecht?
Man kann gut einfache Algorithmen parallelisieren.
Zu den schlechten Dingen (hängt natürlich vom Anwendungszweck ab):
- Man muss sich zuviel um die Speicherarchitektur kümmern. Klar muss man Daten lokal halten, aber das geht besser. Cell ist hier aber noch wesentlich schlimmer. Larrabee hat eine ordentliche Cachearchitektur.
- Nur für kleine Algorithmen geeignet: Cuda ist nur C (keine Objektorientierung), SPUs haben zwar C++ Compiler, erlauben aber nur bedingt Objektorientierung (virtuelle Funktionen sind nicht vernünftig nutzbar), Larrabee hat volle x86 Unterstützung.
- deckt nichtmal eine ganze Plattform ab, da es nur auf NV-Karten funktioniert.
- persönliche Meinung: die Erweiterungen der Sprache sind verdammt hässlich.

ScottManDeath
2008-05-08, 18:35:50
Der CUDA compiler frisst Templates und Klassen, k.a. ob virtuelle Methoden usw. Offiziell kommt der C++ Support wohl spaeter, praktisch kann man aber ein Subset Nutzen.