Первый вопрос "правильны ли результаты?"Если это так, то, скорее всего, ваш «обычный» метод не является хорошей реализацией.
Обычный метод состоит в том, чтобы не использовать 3 вложенных цикла FOR для сканирования входов в порядке, который вы изучили в математическом классе.Одним из простых улучшений является транспонирование матрицы справа, чтобы она находилась в памяти, а столбцы были связными, а не строками.Измените цикл умножения, чтобы использовать этот альтернативный макет, и он будет работать намного быстрее на большой матрице.
Стандартные библиотеки матриц реализуют гораздо более дружественные к кэшу методы, учитывающие размер кеша данных.
Вы также можете реализовать рекурсивную версию стандартного матричного продукта (подразделить на матрицу матриц 2x2, которые имеют половину размера).Это даст что-то ближе к оптимальной производительности кеша, которую страссен получает от рекурсивности.
Так что либо вы делаете это неправильно, либо ваш обычный код не оптимизирован.