Перемножение двух квадратных матриц 4000 * 4000 занимает 40 с. на 12-ти ядерном компьютере для точности double-double (~32 десятичных знака).
Странно как-то. Я когда-то тоже писал такой блас, но только для double-double и float-float, последний исключительно для Нвидии, так как у них тогда двойная точность очень медленно на графических картах была.
Так вот одна пара mad для double-double требует 20 обычных double флопов. 12 ядерник за 3ГГц такт дает 8 флопc, то есть 12*3*8/20=14.4ГФлопсов в double-double, и произведение 4К квадратных матриц должно выполниться за 4*4*4*2/14.4=8.9 секунд, то есть или 12 ядерник из 2010 года с 12 мультитредными и 6 реальными ядрами и 4 флопами на ядро, или что-то где-то очень криво реализовано. Сама архитектура double-double при старании ужасно хорошо ложится на процессорный конвейер, если сразу 4 madd считать, а тут, похоже, об этом подзабыли и конвейер-то пустует.
-- 11.10.2022, 23:43 --А можно я Вам кину матрицу в ЛС а Вы найдете ее два - три минимальных вектора? Их теоретические значения я знаю.
Конечно шлите, попробую обязательно!