Как узнать поведение планировщика CUDA? Помимо тестирования, меняя размеры сетки, размеры блоков и т. Д., В моем приложении есть ли какая-либо документация поставщика, которая точно объясняет, каким образом распределяются блоки?Работа планировщика CUDA
0
A
ответ
1
Это зависит от архитектуры, над которой вы работаете.
В архитектуре Fermi, например, имеется глобальный планировщик GigaThread, который распределяет потоковые блоки в потоковых многопроцессорных (SM) планировщиках. Для каждого SM планировщик Dual Warp планирует потоки в группах из 32 параллельных потоков, называемых перекосами.
Это хорошо объяснено в NVIDIA White Paper on Fermi. Предлагаю также взглянуть на этот другой document.
Хорошо. Это верно. Спасибо. Мне действительно интересно узнать, есть ли какой-либо способ, с помощью которого я могу узнать, к которому все SM, планировщик недавно распространил потоки. то есть есть ли какой-либо файл журнала (или что-то в этом роде), который планировщик обновляет каждый раз с помощью этой информации (чтобы, посмотрев в файл журнала, мы можем узнать, в котором работают все SM)? –
[продолжение ..] Я использую Tesla M2050 fermi. Итак, если глобальный планировщик GigaThread распределяет блоки потоков для планировщиков SM, то какой планировщик точно решает, сколько SM должно использоваться и какие SM? Когда потоки назначены на эти конкретные SM, есть ли способ узнать идентификаторы этих SM? –
Мне неизвестен какой-либо способ узнать, какие блоки или трэды назначены для SM. Что касается вашего вопроса, я бы сказал, что глобальный планировщик GigaThread решает количество и идентификаторы используемых SM. – JackOLantern