Я хочу начать изучать, как программировать в CUDA, не только языке, но и проектировании программы - вещах как - от того, что я услышал - запись ядер без условных выражений так, чтобы все потоки выполнили те же инструкции и наверху существует минимальная синхронизация.
И от того, что я услышал, обертка Python намного более интуитивна, чтобы использовать и кодировать с, чем библиотека C.
Так предположение, что языки я уже знаю/, знает, не барьер, в каком языке лучше начать изучать CUDA?
Какой дает Вам лучшую идею DO's и DONTs в CUDA и самой легкой кривой обучения?
Учитывая, что языки не являются препятствием, я бы сказал, что использование C / C ++ оставит больше ресурсов, которые могут вам помочь. Есть и другие потенциальные ловушки, но если вы взглянете на CUDA Best Practices Guide (прилагается к инструментарию CUDA на веб-сайте NVIDIA ), то вы будете на правильном пути.
Вы также можете рассмотреть проект с открытым исходным кодом « Thrust », который представляет собой библиотеку шаблонов в стиле STL / Boost, созданную на основе CUDA C ++. Во многих случаях он работает хорошо, и вы можете просто вызывать более сложные ядра, когда узнаете больше.
Вы можете пройти через Руководство по лучшей практике , а также через шаблон THRUST. Для переплета Python, посмотрите на Copperhead, о котором шла речь в этих слайдах Майкла Гарланда