Разработчики проекта Gentoo объявили о введении в строй отдельного репозитория с бинарными пакетами, собранными с поддержкой третьей версии микроархитектуры x86-64 (x86-64-v3), применяемой в процессорах Intel примерно с 2015 года (начиная с Intel Haswell) и отличающейся наличием таких расширений, как AVX, AVX2, BMI2, FMA, LZCNT, MOVBE и SXSAVE. В репозитории предложен отдельный набор пакетов, формируемый параллельно с опубликованным в декабре репозиторием, в котором сборка выполнена для базовой архитектуры x86-64, которую можно использовать на любых 64-разрядных процессорах Intel и AMD...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60550
Ожидаем дропа x86-64-v1.
Ну как бы v2 это 2006 год, ещё за 5 лет до avx. Чистое безумые, ориентироваться на такие древние камни, тут каждый год эффективность одних и тех же инструкций меняется то в одну сторону то в другую. А вот насчёт v3 не уверен, к тому же, копрошапка вон утверждает, что>The new server-class CPUs released in 2020 do not implement the AVX instruction set.
Инструкции поддерживаемые процессорами по-моему лучше смотреть на профильных ресурсах например https://cpu-world.com
AVX512 были в десктопных core 10 и 11 поколения, в 12 поколении были удалены, но были оставлены у Xeon
Это в каких серверных процессорах 2020 года нет AVX? У обоих главных производителей, AMD и Intel поддержка avx есть давно.
> Это в каких серверных процессорах 2020 года нет AVX? У обоих главных
> производителей, AMD и Intel поддержка avx есть давно.Вопросы к шапке, там есть ссылка. https://www.intel.com/content/www/us/en/products/details/pro...
У меня не открывается по ссылке страница, сразу перенаправление, без ВПН посмотреть не могу, но судя по ссылке речь идёт об Интеловских недоядрах, они в десктопе палки в колеса суют, теперь ещё и в серверах.
ЕМНИП, в процессорах AMD поддержка x86_64-v3 появилась начиная с Zen3 (2019 год), да и Intel выпускал всякие разные слелероны-атомы без AVX после 2020.
Если верить википедии, то с экскаватора (15й год). А v4 с Zen 4
100% ожидальщик даже не юзает Генту. Хз к чему этот комментарий.
Intel собирается избавляться от старых инструкций.
x86S
https://www.intel.com/content/www/us/en/developer/articles/t...
> Subdirectories of glibc-hwcaps directories, in priority order:
> x86-64-v4
> x86-64-v3
> x86-64-v2 (supported, searched)Ну что же, чувствую в Debian'е еще релиз-два, и будет прекращена поддержка моего устройства :(
Кто там на коре дуба сидит, отпишитесь что у вас supported
.!...
Linux e5520 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/LinuxIntel® Core™ i7-2640M CPU @ 2.80GHz × 4
Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3
x86-64-v2 (supported, searched)Legacy HWCAP subdirectories under library search path directories:
x86_64 (AT_PLATFORM; supported, searched)
tls (supported, searched)
avx512_1
x86_64 (supported, searched)
Intel Core 2 duo, win10 полёт отличный. А вообще да, Debian лучший дистрибутив в мире, его и на одноядерный ноутбук и на десктоп и на серверы рабочие можно. Универсальный дистрибутив.
Что-то гентушники разошлись. У них появился платиновый спонсор который дал им кучу бабла на развитие инфраструктуры?
Да.
>> отличающейся наличием таких расширений, как AVX, AVX2, BMI2, FMA, LZCNT, MOVBE и SXSAVE.И что это дает пакету GNU Core Utils? Перепишут команду ls с поддержкой AVX2 инструкций?
Или у них всемогущий GCC уже получил искусственный интеллект под капотом и сам придумывает за разработчиков код оптимизации?
Ну глупости не говори тоже. Просто посмотри, что в этом пакете, раз не знаешь.
> Ну глупости не говори тоже. Просто посмотри, что в этом пакете, раз
> не знаешь.В этом пакете ls https://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;...
В этом пакете далеко не только ls. И кстати мой кастомный билд ls ощутимо ускоряет скрипты. Компилятор может использовать все доступные ресурсы процессора и не только 20 летние, это ощутимо влияет на возможности автоматической оптимизации (что особенно актуально для программ на си).
> В этом пакете далеко не только ls. И кстати мой кастомный билд
> ls ощутимо ускоряет скрипты. Компилятор может использовать все доступные ресурсы процессора
> и не только 20 летние, это ощутимо влияет на возможности автоматической
> оптимизации (что особенно актуально для программ на си).Однопоточный, монотонный, Си код весь сплошь облепленный макросами с кодом из лапши, по уши в указателях из файла ls.c ускоряется за счет какой инструкции x86-64-v2?
А теперь посмотри на это https://chromium.googlesource.com/webm/libvpx/+/refs/tags/v1.../ может тогда поймешь что 99% базового софта линукса (не упоминаем ядро) вообще ничего не умеют ни в SSE, ни в SIMD.
Внезапно, но да, именно это и ускоряется лучше всего. Автовекторизация какая-нибудь, вполне. И я вижу, avx используется в бинаре ls.
В ls есть парсинг строк и есть сортировка.
На определённых величинах (полагаю от сотни элементов) ускорение сортировки с использованием SIMD становится заметным.
Отличная новость, теперь долгая пересборка мира уйдёт в прошлое, а скорость останется.
в самом деле? Это почему еще?
Они налепят всех нужных и ненужных вам USE. И скорость будет прежняя по среднему дистру, но не такая, как вам бы хотелось.
А прирост то какой?
Подозреваю что за пределами кодеков и прочих вещей, те же браузеры ощутят прирост производительности в тестах на уровне +-5%.
Может даже и меньше. Но реально от AVX плюс хотя бы в том, что оно SSE из кода дропает.
SSE иногда быстрее.
> SSE иногда быстрее.К сожалению да, если данные не помещаются в L1D, может быть даже прилично быстрее.
С другой стороны пора уже что-то одно выпилить, потому что vzeroupper на каждом шагу задолбал.
А почему бы и нет, учитывая что это бесплатная производительность? Плюс 5% - неплохо.
uname -a
Linux e6540 6.6.13-gentoo-#159 #1 SMP PREEMPT_DYNAMIC Sun Feb 4 15:55:25 CET 2024 x86_64 Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz GenuineIntel GNU/LinuxSubdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)появился смысл брать кое что бинарями.
десять лет ждали.
а пока либы выбирают нужные функции в зависимисти от проца в run-time'е.clear linux от intel давно и всегда собирается с -v3, тесты есть на форониксе. небольшой прирост в не считалках, прирост в разы в считалках.
multilib? не, не поможет, переставлять.https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
-v3 - это всё что с avx2
-v4 - это зоопарк с avx512
это как-бы средняя температура по больнице, зоопарк куда как ширее.
различные кастраты типа celeron'ов которые как-бы -v2/-v3 но какой-то инструкции не хватает и корки дампит с illegal instruction.
помогает только компильнуть с "-march=native -mtune=native" и то если компилятор понимает/умеет native для этого проца.а интел уже монстрячит avx10.X-128/256/512 в новых процах, еще десять лет ждать поддержки в софте.
что умеет ваш проц (по мнению вашего компилятора):
cc -v -x c -E -march=native /dev/null -o /dev/nullдефайнесы для вашего проца (по мнению вашего компилятора):
cc -march=native -dM -E - </dev/null
Можно отключить выбор в рантайме. При этом, потенциально будет лучше и быстрее попадать в кэши, меньше бинари, диспетчер не будет мешаться опять же.
Я тоже развлекался с оптимизациями путём добавления в CFLAGS всяких sse/avx.В итоге:
1. ускорения не заметил на глаз ни где
2. получил проблемы с переносимостью ОС на другое железоВыводом стал отказ от использования железо специфичных CFLAGS либо там максимум было -msse3 которое было на самом стрёмном доступном железе.
При этом я вижу что кодеки и крипта часто делают runtime детект поддерживаемых SIMD и выволняют соотвествующий код.
-march=native -O3 -flto -fno-fat-lto-objects -fdevirtualize-at-ltrans -fprofile-correction -fprofile-use и всё заметишь
-march=native - Нет, мне такое не надо, я же потом даже с 5950х на 2700х не загружусь.
-flto - пробовал, далеко не всё собиралось. И часто оно слишком долго отрабатывает.
-O3 - давно юзаю, только для wine прилось 2 выставить.
Остальное не знаю.У меня нынче так: -O3 -pipe -funroll-loops -mretpoline -fno-delete-null-pointer-checks -fstack-protector-strong -fno-strict-aliasing
Раньше ещё был -D_FORTIFY_SOURCE=2.
Если это gcc (а шланг заведомо неоптимальный код выдаёт в любом случае), то -O3 без PGO раз в 10 медленней -O2 код выдаёт, ну и unroll-loops без PGO глупость какая-то опять же. Я устал от новых проблем с LTO после каждого обновления компилятора, а главное, что они будут не воспроизводимыми и зависеть от очерёдности сборки остальных пакетов, поэтому включаются только для конечных программ. Результаты очень хорошие, особенно, в связке с пго. И защитных флагов -fstack-clash-protection и -mcet -fcf-protection у тебя не хватает, ssp-bufer-size тоже обычно 4 вместо дефолтного 8 высталяют. Есть ещё флаги линкера relro и now. Посмотри страничку как в той же убунте собирают, вполне грамотно. У шланга свои альтеррнативы есть, но такого хорошего кода он не выдаёт как я ни старался подкрутить.
У меня фря и тут clang. Можно и гцц заюзать дефолтным, но честно говоря я устал заниматся поддержкой всё этого и не ищу приключений.> -fstack-clash-protection и -mcet -fcf-protection
Благодарю, гляну.
Я давно в это не смотрел, скорее всего более 5 лет.> ssp-bufer-size тоже обычно 4 вместо дефолтного 8 высталяют
Вероятно это какое то выравнивание, я лучше такое трогать не буду.
> Есть ещё флаги линкера relro и now.
Да, я такое юзаю, но только у себя в проектах.
В остальных опять же не хочу искать приключений.
Просто есть флаги которые можно относительно безопасно включить для всего, а есть такие которые что то ломают, вот последних я бы не хотел.
На базе рача делают бинарные дистрибутивы, теперь будут и на базе Генты. Народ ленивый, железо мощное.
Если компы мощные, зачем бинарники под каждый набор инструкций, это же увеличивает размер репозитория? Из исходников можно почти весь софт собрать. Блобы можно забутстрапить и скопировать.
Если компы мощные, давайте найдём им занятие — канпелять, канпелять, канпелять.
Зачем напрягаться? Твои мощные компы итак надрываясь пережёвывают тонны жабаскрипта ... Даже если у тебя в системе ни одного конЦпелятора ...
Ну надо усугубить, значит!
На самом деле столько процессорного времени, сколько тратится на сборку какого-нибудь хромиума или фаерфокса, «тонны жабаскрипта» не сожрут и за год. Так ведь вот это всё ещё и регулярно пересобирать надо.
Gentoo больше не нужен :(
Бинарных дистров и без них полно, причем с вылизанными пакетниками на любой вкус.
Жалкая судьба, более 20 лет бились за идею и были вполне себе bleeding edge of progress и вот это вот всё...
И вдруг полное "здаёмсу!" :(Я от досады ах коньячку саданул :(
>>И вдруг полное "здаёмсу!" :(не _полное "здаёмсу!"_ а быстрое освоение спонсорских средств.
Да просто поравнялись они в чем-то. Только вот гента она для всяких вещей типа вырезания кода, а не что-то иное как фишечка.
Вот уберешь графическую часть из IME и сразу видно как переключение раскладок станет быстрее.
Конечно лучше когда бинарь совместим с установленным пакетом чтобы ставить только его поменять настройки и скомпилять только нужное.
Та возможность самостоятельной сборки осталась. Гентушники наверняка только долгоконпиляющиеся штуки биарями ставят. Хасвел самое дно на котором в приемлемые сроки хоть что-то можно собрать.
2 Фрик из соседней палаты>>Гентушники наверняка только долгоконпиляющиеся штуки биарями ставят.
именно так, и далеко не всё подходит по флагам.
например готовый/бинарный ФФ у меня без звука.
а либреофис ничо.
еще лучше бинарный rust, сним фф (lw) компилится в два раза быстрее.
Та все уж из одной палаты. Чего скрывать такие достоинства. :) Rust давно не компилил так что хз, а с Огнлисом вроде как было такое. По-моему я его в терминале запустил и загуглил вывод, там в пару команд у меня решилось. Chromium-ghost кстати, из коробки не плох и с медиа и вообще в целом. Тот же Яндекс браузер когда в последний раз пробовал со стримами не очень дружил к сожалению.
Даниэля Робинса на них нет.
Почти Фунту и так получается или Калькулет с Сабаен.
У меня есть вопрос к гентушникам. Например, если вы месяц не обвновлялись, сколько времени займёт компиляция и сборка всего дистрибутива, при условии, что вы имеете 2015 года выпуска и восемь гигабайт оперативной памяти?
Если бы пришлось конпелять базовую систему полностью с ллвм, сланг, гсс и при этом система собиралась 32/64,то около сутк. Про браузеры и всякие вм,де пока не говорим. На это нужно дополнительное время.
На работе i7-2600 + 16 гб ОЗУ около суток пересборка всего-всего.emerge --pretend --emptytree @world | genlop --pretend
...
Estimated update time: 23 hours, 4 minutes.
Есть еще дома феномчик х4 965 + 12 гб, сборка 2009го года, ну там под двое суток, если тоже всё-всё-всё пересобирать.
Но прям весь мир пересобирать это надо повод иметь.
>>около суток пересборка всего-всего.поверю, если без хромиума.
Юзал генту более 10 лет примерно на 15 разных серверах, самой нужной фичей было наличие grsec из коробки в hardened профилях. Теперь grsec-а давно нет, от бесконечных пересборок устал.
В конце 2023го на свой десктоп, где 10 лет стояла гента поставил убунту - разницы в производительности ни-ка-кой! Спрашивается нафига эти все пересборки и морока с use-флагами?
Привычка. Я Альт ставил и пришёл к такой же мысли как у вас и даже больше так как там было даже вкуснее чем на моей пиратской Генте. Некий кураж поймал на Фряхе,но всё не то и не совсем так.Хочу попробоватm Винду 11. До сих пор ещё не устанавливал.D
Ты лжёшь, у такого опытного профессионала, как ты, Убунту будет более производительна даже на глаз. Но в целом, конечно, дистрибутив никогда и не был про производительность (хотя никто не запрещает). Лично мне нравится простота и понятность системы, и незатратность обновлений, хотя мейнтейнеры любят пихнуть кривых поломанных ебилдов, но кто не любит.
Генту лет десять позабыл, поставил поздней осенью вдруг Калькулэйт. К сегодняшнему дню вспомнил вывод от использования генты тогда - ничего не собирай и не обновляй. (digicam отвалился). Просто через годик или по необходимости разверни новый дистр из стэйджа. И если тогда это было полтора часа, то сейчас - 15 минут. И на установку пакетов полтора, но уже в фоновом режиме.
Мой опыт это заархивированный stage4 с плазмой без проблем (ну, на пару минут максимум) обновляется до актуальной версии спустя 5 лет. Что бы там не говорили, а понимать что делаешь нужно и опыт работы с гентой вполне универсальный: одни и те же сложности со сборкой ПО у тебя будут и в макос и в венде.