Если вы заинтересованы в использовании GPU для вычислений общего назначения, то есть GGPU, то Thrust — это библиотека, которая может сэкономить вам огромное количество усилий.
Thrust — это библиотека шаблонов с открытым исходным кодом для приложений CUDA, и только что была выпущена последняя версия 1.3.
Созданный по образцу стандартной библиотеки шаблонов C ++ (STL), Thrust привносит знакомый уровень абстракции в вычисления на графическом процессоре.
Версия 1.3 добавляет несколько новых функций, в том числе:
современная реализация сортировки,
улучшения производительности для сжатия и уменьшения потока
надежная отчетность об ошибках и обнаружение сбоев
поддержка графических процессоров на базе CUDA 3.2 и gf104
алгоритм поиска
Чтобы дать вам некоторое представление о том, насколько легко использовать Thrust, рассмотрим следующую короткую программу, которая генерирует случайные числа, а затем сортирует их с помощью графического процессора: (Примечание: «хост» означает ЦП, а «устройство» означает графический процессор)
int main (void) {// генерируем 32M случайных чисел на // хосте thrust :: host_vector
Обратите внимание на то, как методы Thrust могут использоваться как на хосте, так и на устройстве, и как весь беспорядочный процесс распараллеливания алгоритмов скрыт от программиста.
Чтобы начать работу, сначала загрузите Thrust v1.3, а затем следуйте онлайн-руководству по быстрому запуску. Обратитесь к интерактивной документации для получения полного списка функций. Также доступно множество примеров и набор вводных слайдов.
Thrust — это программное обеспечение с открытым исходным кодом, распространяемое по лицензии Apache License v2.0.