CUDA как сравнить два 2D массива? - PullRequest
2 голосов
/ 20 декабря 2010

Есть ли эффективный алгоритм для сравнения двух 2D-массивов в CUDA как можно быстрее? В результате мне нужно количество полей массива, которые равны.

Заранее спасибо за любую помощь!

Ответы [ 2 ]

2 голосов
/ 29 декабря 2010

Для этих типов операций я бы порекомендовал посмотреть на http://code.google.com/p/thrust/.

Две соответствующие операции, которые могут быть полезны, это thrust :: transform для создания логического массива и thrust :: count_if для выполнения сокращения. Более эффективные методы с причудливыми итераторами и т. Д. Также возможны. Просмотрите учебники.

2 голосов
/ 20 декабря 2010

Если вам просто нужно количество равных элементов между двумя массивами, попробуйте уменьшить операцию. Вот пример этого на сайте NVIDIA: сокращение . Обычные сокращения суммы находят сумму всех элементов в массиве a. То, что вы хотите, это сумма выражения a == b для всех элементов. Вы должны посмотреть статьи о реализации сокращения CUDA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...