2016-10-18 19 views
-1

Я читал, что количество потоков в основе может быть 32 или более. почему это? если число меньше 32 потоков, означает ли это, что ресурсы недостаточно используются или мы не сможем переносить латентность памяти?Что произойдет, если количество потоков в деформации меньше 32?

+1

Я не понимаю ваш вопрос. Количество потоков на каждый бит равно 32 на всех поддерживаемых аппаратных средствах CUDA, прошлых и настоящих. – talonmies

ответ

1

Ваш вопрос нуждается в разъяснении - возможно, вы путаете концепции CUDA «warp» и «block»?

Что касается перекосов, важно помнить, что деформация и их размер - это свойство оборудования. Деформации представляют собой группировку аппаратных потоков, которые выполняют одну и ту же инструкцию (в эти дни) каждый цикл. Другими словами, ширина по размеру указывает ширину выполнения в стиле SIMD, что программист не может изменить. В CUDA вы запускаете блоки потоков, которые при отображении на аппаратное обеспечение выполняются в пучках размером с warp. Если вы запускаете блоки с подсчетом потока, который не делится на размер warp, аппаратное обеспечение просто выполнит последний warp с некоторыми «замаскированными» потоками (т.е. они должны выполнить, но без какого-либо влияния на состояние GPU/память).

Для получения более подробной информации я рекомендую внимательно прочитать hardware and execution-related sections of the CUDA programming guide.