2010-01-09 16 views
6

Ich möchte anfangen zu lernen, wie man in CUDA programmiert, nicht nur die Sprache, sondern Programm-Design - Dinge wie - von dem, was ich gehört habe - Kernel ohne Bedingungen schreiben, so dass alle Threads führen die gleichen Anweisungen aus und es gibt minimalen Synchronisationsaufwand.Einfachster CUDA Wrapper für Anfänger

Und von dem, was ich gehört habe, ist der Python-Wrapper viel intuitiver zu verwenden und zu codieren als die C-Bibliothek.

Also vorausgesetzt, dass die Sprachen, die ich bereits kenne/nicht kenne, keine Barriere sind, in welcher Sprache fängt man am besten an, CUDA zu lernen?

Welche gibt Ihnen die beste Idee der DOs und DONTs in CUDA und die einfachste Lernkurve?

Antwort

4

Angesichts der Tatsache, dass Sprachen kein Hindernis sind, würde ich sagen, dass die Beibehaltung von C/C++ Ihnen mehr Ressourcen zur Verfügung stellen würde. Es gibt mehr potenzielle Fallstricke, aber wenn Sie sich den CUDA Best Practices Guide (mit dem CUDA Toolkit auf der NVIDIA website) ansehen, dann sind Sie auf dem richtigen Weg.

Sie können auch das Open-Source-Projekt "Thrust" in Betracht ziehen, das eine STL/Boost-Vorlagenbibliothek ist, die auf CUDA C++ basiert. Es funktioniert in vielen Fällen gut und Sie können einfach komplexere Kernel aufrufen, wenn Sie mehr lernen.