Re[2]: Оптимизация доступа к массиву значений в CUDA
От: mossad_re  
Дата: 22.11.17 06:49
Оценка:
Здравствуйте, Razard, Вы писали:

R>Здравствуйте, mossad_re, Вы писали:


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

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

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

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

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

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

R>Вариантов много. Наиболее качественный результат можно получить только учитывая особенности алгоритма и доступа к массиву:

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

R>Нужны подробности.


Да собственно это алгоритм для генерации ключа в DES CBC.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.