Выбор ответа Senior Квантование и дистилляция обновлено
Прунинг и реальное ускорение
Вопрос
Неструктурированный прунинг обнулил 80% весов, но инференс почти не ускорился. Почему?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Случайно разреженные матрицы плохо ускоряются на GPU; помогает структурированный прунинг или шаблон 2:4. Плотное умножение матриц на GPU не пропускает нули.
Варианты ответа
- Обнулённые веса продолжают обучаться и после каждого шага снова становятся ненулевыми, так что матрица остаётся плотной
- Прунинг добавляет маски того же размера, что веса, и число операций на инференсе фактически растёт
- GPU не умеют умножать на ноль быстрее, поэтому неструктурированный прунинг не даёт выигрыша и в памяти
- Случайно разреженные матрицы плохо ускоряются на GPU; помогает структурированный прунинг или шаблон 2:4правильный ответ
Разбор
Плотное умножение матриц на GPU не пропускает нули. Чтобы выиграть, нужны специальные форматы и ядра, которые выигрывают только при очень высокой разреженности, или структура: удалить целые каналы и головы (матрицы становятся меньше) либо полуструктурированный шаблон 2:4, который поддерживают тензорные ядра новых GPU. Неструктурированный прунинг зато хорошо сжимает хранение.
- Маски нужны только при обучении, а обнулённые веса остаются нулями.
- Параметров становится не больше.
- Умножать на ноль GPU умеют, просто не экономят на этом; а хранение разреженные форматы как раз сжимают.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.