Я дуже новачок у програмуванні GPGPU, тому, будь ласка, вибачте мене, якщо питання не є особливо підходящим. Як я розумію, програмування графічного процесора є дуже складною інженерною роботою порівняно зі звичайним програмуванням процесора. Потрібно бути дуже обережним щодо питань розбіжності, плитки, закріпленої пам’яті пам’яті та обчислення комунікаційних пристроїв / пристроїв, що перекриваються.
Провівши трохи досліджень, я знайшов бібліотеку тяги, яка, схоже, намагається імітувати C ++ STL. Це досить приємно. Однак, виходячи з мого дуже обмеженого досвіду та побачивши всі мікроуправління, необхідні для отримання хорошої продуктивності, я трохи скептично ставлюсь до виступу. Чи може тяга ефективно керувати внутрішньою складною частиною програмування? Деякі дуже відомі бібліотеки, такі як PETSc, схоже, використовують цей пакет, що змушує мене вважати, що це якось слід.
Мені було цікаво, чи зможуть люди з більшим досвідом роботи на CUDA та тязі сказати слово чи два про ефективність пакету порівняно з програмуванням CUDA низького рівня. Коли я можу використовувати тягу і коли я повинен перейти на CUDA?