The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использование в FFmpeg инструкций AVX-512 позволило в 94 раза ускорить некоторые операции

05.11.2024 10:34

Разработчики проекта FFmpeg сообщили о реализации новых ассемблерных оптимизаций, в которых, благодаря применению набора инструкций AVX-512, удалось ускорить некоторые операции, применяемые при декодировании видео. Прирост производительности ассемблерного кода с инструкциями AVX-512 составил 94, 44, 64 и 4.24 раза по сравнению базовой реализацией, написанной на языке Си без использования SIMD-инструкций. В ассемблерном коде с оптимизациями на базе инструкций AVX-2 прирост составлял 67, 27, 55 и 4.38 раз, соответственно, а на основе инструкций SSSE3 - 40, 21, 29 и 2.49 раз. Изменения добавлены в состав библиотеки dav1d, предлагающей альтернативный декодировщик для формата кодирования видео AV1. Инструкции AVX-512 доступны в процессорах AMD на базе микроархитектур Zen 4 и 5, и в процессорах Intel на базе таких микроархитектур, как Skylake-X, Ice Lake, Tiger Lake и Rocket Lake.



  1. Главная ссылка к новости (https://www.tomshardware.com/p...)
  2. OpenNews: Выпуск мультимедиа-пакета FFmpeg 7.1
  3. OpenNews: Проект FFMpeg представил собственную реализацию декодировщика xHE-AAC
  4. OpenNews: Основатель QEMU и FFmpeg опубликовал звуковой кодек TSAC
  5. OpenNews: Выпуск dav1d 1.0, декодировщика AV1 от проектов VideoLAN и FFmpeg
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62177-ffmeg
Ключевые слова: ffmeg, avx, optimization, video
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (140) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Мохнонос (?), 11:03, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +48 +/
    Молодцы! Вот есть же разработчики, которые кроме обвеса плюшками и раскабанивания ПО ведут его непосредственную тщательную полировку
     
     
  • 2.31, Аноним (31), 13:24, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • –22 +/
    AVX512 инструкции появились в 2016 году 8 лет назад внимание вопрос. Это так долго до разработчиков доходила весть что инструкции появились? Они так долго копили на проц с поддержкой данных инструкций? Они 8 лет разрабатывали алгоритм? Ответ на любой вопрос показывает что разрабы у ффмпег не очень скажем так.
     
     
  • 3.34, Аноним (34), 13:29, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +24 +/
    когда тебе денег за работу не платят, то выбираешь сам когда и что делать по мере возможностей и желания.
     
     
  • 4.36, Аноним (31), 13:31, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Справедливо Интел должна доплачивать чтобы кто-то юзал их лишние инструкции.
     
     
  • 5.41, Юрий (??), 13:49, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так интел уже официально не поддерживает AVX-512.
     
     
  • 6.49, Аноним (49), 14:43, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что так? Не взлетело?
     
     
  • 7.65, Аноним (65), 16:03, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    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

     
     
  • 8.113, Аноним (113), 03:24, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Неужели не смогли с M договориться, чтобы помечать процессы, требующие avx512 и... текст свёрнут, показать
     
     
  • 9.117, Аноним (117), 10:44, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Скорей похоже на залочку маркетингово ... текст свёрнут, показать
     
  • 9.140, Аноним (65), 22:12, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Механизм может периодически ошибаться с вылетами приложений Покупатели могут сл... текст свёрнут, показать
     
  • 6.95, Фняк (?), 21:41, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А про официально не поддерживает можно подробнее? Ну там ссылку на заявление Интел или что-то в этом духе
     
     
  • 7.109, Аноним (65), 02:24, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В серверных процессорах очевидно, что они есть и будут и войдут в AVX10 1 512 ... большой текст свёрнут, показать
     
  • 5.80, Соль земли (?), 17:55, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в прошлом майкрософт доплачивала, чтобы винду везде ставили... и вот результат
     
     
  • 6.118, Аноним (117), 10:46, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Думаю и Intel и прочие, просто у первой раз в 1000 денег больше даже чем у AMD, не говоря про других. Достаточно оглянуться на то сколько всего неадекватно-тормозного...
     
  • 3.39, Anony (?), 13:40, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ты думаешь что все пользователи и все сервера сразу же в 2016 году обновились на новые процессоры с поддержкой AVX-512? Серьезно?
     
     
  • 4.43, Аноним (43), 14:23, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Массовыми такие процессоры стали далеко не в 2016.
    А когда стали появляться, Intel отрубила в т.ч. из-за роста температуры :))
     
  • 4.56, Вертел ваши спинеры (?), 15:07, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Под сокет АМ5 завезли.
    А раз они есть, то надо их использовать. Зря чтоли апгрейдился.
    Что там у интела не интересно и вообще пофик
     
  • 4.101, Аноним (31), 23:50, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не находишь орным что сабж реализовали после деприкейта avx512?
     
     
  • 5.134, Аноним (134), 19:28, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То, что его депрекетнул идущий ко дну Интел - исключительно его проблемы. AMD пока AVX512 не депрекейтит. Интересно, еще существуют люди в здравом уме, кто покупает интел в 2024? Mindfactory отчитался, что среди их покупателей таких почти не осталось.

    > Mindfactory не продала за неделю ни одного Arrow Lake — похоже, немцам не нужны новые чипы Intel

     
     
  • 6.139, Аноним (65), 21:54, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Arrow Lake от следующих слов лучше, конечно, не станет, но Mindfactory - это вообще-то партнёр AMD, ему положено рекламировать AMD (что он и делает) и выгодные предложения делать тоже, наверное (правильная статистика продаж - хорошая реклама).
     
  • 3.40, Аноним (40), 13:49, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На 12400 попытались появиться, но интел быстренько резанули это дело. А проц 22-го года, если что.
     
  • 3.45, Ivan_83 (ok), 14:25, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не, чувак, тут вопросы к чипмейкерам.
    Я очень хотел проц с AVX512 а интел только завтраками кормило и в итоге зажало это для серверных камней.
    АМД только вот только для ам5 сокета раздуплилось.
    Потом там разные наборы этого AVX512 доступны, типа здесь одно - там другое. Я когда на AVX кодил мне часто из AVX2 не хватало инструкций, а с AVX512 я так понял что наборы ещё скуднее.

    А судя по тестам - мне и на обычном AVX2 производительности хватит :)
    Да даже на коредуба с SSSE3 видимо есть жизнь :)

     
     
  • 4.102, Аноним (31), 23:53, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Даже спрашивать страшно где ты там на своей фряхе используешь avx. А я даже и спрашивать не буду.
     
  • 4.142, Аноним (-), 10:18, 07/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Intel Core 2 Duo - это и SSE4.1.
     
     
  • 5.148, Аноним (148), 13:41, 07/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не все.
     
  • 3.69, laindono (ok), 16:43, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вопрос не в том, как часто обновы появляются, а как быстро старые уходят из употребления. Это же не смартфоны, где архитектура процев очень быстро обрастает добавками.
     
     
  • 6.85, Ivan_83 (ok), 18:13, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Смартфоны часто оборачиваются не из за процов а просто потому что экран или батарея или утопили.
     
  • 5.98, Аноним (-), 23:02, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > У интела жизненный цикл проца 1-2 года, как и платформы.

    Случайно вышло, вот, полгода :) потом проц выгорает нахрен. Народ не оценил и акции интела покатились куда-то вниз, и периодически снизу стучат.

    Ну правильно, хрен с ними с нормальными процами и честными нанометрами - зато, вот, management engine напихать ресурсы были :)

     
  • 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 [^] [^^] [^^^] [ответить]  
  • –1 +/
    AV1 был впервые опубликован 28 марта 2018, то есть 6,5 лет назад. Это все-таки меньше, чем 8.
     
  • 3.128, 1 (??), 18:04, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе никто не обязан этого делать. Ребята сделали, почёт им.
     

     ....большая нить свёрнута, показать (33)

  • 1.3, dim4k (ok), 11:04, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Ассемблер стреляет тогда - когда этого никто не ждёт😏😏😏
     
     
  • 2.16, КО (?), 12:09, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Осталось только найти что конкретно сломали, лол
     
  • 2.19, Ник (??), 12:18, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нужно было писать на Java, там же волшебный jit который сам весь код оптимизирует!
     
     
  • 3.99, Аноним (-), 23:03, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он и оптимизирует волшебный жор проца и оперативы. Станет жрать RAM и CPU в разы лучше. А вы разве сомневались? :)
     

  • 1.4, Аноним (4), 11:06, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Avx всё так же режет частоту процессора? Кто-нибудь уже составил сравнительную табличку того, чем придётся жертвовать при задействовании?
     
     
  • 2.7, dalco (ok), 11:13, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде как, урезание частот при включенном AVX относилось только к ранним моделям "синих".
     
     
  • 3.10, Аноним (4), 11:17, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Они там повторяли с каждым новым avx.
     
  • 2.11, Cykooz (ok), 11:25, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +8 +/
    В моих реализациях для AVX2, с использованием fixed-point арифметики, какой либо выигрыш перед наивной реализацией на float-ах, без AVX-а, полностью исчезает при выполнении задачи уже в 7-8 параллельных потоках.
    Так что если нужна именно однопоточная скорость, то SIMD дают заметный выигрыш. А в многопоточке, чем больше потоков, тем меньше выигрыш. Я полагаю, что это из-за снижения частоты ядер процессора при использовании SIMD.

    PS: У меня AMD Ryzen 9 5950X, в нём нет AVX-512.

     
     
  • 3.21, ryoken (ok), 12:31, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >>наивной реализацией
     
     
  • 4.27, Аноним (27), 12:42, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Может быть, он даже не ошибся. Называют же, например, реализацию преобразования Фурье в лоб, как по формуле, наивной.
     
     
  • 5.60, Аноним (60), 15:35, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Может быть, он даже не ошибся.

    ошибся, ибо то что он описал это тупо замена последовательных вычислений на параллельные, сам алгоритм не изменился. А в случае с "наивностью", сравните, к примеру, "наивный" алгоритм сортировки (перебор) с алгоритмом "быстрой" сортировки, это два разных алгоритма.

     
     
  • 6.64, Cykooz (ok), 15:54, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Под "наивной" я имел ввиду без ассемблера и без вызова разных интринсиков. Исключительно на базовых возможностях языка программирования, наивно рассчитывая что компилятор сотворит волшебство и выдаст самый оптимальный код.
    В реальности, по дефолту, если там и появляются на выходе какие-то SIMD, то максимум SSE2, который гарантируется архитектурой x86-64 и который компилятор может использовать.

    Алгоритм у меня один и тот же - берём пиксель, умножаем на коэффициент, результат прибавляем к аккумулятору. Кроме как распараллеливания там ничего особенно волшебного не придумаешь. Разве что fixed-point использовать вместо float-ов.

     
     
  • 7.68, Аноним (60), 16:24, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Под "наивной" я имел ввиду без ассемблера и без вызова разных интринсиков.

    думаю, уместно было бы написать "нативной (простой) реализацией на float-ах"

    > Кроме как распараллеливания там ничего особенно волшебного не придумаешь.

    и оно со своими ограничениями (проблема ввода)

     
  • 7.154, Аноним (154), 08:30, 08/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Можно ли объединить подходы с использованием fixed-point и расширений SSE2? Возможно, такой подход позволит достичь производительности, сопоставимой с AVX-512, и, вероятно будет более энергоэффективным. Не говоря уже о совместимости.
     
     
  • 8.157, Cykooz (ok), 17:04, 08/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если он будет более энергоэффективным, то он не будет такой же производительный ... большой текст свёрнут, показать
     
  • 3.47, НяшМяш (ok), 14:31, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это из-за снижения частоты процессора с ростом потоков. У меня в однопотоке такой же процессор бустится почти до 5.2, а во многопотоке до 4.4-4.6. Но у меня хороший кулер на процессоре и я довольно много потратил времени в биосе настраивая лимиты, чтобы он так работал. В стоке эти цифры ещё меньше будут.
     
     
  • 4.53, Ivan_83 (ok), 14:49, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У него АМД, вряд ли просадка с 4 до 3,4 даст заметное проседание скорости, а ниже базовой АМД не сбрасывает, только тротлить может при перегреве.

    Я у себя вообще везде бусты выключил чтобы не тратить время и силы на охлаждение, а местами ещё и частота ниже базовой установлена.

     
  • 4.144, Аноним (-), 11:35, 07/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Поправку надо сделать. Я не внимательно посмотрел, не один процессор 128 ядер, а два процессора по 64 ядра, в сумме 128 ядер и в сумме 256 потоков.
     
  • 4.145, Аноним (-), 11:35, 07/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 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 позволяет более плотно загружать ИМЕЮЩИЕСЯ блоки, а у вас там гипертрединг ещё.
     
  • 3.146, Аноним (-), 11:39, 07/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Поправку надо сделать. Я не внимательно посмотрел, не один процессор 128 ядер, а два процессора по 64 ядра, в сумме 128 ядер и в сумме 256 потоков. перепутал. Я на это отвеча: "задачи уже в 7-8 параллельных потоках"
     
  • 2.22, Аноним (22), 12:33, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На нормальных материнских платах можно регулировать оффсет частоты при выполнении AVX-инструкций, в т.ч. и ставить его в 0.
     
  • 2.73, Аноним (73), 17:13, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Сам по себе AVX на частоту не влияет никак. Частота снижается по средствам сторонних алгоритмов контроля потребления/температуры. Частота снижается не сильно 50-150Mhz, а некоторый код ускоряется очень сильно. https://www.techpowerup.com/review/amd-ryzen-9-9950x/
     
  • 2.152, Аноним (152), 05:02, 08/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я когда читал ваш тред, у меня рука от лица не отлипала.

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

     
     
  • 3.156, Аноним (134), 14:01, 08/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так это придумали еще 20 лет назад, до появления троттлинга процессоры просто сгорали при превышении температуры. Зато да, частота была стабильная.
     

  • 1.8, _kp (ok), 11:14, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Время перекодирования или только "некоторые операции"? ;)


    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 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вроде бы удаляли эти инструкции, но вообще интересно, для каких именно разработчиков эти наборы инструкций добавляли. Ибо авторы ффмпег сейчас совсем как мы, сторонние программисты - мы зашли в магазин автозапчастей и увидели, что на прилавке есть двигатель, который подойдет на замену нашему. Но ведь изначально-то движок был для какой-то другой ракеты, был разработан, сбалансирован, проверен для иного использования.
    В идеале авторы кодеков должны делать брейншторм с авторами CPU. Если этого не делается, значит, с чипмейкерами брейнштормит кто-то другой.
     
     
  • 2.20, Аноним (65), 12:22, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > мы зашли в магазин автозапчастей и увидели, что на прилавке есть двигатель, который...

    Нет, мы взяли котёнка по кличке "ядро", у которого есть дверцы разного размера (от 64 до 512) и попробовали самую большую. Получилось хорошо.

    > Но ведь изначально-то движок был для какой-то другой ракеты

    Нет, это универсальные дверцы для любых законных целей.

    > должны делать брейншторм с авторами CPU

    Тебе должны? Откуда уверенность, что им не хватает новой специальной дверцы?

    > Вроде бы удаляли эти инструкции

    Только в интелах с E-котятами, потому у этих малых котят нет 512-дверцы. Дверцы малым и большим котятам положено иметь одинаковые.

     
     
  • 3.33, Аноним (31), 13:28, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Поэтому компания Интел и находится на грани банкротства с убытками 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 поколением.
     
  • 4.62, Аноним (60), 15:38, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ссылку бы дать на квартальный финансовый отчет
     
     
  • 5.72, Tita_M (ok), 17:02, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На 3dnews.ru были новости, но там Интел писала, что это в основном разовые убытки из-за реструктуризации.
     
     
  • 6.108, Аноним (60), 01:22, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    интел писала на 3dnews.ru?
     
  • 6.110, Аноним (60), 02:41, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот если интересно, аноним выше непонимает разницы между расходом (ускоренной амортизацией) и убытком.

    https://www.intc.com/financial-info

    https://d1io3yog0oux5.cloudfront.net/_f78f77710807b13f2ecb124ae3043e75/intel/d

    """
    and accelerated depreciation of $15.9 billion increased GAAP loss per share attributable to
    Intel by $3.89.
    """

     
     
  • 7.120, Аноним (31), 11:21, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ускоренная амортизация это такой же бред как отрицательный рост?  Забавно это слышать от юзера который сам не мог найти ссылку.
     
     
  • 8.122, Аноним (60), 13:51, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    банкрот, убытки, звон и вечерний му звон, доон ссылку на подачу заявления о бан... текст свёрнут, показать
     
     
  • 9.158, Аноним (134), 17:21, 08/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем тебе ссылка У анонима написано на грани , не более Ты придумал о пода... текст свёрнут, показать
     
  • 6.111, Аноним (60), 03:15, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    помесячный график

    https://ycharts.com/companies/INTC/net_income

     
     
  • 7.121, Аноним (31), 11:21, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Типа ты не верил в убытки или сам себе пытаешься доказать что у Интел все хорошо? ( у Интел все плохо ).
     
     
  • 8.123, Аноним (60), 13:54, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    пену у рта протри, и балон с водой слей в канаву, а после пойми разницу между оп... текст свёрнут, показать
     
     
  • 9.159, Аноним (134), 17:26, 08/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Убыток 8212 отрицательная разница между полученными доходами и произведенными... текст свёрнут, показать
     
  • 4.82, Бывалый Смузихлёб (ok), 18:02, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Квартал ни о чём не говорит. Один может быть сильно более убыточный, другой - сильно более прибыльный. По году смотреть надо. Тем более, что финансовый год в сша кончается осенью
     
  • 4.100, Аноним (4), 23:06, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Поэтому компания Интел и находится на грани банкротства с убытками 16 миллиардов
    > в квартал. В квартал, Карл!

    Копейки, тем более они в фабы вложились. Интел too big to fail, надо будет, включат принтер специально для него.

     
     
  • 5.104, Аноним (31), 23:59, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И получишь очередные Жигули.
     
  • 3.125, Big Robert TheTables (?), 15:15, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    К сожалению, тут не котят в дверцы надо просунуть, но данные а) подготовить, б) выполнить инструкцию в) забрать. Если бы проблема была только в размерности, то данные оптимизации выполнялись бы сходу, при компиляции.
    Смотрите, как на самом деле обстоит дело. Вам кажется,что разработчики ffmpeg играли в доту, смотрели ютуб, телегу читали, потом отвлеклись и быстро накатали код, что "в другую дверцу" подает трафик. Это упрощенное, свойственное вашему возрасту упрощение. по "тебе должны" тоже всё ясно с вами.  
    В реальности все немного сложнее.
     
     
  • 4.133, Аноним (65), 19:24, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В реальности все немного сложнее.

    Конечно сложнее, дверцы находятся внутри котят.

     
  • 4.141, Аноним (65), 22:36, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > тоже всё ясно с вами

    "Когда в Интернете переходят на 'вы', в реальности давно бьют морду".

    Меня тоже сильно удивила наивность - для AMD и Intel выгоднее продать новые CPU/GPU с аппаратными декодерами AV1, чем учесть потребности разработчиков dav1d. А при разработке очередного SIMD-расширения - смотреть, где деньги водятся (обычно не в свободных проектах).

     
     
  • 5.149, Big Robert TheTables (?), 13:41, 07/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> тоже всё ясно с вами
    > "Когда в Интернете переходят на 'вы', в реальности давно бьют морду".
    > Меня тоже сильно удивила наивность - для AMD и Intel выгоднее продать
    > новые CPU/GPU с аппаратными декодерами AV1, чем учесть потребности разработчиков dav1d.
    > А при разработке очередного SIMD-расширения - смотреть, где деньги водятся (обычно
    > не в свободных проектах).

    Согласен, не работал в Intel или Эльбрусе/Байкале, но это логично. Поговорить у доски с парой-другой алгоритмистов часок, попить чаю, подумать, таких встреч провести десяток - вот и готова пользовательская история, запрос на "оффлоад" вычисленийв цпу.  Сторонние компании, где деньги водятся, более, чем охотно отпустят своих зубров на такие консультации.

     

  • 1.17, Аноним (17), 12:10, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чует моё сердце, что тут 100 пудово есть какой-нить "нюанс", типа всё делаем в однопотоке или ещё чего-нить подобное.
     
     
  • 2.37, Rodegast (ok), 13:31, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нюанс в том что не везде он теперь будет работать.
     

  • 1.26, Аноним (26), 12:42, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я надеюсь они пользовались GNU assembler с синтаксисом AT&T.
     
     
  • 2.30, Аноним (27), 12:51, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Надеюсь, с синтаксисом Intel.
     
     
  • 3.35, Аноним (31), 13:30, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Надеюсь на раст.
     
     
  • 4.44, Аноним (27), 14:23, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На Rust надейся, а сам не плошай.
     
  • 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 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> место по частоте использования.

    Так, это не осилили просто что то серьёзнее.

    Вот на дорогах каких машин больше BMW ,или Лады? А что лучше?
    Вот, и тут то же самое, среднестатистическому
    большинству многое не по силам, и искренне радуются тому что есть. Но как только поячится возможность взять что то лучше, и возьмут, и польют грязью старое.

     
     
  • 7.105, Аноним (31), 00:01, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В Германии БМВ сильно больше. Сказать то чего хотел? Что в нормальных странах выбирают нормальные автомобили?
     
     
  • 8.119, _kp (ok), 11:20, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    частота использования может указывать и на г0вно И не только про авто вне Гер... текст свёрнут, показать
     
  • 3.79, Аноним (65), 17:31, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Фух, интеловский синтаксис, NASM.

    https://code.videolan.org/videolan/dav1d/-/blob/master/meson.build#L530
    https://code.videolan.org/videolan/dav1d/-/blob/master/src/x86/mc_avx512.asm

    Количество ассемблерного кода угнетающее, как это вообще пишут.

     
     
  • 4.87, Аноним (14), 19:08, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Фух, интеловский синтаксис, NASM.

    А вам не всё равно?

     
     
  • 5.91, Аноним (65), 20:31, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем бы я тогда искал? От факта использования интеловского синтаксиса есть некое удовлетворение. Не всё потеряно в этом мире.
     
  • 5.96, 1001й глаз (?), 22:18, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не всё равно.
     
  • 4.114, Аноним (-), 06:41, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, каталог blob  у проекта, которое не относится к проекту ffmpeg.
     
     
  • 5.137, Аноним (65), 21:27, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, умные комментарии на опеннете.

    Это часть гитхлабовских URL, алло: [1]

    О том, что речь идёт о dav1d, написано и в новости.

    FFmpeg - новость из их твиттера. Что именно они сделали - только фотографию на конференции[2] или доклад или сравнение производительности или коммит в dav1d - это не ко мне.

    [1] https://stackoverflow.com/questions/39400848/in-github-urls-what-is-the-differ
    [2] https://www.videolan.org/videolan/events/vdd24/

     

  • 1.29, Аноним (29), 12:50, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    кхм. а скомпилировать из си с использование указанных инструкций?
     
     
  • 2.32, BeLord (ok), 13:26, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А компилятор смогёт?-))
     
     
  • 3.97, Аноним (97), 22:51, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А в чём проблема?
     
     
  • 4.116, n00by (ok), 10:32, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В неумении эксперта задать ключ -S транслятору?
     

  • 1.46, Ivan_83 (ok), 14:29, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    На AVX2 главное не сильно хуже получилось.
     
     
  • 2.75, 12yoexpert (ok), 17:18, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    по логике avx512 должен быть в 256 раз быстрее avx2, но intel и тут облажались
     
     
  • 3.77, Ivan_83 (ok), 17:22, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У интела с неймингом традиционно плохо :)
     
  • 3.88, Аноним (14), 19:09, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > в 256 раз быстрее

    В 100500 же ж.

     

  • 1.51, Аноним (52), 14:47, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > 94, 44, 64 и 4.24 раза по сравнению базовой реализацией

    Представил себе качество базовой реализации.

     
     
  • 2.55, Аноним (55), 15:05, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Рассуждать о качестве тут вообще не к месту.

    Правильнее называть это не базовой реализацией, а референсом. Этот код должен быть просто написан, чтобы исключить ошибки в нём. Референс этот используется для проверки правильности результата оптимизированных реализаций. Поэтому сравнение в скорости с референсом вообще некорректно. Даже на Си можно написать код быстрее, но код этот будет сложным, и его самого придётся чем-то проверять. Оптимизированный код с векторами (векторные интринсики) можно и на Си написать, но в ffmpeg предпочитают ассемблер.

    Новость желтушная от названия до содержания.

     
  • 2.63, Ivan_83 (ok), 15:49, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что там представлять?
    Там видимо какая то простая операция, типа сложить однин кусок памяти с другим представив что это массивы 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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы бы читать научились.
    ОБЫЧНО на С не используют такие штуки, в том числе и инстрикты и префетчи и пр.
    И обычно не пишут код под векторизацию - я про разворачивание циклов в ручную, например когда один шаг цикла делают в 4-8-16 и за раз столько складывают.

    Про инстрикты в С я лично знаю лет 10 как минимум и у меня есть пачка кода на этом.
    И префетчем я баловался в С в коде без инстриктов и это даже давало какой то еле заметный эффект.

     
     
  • 5.126, Аноним (55), 16:22, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > ОБЫЧНО на С не используют такие штуки

    Что значит обычно? Это как-то связано с тем что 99% случаев никто код не оптимизирует, это и делает вашу статистику? По моим наблюдениям в большинстве проектов, если занимаются оптимизациями, то пишут на Си с интринсиками, а не на ассемблере. Известный всем пример - OpenCV. Существуют мультиархитектурные обёртки вроде simde, чтобы под каждую архитектуру не писать отдельно. ffmpeg это как раз исключение, также в Intel любят писать на ассемблере (но с Intel это понятно). И даже в ffmpeg есть несколько архитектур где оптимизировано через интринсики на Си.

     
     
  • 6.127, Аноним (60), 17:48, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > то пишут на Си с интринсиками, а не на ассемблере.

    а разве есть разница?

     
     
  • 7.130, Аноним (55), 18:14, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Разница в чём В производительности будет одно и то же Если вы не мега-эксперт ... большой текст свёрнут, показать
     
     
  • 8.131, Аноним (60), 18:31, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    то есть я пишу на С и пихаю асм вставки векторных инструкций и мне надо будет за... текст свёрнут, показать
     
     
  • 9.135, Аноним (55), 19:48, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Где в процитированный для виду википедии написано что интринсики это асм вставки... текст свёрнут, показать
     
     
  • 10.138, Аноним (60), 21:27, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    вам теперь скинуть ссылку на определение built-in function ... текст свёрнут, показать
     
  • 6.136, Ivan_83 (ok), 20:43, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы оптимизировать код не обязательно опускатся на низкий уровень и писать инстриктами/SIMD код, это обычно самое последнее что делают.
    Высокороуровневые оптимизации часто могут дать выигрыш намного больше чем SIMD.
    Когда я возился с ECDSA то оказалось что там есть много интересных методов рассчёта дающих тот же самый математический результат за в разы меньшее время.

    Я веду к тому что написать memcpy() быстрее чем тот монстр что там сейчас включающий в себя SIMD реализацию не получится, но бывают случаи когда можно этот самый memcpy() дергать намного реже.

    Я тут в качестве хобби возился с реализацией гост хэша на SEE/AVX.
    После длительной возни я пришёл к выводу что проще на обычном С коде работать с тамошним uint512_t счётчиком битов чем мучатся с длинной арифметикой на SIMD. По скорости С вариант даже быстрее местами чем SIMD, и это позмолилось понизить требования до AVX1 и SSE который есть в коредуба.

    И в целом проектов где всё упирается в числодробилку, наподобии OpenCV, ffmpeg (кодеков) не так много.
    Я часто возился с тормозящим кодом где была проблема в неоптимальном высокоуровневом коде, последние разы это были gtk3 и CodeLite.
    В последнем проблемы с крестовой лапшой, когда с виду невинные конструкции порождают чудовищный код.

     

  • 1.54, Аноним (55), 14:55, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > в 94 раза ускорить

    Ужасно желтушный заголовок, потому что сравнивать надо не с Си, а с оптимизацией на предыдущих векторных инструкциях, то есть AVX2.

    А там быстрее примерно в 1.5 раза, и это при увеличении длины векторов в 2 раза. И еще неизвестно как это влияет на процессор.

     
     
  • 2.81, Соль земли (?), 18:01, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее всего сравнивают то, что успели накодить для теста. Так то можно и Си заставить использовать любые инструкции.
     
     
  • 3.84, Аноним (65), 18:12, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не, всё написано, последнее изменение полгода назад, почти сплошной асм отдельными файлами.

    https://code.videolan.org/videolan/dav1d/-/blob/master/src/x86/mc_avx512.asm

     

  • 1.71, Аноним (71), 16:59, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Базовые реализации у всех тестов кроме первого совсем медленные, может, вместо ускорения остальных реализаций были замедлены базовые, чтобы желтушники сообщили об огромном ускорении?
     
     
  • 2.129, Аноним (129), 18:10, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Очень похоже на то: https://news.ycombinator.com/item?id=42042706

    Но не совсем, ускорение всё же есть, просто чтобы получить заявленные 146% пришлось затормозить сишный код.

     

  • 1.93, Аноним (92), 20:51, 05/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Еще бы найти где-то видео в формате AV1.
     
     
  • 2.94, Аноним (94), 21:35, 05/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Уже давно YouTube и русские сервера с видео поставляют его. Смотрите техническую информацию в видео при воспроизведении
     
     
  • 3.106, Аноним (31), 00:02, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не надо так.
     

  • 1.115, Ilya Indigo (ok), 07:22, 06/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне больше интересно насколько с AVX512 производительнее чем с AVX256 и стоит ли оно того?
     
     
  • 2.124, anon111 (?), 14:16, 06/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    См. тему про тестирование cpu в ffmpeg на форуме ixbt. Если коротко, бывает даёт +5-10% скорости кодирования. Это было до новой версии ffmpeg. Посмотрим, что изменится с новинкой.
     

  • 1.132, Bottle (?), 19:18, 06/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А потом говорят, что Сишка быстрая.
     
     
  • 2.147, Аноним (147), 12:57, 07/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Сишка не исполняется
     

  • 1.153, Аноним (152), 05:08, 08/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Работают ли эти оптимизации на aarch64?
     
     
  • 2.155, Аноним (155), 13:05, 08/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нет кончено, это не для армов.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру