Будет ли доступ к кратким / символьным данным в глобальной памяти снижать производительность в архитектуре Tesla? - PullRequest
2 голосов
/ 12 января 2012

Я хочу заполнить глобальную память как можно большим количеством данных, и я знаю, что у всех моих данных есть значение от 0 до 255. Поэтому я подумал, что вместо использования типа int я могу сохранить их значение вКороче говоря, или даже лучше в char, а также доступ и вычисление значений на устройстве, используя тот же тип.

Однако это повлияет на производительность в архитектуре Tesla?И будет ли объединена копия из глобальной в общую память?

Есть идеи?Спасибо!

1 Ответ

1 голос
/ 12 января 2012

Наилучшая стратегия оптимизации использования полосы пропускания для 8 или 16-битных типов будет зависеть от схем доступа к памяти в рамках деформации. Если какой-либо конкретный перекос будет считываться сильно разбросанным способом, то использование типов размеров байтов и форсирование 32-битных размеров транзакций на деформацию может быть преимуществом, поскольку стандартные размеры транзакций будут тратить большую часть достигнутой пропускной способности. Но если шаблоны доступа внутри деформации будут попадать в смежные или почти смежные сегменты памяти, то, вероятно, лучшая стратегия будет заключаться в использовании uchar4 или ushort2 и нацеливании на достижение пропускной способности, используя объединенные 32-битные операции чтения на поток из глобальная память в массив разделяемой памяти, и все потоки в блоке считываются из этого. Может также стоить оценить производительность текстуры для нагрузок, если доступ на основе деформации содержит разброс.

Этот pdf содержит много полезной информации об оптимизации производительности памяти в Fermi. Я бы посоветовал вам потратить некоторое время на его чтение. Бенчмаркинг - действительно единственный способ оценить лучший подход для данного приложения, и в этом документе есть несколько полезных советов о том, как понять производительность памяти для данного фрагмента кода.

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