Эффективное сокращение 2D массива в CUDA? - PullRequest
4 голосов
/ 04 августа 2010

В CUDA SDK есть примеры кода и слайды презентации для эффективного одномерного сокращения. Я также видел несколько работ и реализаций одномерного сокращения и сканирования префиксов в CUDA.

Существует ли эффективный код CUDA для сокращения плотного двумерного массива? Мы будем благодарны за указатели кода или соответствующие документы.

Ответы [ 2 ]

4 голосов
/ 05 августа 2010

Я не знаю, какую именно проблему вы пытаетесь решить, но на самом деле вы можете просто думать о 2D-массиве как о длинном 1D-массиве и использовать код SDK для сокращения операций.Простые массивы в CUDA - это просто одномерные блоки памяти со специальными правилами адресации - почему бы вам не воспользоваться этой возможностью.

1 голос
/ 04 августа 2010
Сокращение матрицы

может быть несколько проще для реализации, потому что сокращение строки / столбца до вектора может быть выполнено независимо.Вы можете позволить каждому потоку обрабатывать столбец / строку (в зависимости от ориентации основного размера матрицы) и объединять чтение памяти.Я сомневаюсь, что вы можете купить большую производительность по сравнению с этим, не переходя в текстурный / постоянный кеш, где локальность может стать важной

...