«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Советы по эффективной реализации векторизованных логарифмических функций с использованием AVX2

Советы по эффективной реализации векторизованных логарифмических функций с использованием AVX2

Опубликовано в 2025-04-21
Просматривать:433

How Can We Efficiently Implement a Vectorized Logarithm Function Using AVX2?

эффективная векторизованная реализация логарифма в AVX2

Целью является реализация эффективной векторизованной версии функции Log21D_M2561. (__m256d a), но доступно на других компиляторах.

подход к реализации

общая стратегия для log2 (a) включает в себя вычисление суммы показателя и log2 мантиссы, которая имеет ограниченный диапазон от 1.0 до 2.0. Это позволяет нам использовать полиномиальное аппроксимацию для log2 Mantissa.

  1. extract exponent: извлечь часть входного вектора и преобразовать его обратно в значение двойного назначения, корректировка для смещения. Mantissa и отрегулируйте его до диапазона [0,5, 1,0). Это гарантирует, что полиномиальное приближение, которое мы используем, будет более точным.
  2. полиномиальное аппроксимацию: Используйте полиномиальное приближение для вычисления логарифмического 2 скорректированной мантиссы. Мы можем установить полиномиальное, используя серию расширения или методы минимакса.
  3. комбинация: добавить вычисленный показатель и полиномиальное приближение log2 Mantissa, чтобы получить результат окончательного журнала. Точность, мы можем использовать соотношение двух полиномов вместо одного полинома высокого порядка. Этот метод уменьшает ошибки округления и сохраняет высокую точность.
  4. Кроме того, мы можем пропустить проверки на получение недостатка, переполнения или денормальных значений, если известно, что входные значения являются положительными и конечными. Эта оптимизация может значительно ускорить реализацию.
  5. соображения производительности

Задержка инструкции:

Современное оборудование имеет длинные задержки инструкции. Чтобы оптимизировать производительность, мы можем использовать более быстрые схемы полиномиальной оценки, такие как схема Эстрин, которая позволяет параллельно выполнять полиномиальные термины.

Использование FMA:

инструкция Fused-Multiply-Add (FMA) очень эффективна. Используя FMA в нашей реализации, мы можем ускорить процесс полинома. Можно достичь очень высокой точности по сравнению с определенным диапазоном значений мантиссы.

] сравнение с существующими реализациями
  • предложенная реализация направлена ​​на обеспечение быстрой и эффективной векторизированной функции Log2, которая может использоваться на любой платформе с поддержкой AVX2. Он нацелен на высокую производительность, сравнимую с реализацией SVML Intel Compilers, а также для других компиляторов. ]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3