Обратный расчет конверта для скорости умножения матриц

256
AatG

Я пытаюсь развить интуицию о том, насколько реализуемы / масштабируемы алгоритмы машинного обучения. Доминирующей стоимостью всегда являются умножения матриц, но, похоже, нет готового ресурса Google для объяснения того, как выполнить вычисления конверта для умножения матриц.

Характеристики машины, которую я использую: у нее четырехъядерный процессор Ivy Bridge с тактовой частотой 2,8 ГГц, 8 МБ общей кэш-памяти третьего уровня, скорость шины 5 ГТ / с и 16 ГБ ОЗУ. Запись переполнения стека говорит, что Ivy Bridge имеет пропускную способность 8 DP-flops / секунду. Как мне объединить все эти числа, чтобы получить приблизительную оценку в секундах того, сколько времени потребуется для умножения двух матриц двойной точности заданных размеров, при условии, что матрицы и их произведение могут храниться в ОЗУ одновременно?

2
Я могу дать вам несколько источников на эту тему. [Почему обработка отсортированного массива быстрее, чем несортированного массива?] (Http://stackoverflow.com/q/11227809/2651145). Исходя из этого, я предполагаю, что трудно правильно оценить время, которое потребуется, без реальных испытаний. Основным фактором является внутренняя работа процессора и его кеша. Doktoro Reichard 10 лет назад 1
Кроме того, какие матрицы вы пытаетесь умножить? Разреженный, плотный, треугольный? Существует множество алгоритмов, которые хорошо справляются с этими подмножествами. Doktoro Reichard 10 лет назад 2
Точнее, я использую Matlab для умножения плотных матриц, поэтому я пытаюсь оценить скорость BLAS. Меня больше интересует знание того, займет ли данное умножение менее 30 секунд, чем знание, что это займет 6 секунд или меньше. Я думаю, что я понял это, хотя. AatG 10 лет назад 0

0 ответов на вопрос

Похожие вопросы