Журнал "Программная инженерия"
Теоретический и прикладной научно-технический журнал
ISSN 2220-3397

Том 7 Номер 3 2016 год

DOI: 10.17587/prin.7.132-139
УДК: 004.9
Двойное блочное размещение данных в оперативной памяти при решении задачи умножения матриц
М. В. Юрушкин, инженер-программист, e-mail: m.yurushkin@gmail.com, Южный федеральный университет, Ростов-на-Дону

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

Ключевые слова: кеш-память, блочное размещение матриц, блочные алгоритмы, высокопроизводительные вычисления
Стр. 132–139