Исправление Aber, (текущая версия) :
В общем как то я приценивался к Генте и пытался оценить то, какие комманды стоит использовать при компиляции
Мне кажется это все бред от фанатиков Gentoo, компилятор максимум может векторизировать какой-нибудь цикл с целочисленными вычислениями в SIMD инструкции. Ты указал компилятору что у тебя процессор поддерживает AVX2 вот он в них и векторизирует, не указал но сборка под x86-64 то векторизирует в SSE.
Но случаев подходящего для автоматической векторизации в коде очень мало, и скорее всего такой код написан специально под эту фичу компилятора, и написан он так из-за «бедности» проекта (отсутствия ресурсов на поддержку платформенного ассемблера).
Тоже самое для вычислений над float при использовании ключа -ffast-math
, ценой утраты ассоциативности вычислений (которая наверное важна только для тестов с воспроизводимостью результатов).
И вот ты скомпиллил со всеми ключами бинарники и получил свои 0-5% роста производительности относительно дефолтной Ubuntu.
А все потому что там где разработчики софта понимаю что какая-то инструкция критически важна для производительности (как например AES-IN для криптографии) то они пишут соответствующий платформенный код который в рантайме будет определить в наличии нужной инструкции и использовать её.
Исправление Aber, :
В общем как то я приценивался к Генте и пытался оценить то, какие комманды стоит использовать при компиляции
Мне кажется это все бред от фанатиков Gentoo, компилятор максимум может векторизировать какой-нибудь цикл с целочисленными вычислениями в SIMD инструкции. Ты указал компилятору что у тебя процессор поддерживает AVX2 вот он в них и векторизирует, не указал но сборка под x86-64 то векторизирует в SSE.
Но случаев подходящего для автоматической векторизации в коде очень мало, и скорее всего такой код написан специально под эту фичу компилятора, и написан он так из-за «бедности» проекта (отсутствия ресурсов на поддержку платформенного ассемблера).
Тоже самое для вычислений над float при использовании ключа -ffast-math
, ценой утраты ассоциативности вычислений (которая наверное важна только для тестоов с воспроизводимостью результатов).
И вот ты скомпиллил со всеми ключами бинарники и получил свои 0-5% роста производительности относительно дефолтной Ubuntu.
А все потому что там где разработчики софта понимаю что какая-то инструкция критически важна для производительности (как например AES-IN для криптографии) то они пишут соответствующий платформенный код который в рантайме будет определить в наличии нужной инструкции и использовать её.
Исходная версия Aber, :
В общем как то я приценивался к Генте и пытался оценить то, какие комманды стоит использовать при компиляции
Мне кажется это все бред от фанатиков Gentoo, компилятор максимум может векторизировать какой-нибудь цикл с целочисленными вычислениями в SIMD инструкции. Ты указал компилятору что у тебя процессор поддерживает AVX2 вот он в них и векторизирует, не указал но сборка под x86-64 то SSE.
Но случаев подходящего для автоматической векторизации в коде очень мало, и скорее всего такой код написан специально под эту фичу компилятора, и написан он так из-за «бедности» проекта (отсутствия ресурсов на поддержку платформенного ассемблера).
Тоже самое для вычислений над float при использовании ключа -ffast-math
, ценой утраты ассоциативности вычислений (которая наверное важна только для тестоов с воспроизводимостью результатов).
И вот ты скомпиллил со всеми ключами бинарники и получил свои 0-5% роста производительности относительно дефолтной Ubuntu.
А все потому что там где разработчики софта понимаю что какая-то инструкция критически важна для производительности (как например AES-In для криптографии) то они пишут соответствующий платформенный код который в рантайме будет определить в наличии нужной инструкции и использовать её.