LINUXTALKS.CO

История изменений

Исправление 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 для криптографии) то они пишут соответствующий платформенный код который в рантайме будет определить в наличии нужной инструкции и использовать её.