Журнал "Программная инженерия"
Теоретический и прикладной научно-технический журнал
ISSN 2220-3397
Том 7 Номер 3 2016 год
Представлен алгоритм умножения матриц, использующий двойное блочное размещение данных в оперативной памяти. Такое размещение данных позволяет существенно сократить число промахов к данным кеш-памяти, к кеш-памяти TLB и добиться производительности 97 % от пиковой. В заключительной части статьи приведено сравнение результатов работы представленного алгоритма с результатами работы существующих высокопроизводительных аналогов (MKL, PLASMA, OpenBLAS). Автор подчеркивает, что реализованный алгоритм на вход принимает матрицы, изначально размещенные нестандартным образом, в отличие, например, от алгоритмов, реализованных в пакетах MKL и OpenBLAS, которые принимают матрицы, размещенные по столбцам либо по столбцам согласно стандарту. Как следствие, предлагаемый алгоритм не заменяет существующие высокопроизводительные алгоритмы, а только их дополняет.