Тяга для CUDA


Если вы заинтересованы в использовании GPU для вычислений общего назначения, то есть GGPU, то Thrust — это библиотека, которая может сэкономить вам огромное количество усилий.

Thrust — это библиотека шаблонов с открытым исходным кодом для приложений CUDA, и только что была выпущена последняя версия 1.3.

Созданный по образцу стандартной библиотеки шаблонов C ++ (STL), Thrust привносит знакомый уровень абстракции в вычисления на графическом процессоре.

Версия 1.3 добавляет несколько новых функций, в том числе:

современная реализация сортировки,

улучшения производительности для сжатия и уменьшения потока

надежная отчетность об ошибках и обнаружение сбоев

поддержка графических процессоров на базе CUDA 3.2 и gf104

алгоритм поиска

Чтобы дать вам некоторое представление о том, насколько легко использовать Thrust, рассмотрим следующую короткую программу, которая генерирует случайные числа, а затем сортирует их с помощью графического процессора: (Примечание: «хост» означает ЦП, а «устройство» означает графический процессор)

int main (void) {// генерируем 32M случайных чисел на // хосте thrust :: host_vector h_vec (1 << 24); thrust :: generate (h_vec.begin (), h_vec.end (), rand); // передать данные на устройство thrust :: device_vector d_vec = h_vec; // сортировать данные на устройстве // (846M ключей в секунду на // GeForce GTX 480) thust :: sort (d_vec.begin (), d_vec.end ()); // переносим данные обратно на хост thrust :: copy (d_vec.begin (), d_vec.end () , h_vec.begin ()); return 0;}

Обратите внимание на то, как методы Thrust могут использоваться как на хосте, так и на устройстве, и как весь беспорядочный процесс распараллеливания алгоритмов скрыт от программиста.

Чтобы начать работу, сначала загрузите Thrust v1.3, а затем следуйте онлайн-руководству по быстрому запуску. Обратитесь к интерактивной документации для получения полного списка функций. Также доступно множество примеров и набор вводных слайдов.

Thrust — это программное обеспечение с открытым исходным кодом, распространяемое по лицензии Apache License v2.0.


Добавить комментарий