Я знаю, что на GPU CUDA есть многопроцессоры, содержащие в себе ядра CUDA. На моем рабочем месте я работаю с GTX 590, который содержит 512 ядер CUDA, 16 многопроцессоров и имеет размер основы 32. Так что это означает, что в каждом мультипроцессоре имеется 32 ядра CUDA, которые работают точно по одному и тому же коду в той же самой деформации, И, наконец, максимальные потоки на размер блока равны 1024.
Мой вопрос заключается в том, как размер блока и количество мультипроцессоров - размер warp точно связаны. Позвольте мне рассказать о моем понимании ситуации: например, я выделяю N блоков с максимальным размером threadPerBlock 1024 на GTX 590. Насколько я понимаю из руководства по программированию CUDA и из других источников, блоки сначала перечисляются аппаратными средствами, В этом случае 16 из N блоков назначаются различным мультипроцессорам. Каждый блок содержит 1024 потока, а аппаратный планировщик назначает 32 из этих потоков 32 ядрам в одном мультипроцессоре. Потоки одного и того же многопроцессорного (warp) обрабатывают одну и ту же строку кода и используют общую память текущего мультипроцессора. Если текущие 32 потока сталкиваются с работой вне чипа, такой как чтение и запись памяти, они заменяются другой группой из 32 потоков из текущего блока. Таким образом, в одном блоке есть фактически 32 потока, которые в точности выполняются параллельно на мультипроцессоре в любой момент времени, а не весь 1024. Наконец, если блок полностью обрабатывается мультипроцессором, новый блок потока из список N потоков блоков подключен к текущему мультипроцессору. И, наконец, в ходе выполнения ядра CUDA в GPU параллельно работает 512 потоков. (Я знаю, что если блок использует больше регистров, чем доступно на одном мультипроцессоре, то он делится на два мультипроцессора, но позволяет предположить, что каждый блок может вписываться в один мультипроцессор в нашем случае.)
Итак, правильна ли моя модель параллельного выполнения CUDA? Если нет, что не так или нет? Я хочу точно настроить текущий проект, над которым я работаю, поэтому мне нужна самая правильная рабочая модель всего.