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