Вопросы по теме 'fma'

Всегда ли инструкции FMA (объединенное умножение-сложение) дают тот же результат, что и инструкция "умножение и сложение"?
У меня есть такая сборка (синтаксис AT&T): mulsd %xmm0, %xmm1 addsd %xmm1, %xmm2 Я хочу заменить его на: vfmadd231sd %xmm0, %xmm1, %xmm2 Будет ли это преобразование всегда оставлять эквивалентное состояние во всех задействованных...
712 просмотров
schedule 23.05.2022

Автоматически генерировать инструкции FMA в MSVC
MSVC уже много лет поддерживает инструкции AVX / AVX2 в соответствии с это сообщение в блоге msdn , он может автоматически генерировать fused-multiply-add (FMA) инструкция. Однако ни одна из следующих функций не компилируется в инструкцию FMA:...
3042 просмотров
schedule 21.03.2022

Как использовать плавное умножение и добавление в AVX для 16-битных упакованных целых чисел
Я знаю, что в AVX2 можно выполнить умножение и сложение с помощью одной инструкции. Я хочу использовать инструкцию умножения и добавления, в которой каждая 256-битная переменная AVX2 упакована 16 16-битными переменными. Например, рассмотрим пример...
641 просмотров
schedule 27.11.2022

Разница между FMA и наивным a * b + c?
В Руководстве по библиотечным функциям BSD для FMA(3) сказано: «Эти функции вычисляют x * y + z». Так в чем же разница между FMA и наивным кодом, который делает x * y + z? И почему FMA в большинстве случаев работает лучше?
115 просмотров
schedule 18.12.2022

Использование инструкций FMA для алгоритма FFT
У меня есть немного кода на C++, который со временем стал довольно полезной библиотекой БПФ, и он был сделан для достаточно быстрой работы с использованием инструкций SSE и AVX. Конечно, все это основано только на алгоритме счисления по основанию 2,...
224 просмотров
schedule 13.05.2023

Насколько выгодно использовать слитное умножение-накопление для двойной точности?
Я пытаюсь понять, выгодно ли использовать std::fma с двойными аргументами, глядя на сгенерированный код сборки, я использую флаг "-O3" и сравниваю сборку для эти две процедуры: #include <cmath> #define FP_FAST_FMAF float test_1(const...
133 просмотров
schedule 27.07.2023

Включение GCC инструкций Fused Multiply Add AVX512 при компиляции для процессоров Cascade-Lake
Согласно документации gcc , компиляция с -march = cascadelake не позволяет флаг -AVX512IFMA (который, если я правильно понимаю, включает поддержку инструкций FMA AVX512). Напротив, этот флаг включен, например, при компиляции с -march = cannonlake и...
95 просмотров
schedule 09.07.2023

Как уточнить деление с плавающей запятой на графических процессорах с поддержкой FMA?
При написании вычислительного кода для графических процессоров с использованием API-интерфейсов, в которых вычислительные шейдеры транслируются через SPIR-V (в частности, Vulkan), я гарантирую, что ошибка ULP при делении с плавающей запятой будет не...
123 просмотров
schedule 22.09.2022