Кто-нибудь сталкивался с типом float128
?
Я хотел бы узнать о его производительности по сравнению с double
и другими высокоточными типами, такими как boost::multiprecision:cpp_dec_float
? Есть ли уже готовый тест?
Кто-нибудь сталкивался с типом float128
?
Я хотел бы узнать о его производительности по сравнению с double
и другими высокоточными типами, такими как boost::multiprecision:cpp_dec_float
? Есть ли уже готовый тест?
Судя по всему, float128
намного медленнее, чем double
. Например, до 100 раз медленнее, но точное замедление, конечно, будет зависеть от операций.
Умножение двух матриц 256x256 дает 100x помедленнее.
В документе Эталонный анализ MPFR-эмуляции арифметики Binary128 цитируется 250x замедление для суммирования, замедление в 120 раз для произведения, замедление в 400 раз для скалярного произведения.
В другой статье Twofolds in C и C++ говорится, что суммирование __float128
в 150 раз (25x умножить на 6x) медленнее, чем double
суммирование.
__float128
в gcc, по крайней мере, на x86_64, является программным числом с плавающей запятой четверной точности. Это... не быстро. Я бы переключился на MPFR, прежде чем использовать эту штуку. - person tmyklebu   schedule 05.01.2015