Вопросы по теме '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