Сетка умножения: почему клетки можно считать разом
Один слой нейросети, девять клеток результата и разное число ядер.
// клетки не зависят друг от друга
Внутри нейросети снова и снова происходит одно и то же: веса слоя умножаются на входные данные. Каждая клетка результата - сумма попарных произведений строки и столбца, и считается она сама по себе: результат для первой строки никак не зависит от второй. Выберите, сколько ядер считает, и нажимайте «Такт».
Так считает процессор общего назначения, если занять одно ядро: клетка за клеткой, по очереди.
По 1 клетке за такт: на 9 клеток ушло 9 тактов. Ядро мощное, но клетка ждёт своей очереди.
Обычный настольный процессор: несколько мощных ядер, каждое берёт свою клетку.
По 4 клетки за такт: 3 такта вместо девяти. Ядер стало больше, и ждать приходится меньше.
Так устроена видеокарта: тысячи простых ядер, заточенных под одну и ту же операцию над огромным массивом данных.
Все 9 клеток посчитаны за 1 такт: ядер хватило на каждую. Для матриц размером тысячи на тысячи разница в скорости получается в сотни раз - и именно поэтому обучение нейросетей ушло на GPU.
Матрицы здесь три на три, в жизни - тысячи на тысячи, а у больших моделей счёт идёт на миллиарды весов: GPT-4, по оценкам, содержит около триллиона параметров. Такт в демо условный: настоящее ядро тратит на клетку несколько тактов, у видеокарты есть ещё и тензорные ядра, которые умножают небольшие матрицы за один такт, а данные надо успевать подвозить из памяти. Смысл картинки в другом: клетки независимы, и потому их можно считать разом.
Интерактив разработан ANY.BY - ремонт компьютеров и ноутбуков в Барановичах. © 2008-2026. Источник: any.by/demo/setka-umnozheniya