Почему размер блока CUDA 256 или 512 дает лучшую производительность по сравнению с другими? - PullRequest
1 голос
/ 23 сентября 2011

Я написал несколько программ на CUDA C для Windows 7. Я провел эксперименты с размером блока.Я обнаружил, что в большинстве случаев размер блока 256 или 512 дает лучшую производительность, чем другие.Может ли какой-либо орган сообщить мне точную техническую причину этого?или указать любой ресурс, чтобы знать.Так как другие размеры блоков, кратные 32 (деформация), дают меньшую производительность.Заранее спасибо.

1 Ответ

2 голосов
/ 24 сентября 2011

Без реальных измерений невозможно быть уверенным в оптимальном размере блока для данного чипа.Например, если вы делаете 2D-текстурирование, блок 16x4 работает очень хорошо.В вашем случае, возможно, что 512 кратно числу разделов памяти в чипе.(На GeForce 8800 GTX с 6 разделами памяти 384 был действительно хорошим размером блока для ядер с ограниченной пропускной способностью).

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

Извините, я не могу дать более точный ответ, но этосложный вопрос.

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