1.1, Мохнонос (?), 11:03, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +38 +/– |
Молодцы! Вот есть же разработчики, которые кроме обвеса плюшками и раскабанивания ПО ведут его непосредственную тщательную полировку
| |
|
2.31, Аноним (31), 13:24, 05/11/2024 [^] [^^] [^^^] [ответить]
| –10 +/– |
AVX512 инструкции появились в 2016 году 8 лет назад внимание вопрос. Это так долго до разработчиков доходила весть что инструкции появились? Они так долго копили на проц с поддержкой данных инструкций? Они 8 лет разрабатывали алгоритм? Ответ на любой вопрос показывает что разрабы у ффмпег не очень скажем так.
| |
|
3.34, Аноним (34), 13:29, 05/11/2024 [^] [^^] [^^^] [ответить]
| +8 +/– |
когда тебе денег за работу не платят, то выбираешь сам когда и что делать по мере возможностей и желания.
| |
|
4.36, Аноним (31), 13:31, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Справедливо Интел должна доплачивать чтобы кто-то юзал их лишние инструкции.
| |
|
|
|
7.65, Аноним (65), 16:03, 05/11/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
AVX-512 не реализовали в E-ядрах, поэтому интел инструкции отключил для всех потребительских процессоров (начиная с 2-й ревизии[1] 12 поколения). Разные наборы инструкций на разных ядрах то ли нельзя, то ли некрасиво.
Здесь в любом случае идеология есть: интел сильно топит за гетерогенность (большие P-ядра + малые E-ядра), а AVX-512 на кристаллах без E-ядер и возможность отключения E-ядер ради включения AVX-512 будут антирекламой гетерогенности.
Интел говорит, что когда-нибудь решит проблему, заменив AVX-512 на AVX10.2 (перед которым ещё когда-нибудь AVX10.1)...
[1] https://wccftech.com/heres-how-to-tell-between-an-avx-512-non-avx-512-supporti
| |
|
6.95, Фняк (?), 21:41, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
А про официально не поддерживает можно подробнее? Ну там ссылку на заявление Интел или что-то в этом духе
| |
|
5.80, Соль земли (?), 17:55, 05/11/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
в прошлом майкрософт доплачивала, чтобы винду везде ставили... и вот результат
| |
|
|
3.39, Anony (?), 13:40, 05/11/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Ты думаешь что все пользователи и все сервера сразу же в 2016 году обновились на новые процессоры с поддержкой AVX-512? Серьезно?
| |
|
4.43, Аноним (43), 14:23, 05/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Массовыми такие процессоры стали далеко не в 2016.
А когда стали появляться, Intel отрубила в т.ч. из-за роста температуры :))
| |
4.56, Вертел ваши спинеры (?), 15:07, 05/11/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Под сокет АМ5 завезли.
А раз они есть, то надо их использовать. Зря чтоли апгрейдился.
Что там у интела не интересно и вообще пофик
| |
|
3.40, Аноним (40), 13:49, 05/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
На 12400 попытались появиться, но интел быстренько резанули это дело. А проц 22-го года, если что.
| |
3.45, Ivan_83 (ok), 14:25, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Не, чувак, тут вопросы к чипмейкерам.
Я очень хотел проц с AVX512 а интел только завтраками кормило и в итоге зажало это для серверных камней.
АМД только вот только для ам5 сокета раздуплилось.
Потом там разные наборы этого AVX512 доступны, типа здесь одно - там другое. Я когда на AVX кодил мне часто из AVX2 не хватало инструкций, а с AVX512 я так понял что наборы ещё скуднее.
А судя по тестам - мне и на обычном AVX2 производительности хватит :)
Да даже на коредуба с SSSE3 видимо есть жизнь :)
| |
3.69, laindono (ok), 16:43, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
8 лет в контексте x86 это буквально вчера. Жизненный цикл процессора может быть весьма долгим. Судя по стимовской статистике (первое, что пришло на ум), AVX512 это где-то 15-20%. Не очень много. Хотя предположу, что на серверах с этим несколько лучше.
| |
|
4.78, Ivan_83 (ok), 17:25, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
У интела жизненный цикл проца 1-2 года, как и платформы.
За 10 лет интел сменил целую кучу процов и сокетов, а ам4 появился, вырос и появился ам5.
| |
|
5.83, laindono (ok), 18:03, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вопрос не в том, как часто обновы появляются, а как быстро старые уходят из употребления. Это же не смартфоны, где архитектура процев очень быстро обрастает добавками.
| |
|
6.85, Ivan_83 (ok), 18:13, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Смартфоны часто оборачиваются не из за процов а просто потому что экран или батарея или утопили.
| |
|
|
|
3.89, mr. cake (?), 19:19, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Инструкции-то были, но были только в интелах где от них включался тротлинг по частоте, т. е. смысла из использовать было ноль
| |
3.90, Кирилл (??), 19:58, 05/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Инструкции то появились... ну где то. А когда они появились на твоём столе?
| |
3.92, Аноним (92), 20:46, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
AV1 был впервые опубликован 28 марта 2018, то есть 6,5 лет назад. Это все-таки меньше, чем 8.
| |
|
|
|
2.16, КО (?), 12:09, 05/11/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Осталось только найти что конкретно сломали, лол
| |
2.19, Ник (??), 12:18, 05/11/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Нужно было писать на Java, там же волшебный jit который сам весь код оптимизирует!
| |
|
1.4, Аноним (4), 11:06, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Avx всё так же режет частоту процессора? Кто-нибудь уже составил сравнительную табличку того, чем придётся жертвовать при задействовании?
| |
|
2.7, dalco (ok), 11:13, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вроде как, урезание частот при включенном AVX относилось только к ранним моделям "синих".
| |
2.11, Cykooz (ok), 11:25, 05/11/2024 [^] [^^] [^^^] [ответить]
| +6 +/– |
В моих реализациях для AVX2, с использованием fixed-point арифметики, какой либо выигрыш перед наивной реализацией на float-ах, без AVX-а, полностью исчезает при выполнении задачи уже в 7-8 параллельных потоках.
Так что если нужна именно однопоточная скорость, то SIMD дают заметный выигрыш. А в многопоточке, чем больше потоков, тем меньше выигрыш. Я полагаю, что это из-за снижения частоты ядер процессора при использовании SIMD.
PS: У меня AMD Ryzen 9 5950X, в нём нет AVX-512.
| |
|
|
4.27, Аноним (27), 12:42, 05/11/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Может быть, он даже не ошибся. Называют же, например, реализацию преобразования Фурье в лоб, как по формуле, наивной.
| |
|
5.60, Аноним (60), 15:35, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Может быть, он даже не ошибся.
ошибся, ибо то что он описал это тупо замена последовательных вычислений на параллельные, сам алгоритм не изменился. А в случае с "наивностью", сравните, к примеру, "наивный" алгоритм сортировки (перебор) с алгоритмом "быстрой" сортировки, это два разных алгоритма.
| |
|
6.64, Cykooz (ok), 15:54, 05/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Под "наивной" я имел ввиду без ассемблера и без вызова разных интринсиков. Исключительно на базовых возможностях языка программирования, наивно рассчитывая что компилятор сотворит волшебство и выдаст самый оптимальный код.
В реальности, по дефолту, если там и появляются на выходе какие-то SIMD, то максимум SSE2, который гарантируется архитектурой x86-64 и который компилятор может использовать.
Алгоритм у меня один и тот же - берём пиксель, умножаем на коэффициент, результат прибавляем к аккумулятору. Кроме как распараллеливания там ничего особенно волшебного не придумаешь. Разве что fixed-point использовать вместо float-ов.
| |
|
7.68, Аноним (60), 16:24, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Под "наивной" я имел ввиду без ассемблера и без вызова разных интринсиков.
думаю, уместно было бы написать "нативной (простой) реализацией на float-ах"
> Кроме как распараллеливания там ничего особенно волшебного не придумаешь.
и оно со своими ограничениями (проблема ввода)
| |
|
|
|
|
3.47, НяшМяш (ok), 14:31, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Это из-за снижения частоты процессора с ростом потоков. У меня в однопотоке такой же процессор бустится почти до 5.2, а во многопотоке до 4.4-4.6. Но у меня хороший кулер на процессоре и я довольно много потратил времени в биосе настраивая лимиты, чтобы он так работал. В стоке эти цифры ещё меньше будут.
| |
|
4.53, Ivan_83 (ok), 14:49, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
У него АМД, вряд ли просадка с 4 до 3,4 даст заметное проседание скорости, а ниже базовой АМД не сбрасывает, только тротлить может при перегреве.
Я у себя вообще везде бусты выключил чтобы не тратить время и силы на охлаждение, а местами ещё и частота ниже базовой установлена.
| |
|
3.48, Аноним (48), 14:34, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Лучше в 1 потоке в 8 раз быстрее считать, чем в 8 потоках с той же скоростью.
| |
|
4.66, Cykooz (ok), 16:04, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Не совсем так, мультипоток даёт прирост скорости даже при использовании SIMD. Просто относительное ускорение за счёт муторной ручной эквилибристики с SIMD инструкциями пропадает при каком-то числе потоков. Т.е. при необходимости можно выбирать что важнее: скорость в однопотоке, или простота написания и читаемость кода в реализации для мультипотока.
| |
|
3.50, Ivan_83 (ok), 14:45, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Таки ничего удивительного, учитывая что AVX позволяет более плотно загружать ИМЕЮЩИЕСЯ блоки, а у вас там гипертрединг ещё.
| |
|
2.22, Аноним (22), 12:33, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
На нормальных материнских платах можно регулировать оффсет частоты при выполнении AVX-инструкций, в т.ч. и ставить его в 0.
| |
|
1.8, _kp (ok), 11:14, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Время перекодирования или только "некоторые операции"? ;)
Ps: и сравнение не с предудущим вариантом, а
"по сравнению с кодом на языке Си", то есть вообще без avx/sse.
Если б сравнили с i386, то прирост был бы еще больше.
| |
|
2.12, Андрей (??), 11:32, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Судя по скрину - некоторые операции... которые являются по сути базовыми для операций кодирования. Цельный результат оценить сложнее и скорее всего совокупный прирост небольшой, т.к. медленные операции того же чтения с диска быстрее не стали, да и в случае векторных расширений интересно на самом деле то, что там вообще кроме непосредственно одновременных вычислений есть куча расширений чисто для улучшения работы с кэшем, те же базовые load/store и вот тут предположу большую часть вклада внесли именно оптимизации работы кэша, а вычисления скорее довеском стали ибо будучи казалось бы более быстрыми они имеют высокие задержки и длятся дольше, ввиду чего задерживают конвеер не давая линейного прироста скорости.
| |
2.14, Аноним (14), 11:54, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Время перекодирования или только "некоторые операции"? ;)
Отдельные функции.
> Если б сравнили с i386, то прирост был бы еще больше.
Сравнили с тем, что использовалось до этого.
| |
|
1.13, Big Robert TheTables (?), 11:50, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вроде бы удаляли эти инструкции, но вообще интересно, для каких именно разработчиков эти наборы инструкций добавляли. Ибо авторы ффмпег сейчас совсем как мы, сторонние программисты - мы зашли в магазин автозапчастей и увидели, что на прилавке есть двигатель, который подойдет на замену нашему. Но ведь изначально-то движок был для какой-то другой ракеты, был разработан, сбалансирован, проверен для иного использования.
В идеале авторы кодеков должны делать брейншторм с авторами CPU. Если этого не делается, значит, с чипмейкерами брейнштормит кто-то другой.
| |
|
2.20, Аноним (65), 12:22, 05/11/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> мы зашли в магазин автозапчастей и увидели, что на прилавке есть двигатель, который...
Нет, мы взяли котёнка по кличке "ядро", у которого есть дверцы разного размера (от 64 до 512) и попробовали самую большую. Получилось хорошо.
> Но ведь изначально-то движок был для какой-то другой ракеты
Нет, это универсальные дверцы для любых законных целей.
> должны делать брейншторм с авторами CPU
Тебе должны? Откуда уверенность, что им не хватает новой специальной дверцы?
> Вроде бы удаляли эти инструкции
Только в интелах с E-котятами, потому у этих малых котят нет 512-дверцы. Дверцы малым и большим котятам положено иметь одинаковые.
| |
|
3.33, Аноним (31), 13:28, 05/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Поэтому компания Интел и находится на грани банкротства с убытками 16 миллиардов в квартал. В квартал, Карл!
| |
|
4.42, Аноним (65), 14:18, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Не поэтому. С тем же успехом можно сказануть, что "у него хардварные кодеки лучше и энкодер AV1 в 15 поколении появился, за счёт них точно выкарабкается".
| |
4.59, _kp (ok), 15:29, 05/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Поэтому
Из за этого покупатели не разбегаются.
А вот, скоропортящиеся лотерейные процесоры, это уже серьёзнее.
| |
|
5.86, Аноним (14), 19:05, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Проблемы у Intel начались задолго до фиаско с 13/14 поколением.
| |
|
|
5.72, Tita_M (ok), 17:02, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
На 3dnews.ru были новости, но там Интел писала, что это в основном разовые убытки из-за реструктуризации.
| |
|
4.82, Бывалый Смузихлёб (ok), 18:02, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Квартал ни о чём не говорит. Один может быть сильно более убыточный, другой - сильно более прибыльный. По году смотреть надо. Тем более, что финансовый год в сша кончается осенью
| |
|
|
|
1.17, Аноним (17), 12:10, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Чует моё сердце, что тут 100 пудово есть какой-нить "нюанс", типа всё делаем в однопотоке или ещё чего-нить подобное.
| |
|
|
|
4.52, Аноним (52), 14:49, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Не надейтесь. Там ассемблер. Но и не расстраивайтесь. Для раста много ниш открывается. По замене питона, бейсика и т.п.
| |
|
5.58, Аноним (48), 15:21, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
По факту это питон всех заменяет и вырвался на первое место по частоте использования.
| |
|
6.61, _kp (ok), 15:35, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
>> место по частоте использования.
Так, это не осилили просто что то серьёзнее.
Вот на дорогах каких машин больше BMW ,или Лады? А что лучше?
Вот, и тут то же самое, среднестатистическому
большинству многое не по силам, и искренне радуются тому что есть. Но как только поячится возможность взять что то лучше, и возьмут, и польют грязью старое.
| |
|
|
|
|
|
5.91, Аноним (65), 20:31, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Зачем бы я тогда искал? От факта использования интеловского синтаксиса есть некое удовлетворение. Не всё потеряно в этом мире.
| |
|
|
|
|
1.51, Аноним (52), 14:47, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> 94, 44, 64 и 4.24 раза по сравнению базовой реализацией
Представил себе качество базовой реализации.
| |
|
2.55, Аноним (55), 15:05, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Рассуждать о качестве тут вообще не к месту.
Правильнее называть это не базовой реализацией, а референсом. Этот код должен быть просто написан, чтобы исключить ошибки в нём. Референс этот используется для проверки правильности результата оптимизированных реализаций. Поэтому сравнение в скорости с референсом вообще некорректно. Даже на Си можно написать код быстрее, но код этот будет сложным, и его самого придётся чем-то проверять. Оптимизированный код с векторами (векторные интринсики) можно и на Си написать, но в ffmpeg предпочитают ассемблер.
Новость желтушная от названия до содержания.
| |
2.63, Ivan_83 (ok), 15:49, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
А что там представлять?
Там видимо какая то простая операция, типа сложить однин кусок памяти с другим представив что это массивы uint8_t.
И код на си будет простым циклом проходящим по каждому элементу и делающему сложение.
Вот его переписали на SSSE и он стал за "одну операцию" складывать не 1 элемент а сразу 16, потом на AVX и там 32 а на AVX512 сразу 64 за раз.
Вот и вся магия, минус накладные расходы, а иногда плюс. Там есть всякие трюки с загрузкой в кеш и регистр и выгрузкой обратно в память, поэтому иногда на этом получается ещё немного выиграть скорости.
Технически некоторые вещи и на С доступны, типа префетч подёргать чтобы пока один элемент обрабатывается проц уже следуюшие подтягивал в кеш из памяти.
Просто обычно на С таким не занимаются, и сразу уходят в SIMD.
| |
|
3.67, Аноним (55), 16:06, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Просто обычно на С таким не занимаются, и сразу уходят в SIMD.
Я не понимаю что на Opennet делают настолько необразованные люди. Которые не знают ни одной вещи о которой пишут. На Си можно писать код использующий векторные инструкции напрямую, и это не ассемблерные вставки, это называется векторные интринсики.
| |
|
4.70, Аноним (60), 16:57, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Intrinsics are just C-style functions that do something with these vector data types, usually by simply calling the associated assembly instruction.
| |
4.76, Ivan_83 (ok), 17:20, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вы бы читать научились.
ОБЫЧНО на С не используют такие штуки, в том числе и инстрикты и префетчи и пр.
И обычно не пишут код под векторизацию - я про разворачивание циклов в ручную, например когда один шаг цикла делают в 4-8-16 и за раз столько складывают.
Про инстрикты в С я лично знаю лет 10 как минимум и у меня есть пачка кода на этом.
И префетчем я баловался в С в коде без инстриктов и это даже давало какой то еле заметный эффект.
| |
|
|
|
1.54, Аноним (55), 14:55, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
> в 94 раза ускорить
Ужасно желтушный заголовок, потому что сравнивать надо не с Си, а с оптимизацией на предыдущих векторных инструкциях, то есть AVX2.
А там быстрее примерно в 1.5 раза, и это при увеличении длины векторов в 2 раза. И еще неизвестно как это влияет на процессор.
| |
|
2.81, Соль земли (?), 18:01, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Скорее всего сравнивают то, что успели накодить для теста. Так то можно и Си заставить использовать любые инструкции.
| |
|
1.71, Аноним (71), 16:59, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Базовые реализации у всех тестов кроме первого совсем медленные, может, вместо ускорения остальных реализаций были замедлены базовые, чтобы желтушники сообщили об огромном ускорении?
| |
|
2.94, Аноним (94), 21:35, 05/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Уже давно YouTube и русские сервера с видео поставляют его. Смотрите техническую информацию в видео при воспроизведении
| |
|
|