Re: Оптимизация доступа к массиву значений в CUDA
От: Razard Россия  
Дата: 21.11.17 19:14
Оценка:
Здравствуйте, mossad_re, Вы писали:

_>Доброго времени суток.

_>У меня следующий вопрос:
_>Есть двумерный массив перестановок:
_>__device__ int ArrayDev[8][64] = {{.....}};

_>И в теле каждого потока я обращаюсь к его элементам.

_>int A = AnyFactor;
_>int B = OtherFactor;
_>int C = ArrayDev[A][B];
_>......

_>Вопрос, как можно оптимизировать такой доступ? Именно он отнимает много времени.

_>Массив ArrayDev определён глобально.

Вариантов много. Наиболее качественный результат можно получить только учитывая особенности алгоритма и доступа к массиву:
— если есть взаимно независимый доступ к элементам, то можно разделить массив на блоки и поместить в отдельные SM;
— если алгоритм доступа имеет однозначную последовательность доступа, то переформатировать массив для параллелизации и маскирования доступа к глобальной памяти;
— другие варианты, учитывающие параллелизацию алгоритма...

Нужны подробности.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.