2013-05-21 3 views
1

Так что, если потоковый мультипроцессор может разрешать максимальные потоки X, тогда как каждый блок в SM разрешает Y-потоки, сколько бит может быть у нас в блоке и сколько деформаций мы можем иметь в SM?Определение количества разрежений, разрешенных в CUDA SM

Вот мой взгляд на этот вопрос:

(1) Основовязальная состоит из 32 нитей. В блоке мы можем иметь Y/32, верно?

(2) Что касается № перекосов на SM, мы не можем превышать X максимальное количество потоков в SM, поэтому у нас может быть X/32, правильно? Надеюсь, кто-то сможет подтвердить эти расчеты.

ответ

2

(1) Да, округление, если это необходимо (например, если число потоков Y на блок не делится на 32)

(2) Да, то есть один предел числа перекосов, которые могут быть активный. Помните, что планировщик SM работает путем планирования блоков сначала. Количество блоков, которые будут запланированы, зависит от доступных ресурсов (регистров, разделяемой памяти, потоков и т. Д.). Блок будет планироваться только тогда, когда имеется достаточное количество ресурсов для поддержки его потребностей. Так, например, если у меня 1024 потока на блок, я могу запланировать не более 1 блока на SM, потому что предел 1536 потоков на SM (с использованием CC 2.0 в качестве примера здесь) предотвращает планирование двух блоков. Поэтому в этом случае, даже если ваш номер X/32 предсказывает максимум 48 искажений, будет запланировано только 1024/32 = 32 перекоса. (используя CC 2.0 в качестве примера, с блочной структурой из 1024 потоков на блок).

+0

Да, вы были бы ограничены одним блоком за раз в этом случае –

+0

Спасибо. Я просто пытался понять различное состояние. Большое спасибо Роберту. – user2403623

Смежные вопросы