Убрать циклы и замерить

Задача 8 0 / 5 баллов
Задачи урока

Условие задачи

Умножение таблицы (300, 300) на (300, 100) требует девяти миллионов умножений. В цикле каждое обходится в десятки машинных действий: проверить типы, создать объект, положить в переменную. Само умножение занимает ничтожную долю этого времени.

Векторизация — запись вычисления целиком над тензорами, без перебора элементов. Работу выполняет библиотека на языке C, которая считает блоками и укладывает данные в кэш процессора. Убрав цикл, результат обязательно сверяют с прежним.

Подробно это разобрано в учебнике: Векторизация вычислений

Посчитай произведение таблицы (300, 300) на таблицу (300, 100) тремя способами: тремя вложенными циклами, одним циклом по заказам и одной операцией матричного умножения.

Убедись, что все три дают одинаковый результат, и замерь время каждого способа. Выведи времена и результат сверки.

Ваш ответ
Тренировка — проверяйте части и берите подсказки по ходу.
Для проверки решения задачи необходимо зарегистрироваться или авторизоваться!
Ваше решение