Если у меня есть в C++11 (в Linux, с gcc на Intel Xeon) два массива __float128* A и B (фиксированный размер, полностью помещается в кеш), знаете ли вы о них или можете ли их предоставить? код, который производит скалярное произведение __float128 этих массивов (т. е. сумму их поэлементного произведения), используя, где это возможно, ускорение SIMD/AVX.
К сожалению, MKL (и нет эффективная библиотека BLAS, на самом деле) поддерживает __float128, поэтому это ускорение несколько уменьшит огромное замедление __float128 по сравнению с двойным, до такой степени, что мы действительно сможем его использовать.
Вот являются причинами численной стабильности, чтобы использовать __float128 в нашем случае, поэтому меньшее значение, к сожалению, не вариант.
Подробнее здесь: https://stackoverflow.com/questions/789 ... h-simd-avx
Векторизация скалярного произведения __float128 с помощью SIMD/AVX ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
AVX(2)/SIMD способ получить/установить (в 1) один бит в 256-битном регистре
Anonymous » » в форуме C++ - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
AVX(2)/SIMD способ получить/установить (в 1) один бит в 256-битном регистре
Anonymous » » в форуме C++ - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-