Математические библиотеки очень часто сравнивают на основе FLOPS. Какая информация передается мне, когда мне показывают график зависимости FLOPS от размера с наборами точек для нескольких различных математических библиотек?
FLOPS как показатель производительности имел бы для меня больше смысла, если бы сравнение проводилось между двумя реализациями одного и того же алгоритма или между одним и тем же программным обеспечением на двух разных аппаратных средствах. Я не понимаю, почему это подходящий или популярный способ сравнения таких вещей, как умножение матрицы на матрицу.
Подразумевается ли, что базовые алгоритмы почти одинаковы, а код, который обрабатывает модули с плавающей запятой быстрее всех, минимизируя накладные расходы, побеждает?
Примеров предостаточно.
http://eigen.tuxfamily.org/index.php?title=Benchmark
https://code.google.com/p/blaze-lib/wiki/Benchmarks
С другой стороны, эти тесты LAPACK и Armadillo используют абсолютное время для данной операции, что для меня имеет больший смысл.
http://www.netlib.org/lapack/lug/node71.html
http://arma.sourceforge.net/speed.html
Соответствующие:
Что такое FLOP / s и является ли он хороший показатель эффективности?