Урок 28: Занятость: активные warp на SM
Каждый потоковый мультипроцессор (SM) на GPU может одновременно удерживать лишь ограниченное число активных warp. Занятость (occupancy) определяется как отношение: занятость = активные warp / максимально возможное число warp на SM. Почему это важно? Когда один warp остаётся без работы или ждёт памят
Представьте официанта, обслуживающего сразу несколько столиков. Пока один столик не закончил выбирать по меню, он переходит к другому столику, а не стоит и не ждёт. Чем больше у него активных столиков, тем меньше времени он тратит на ожидание. Но если столиков слишком много, каждому достаётся меньше внимания — поэтому больше столиков не всегда лучше.
- занятость (occupancy)
- Отношение числа активных warp на SM к максимальному числу warp, которое SM поддерживает. Высокая занятость помогает скрывать простои памяти.
- SM
- Вычислительный блок на GPU, который выполняет блоки. Его ресурсы (регистры, разделяемая память) имеют ограниченную ёмкость, разделяемую между блоками.
- скрытие задержек
- Когда warp ждёт память, SM переключается на другой warp. Больше активных warp — больше работы, за которой можно спрятать ожидание.
- предел ресурсов
- Регистры на поток, разделяемая память на блок и размер блока — каждый может ограничить, сколько блоков помещается на SM.