Это зависит от того, что вы хотите делать на графическом процессоре. Если бы ваш алгоритм получил большую выгоду от того, что может предложить толчок, например, сокращение, префикс, сумма, то тяга определенно стоит попробовать, и я уверен, вы не можете быстрее писать код в чистом CUDA C.
Однако если вы переносите уже параллельные алгоритмы от CPU к графическому процессору, может быть проще записать их в простой CUDA C.У меня уже были успешные проекты с хорошим ускорением, идущим по этому маршруту, а код CPU/GPU, который выполняет фактические вычисления, почти идентичен.
Вы можете объединить две парадигмы в некоторой степени, но насколько я знаю, вы запускаете новые ядра для каждого вызова тяги, если вы хотите иметь все в одном большом жирном ядре (слишком частое ядро запускается из уравнение), вы должны использовать простой CUDA C с SDK.
Я нахожу, что чистая CUDA C на самом деле легче учиться, так как она дает вам достаточно хорошее представление о том, что происходит на графическом процессоре. Thrust добавляет много волшебства между вашими линиями кода.
Я никогда не использовал инструменты для автоматического параллелирования, такие как рабочая станция PGI, но я бы не советовал добавлять еще больше «магии» в уравнение.