Все не могу понять, что это такое. Есть ли пример что бы стало понятно.
Например ядро запускается с размером блока 1024 потоков, и так 100 блоков. Мультипроцессор он где там?
Блоки же по порядку запускаются по 1024 потока, Если не так, то каким образом они могут делить shared memory. если один блок сразу резервирует всю?
1 SM с чем ассоциирован. с 1024 потоками группами, или там 32 потоками варпа, или 100 потоками каждого блока? Или вообще все не так.
Я из лекции услышал, что каждый мультипроцессор выполняется одновременно, и каждый работает со своими данными, например каждый обрабатывает свой тайл пикселей, в идеале независимо,
Если так, ТО ТУТ возникает непонятная дилемма. Если их там 20 например, как Они могут Выделять по 60кб Разделяемой памяти каждый. Если ее всего на видеокарте 60? А они типа независимо, и их разделямая память должна быть географически к разным данным привязана быть. Тогда они обязаны выполнятся последовательно, тогда смысл в этом термине ноль, либо работать с одной и той же памятью, Дак и Блок потоков и выполняется одновременно, либо nvidia обманывает в конфигурации.
Поправлю, точно не знаю сколько разделяемой памяти на видеокарте, написано 48кб на группу, это всего 48, или это 48*24 мультипроцессора?
Например что происходит когда я запускаю 25 копий программ с выделением макс разделяемой памяти, в вечном цикле. Каким образом больше 1 программы запускаются, если ождна должна занять всю shared memory и не может отпустить так как вечный шаффл цикл.
Он на этой картинке где вертикально горизонтально, может по гипотинузе