Skip to content
Menej ako minútu min.
Starodávny spôsob kódovania 100-násobne zrýchľuje obľúbený video enkóder – je to príliš dobré, aby to bola pravda?

FFmpeg dosiahol doposiaľ najväčšie zrýchlenie, ktoré sa týka iba jednej funkcie, o ktorej počulo len málo ľudí. Ručne písaný Assembly kód sa vracia v špecializovanom filtri, ktorého sa väčšina používateľov ani nedotkne. AVX512 poskytuje FFmpeg absurdný 100-násobný nárast, ale iba ak ho váš CPU podporuje.

Projekt FFmpeg, známy poháňaním niektorého z najpoužívanejších softvérov na úpravu videa a mediálnych nástrojov, sa opäť dostáva do titulkov.

Vývojári tvrdia, že dosiahli to, čo nazývajú „doposiaľ najväčšie zrýchlenie“, prinášajúc 100-násobný nárast výkonu v nedávnej aktualizácii.

Háčik? Vzťahuje sa to iba na jednu, neznámu funkciu a spôsob, akým sa to dosahuje, vyvoláva otázniky – ručne písaný Assembly kód, technika, ktorú väčšina dnešných vývojárov považuje za zastaranú.

Assembly kódovanie vyvoláva nostalgiu aj skepticizmus.

Assembly jazyk, ktorý bol kedysi nevyhnutný na to, aby sa z obmedzeného hardvéru v 80. a 90. rokoch 20. storočia vyťažilo maximum, sa stal špecializovanou praxou.

Vývojári FFmpeg sa naň však naďalej spoliehajú pre extrémnu optimalizáciu a nazývajú sa „assembly evanjelistami“.

Vo svojej najnovšej záplate prepísali filter s názvom rangedetect8_avx512 pomocou inštrukcií AVX512, ktoré sú súčasťou moderného SIMD (Single Instruction, Multiple Data) nástroja, ktorý pomáha CPU vykonávať viacero úloh paralelne.

Na systémoch bez podpory AVX512 poskytuje variant AVX2 stále 65,63% zlepšenie.

Ako tím zdôrazňuje, „Je to jedna funkcia, ktorá je teraz 100-krát rýchlejšia, nie celý FFmpeg.“

Táto správa nasleduje po podobnom zvýšení, o ktorom sa informovalo v novembri 2024, kde ďalšia záplata priniesla určitým operáciám až 94-násobné zrýchlenie.

V tomto prípade časť predtým rozdielneho výkonu pramenila z nesúladu v zložitosti filtrov: generická C verzia používala 8-tap konvolúciu, zatiaľ čo SIMD verzia používala jednoduchší 6-tap prístup.

Dokonca aj kompilácia C verzie v režime vydania s lepším kompilátorom, ako je Clang, by mohla preklenúť viac ako 50 % rozdielu, čo naznačuje, že niektoré z deklarovaných ziskov rýchlosti mohli byť prehnané porovnaním najhoršieho prípadu s najlepším prípadom.

„Register allocator sucks on compilers,“ zažartovali vývojári na sociálnych sieťach, čím zdôraznili neefektívnosť kompilátora.

Napriek výhradám toto obnovené zameranie na kódovanie nízkej úrovne vyvolalo nové rozhovory o optimalizácii výkonu.

FFmpeg poháňa všetko od VLC Media Player po nespočetné množstvo nástrojov na sťahovanie z YouTube, takže aj malé vylepšenia v izolovaných filtroch sa môžu rozšíriť do široko používaného softvéru.

Je však potrebné poznamenať, že takéto výsledky je často ťažké replikovať a aplikovať na širšie časti kódu.

Aj keď sú tieto druhy hlbokých optimalizácií pôsobivé, nemusia odrážať zlepšenia v reálnom svete pre bežných používateľov, ktorí upravujú zábery pomocou softvéru na úpravu videa.

Ak iné základné funkcie nedostanú podobné zaobchádzanie, prísľub rýchlejšieho FFmpeg môže zostať obmedzený na technické benchmarky.

Staňte sa súčasťou našich čitateľov, ktorí nás podporujú!

Vaša podpora nám pomáha udržiavať nezávislé správy zdarma pre všetkých.

Please enter a valid amount.
Ďakujeme za Vašu podporu.
Vašu platbu nebolo možné spracovať.
Redakcia

FFmpeg dosiahol doposiaľ najväčšie zrýchlenie, ktoré sa týka iba jednej funkcie, o ktorej počulo len málo ľudí. Ručne písaný Assembly kód sa vracia v špecializovanom filtri, ktorého sa väčšina používateľov ani nedotkne. AVX512 poskytuje FFmpeg absurdný 100-násobný nárast, ale iba ak ho váš CPU podporuje.

Projekt FFmpeg, známy poháňaním niektorého z najpoužívanejších softvérov na úpravu videa a mediálnych nástrojov, sa opäť dostáva do titulkov.

Vývojári tvrdia, že dosiahli to, čo nazývajú „doposiaľ najväčšie zrýchlenie“, prinášajúc 100-násobný nárast výkonu v nedávnej aktualizácii.

Háčik? Vzťahuje sa to iba na jednu, neznámu funkciu a spôsob, akým sa to dosahuje, vyvoláva otázniky – ručne písaný Assembly kód, technika, ktorú väčšina dnešných vývojárov považuje za zastaranú.

Assembly kódovanie vyvoláva nostalgiu aj skepticizmus.

Assembly jazyk, ktorý bol kedysi nevyhnutný na to, aby sa z obmedzeného hardvéru v 80. a 90. rokoch 20. storočia vyťažilo maximum, sa stal špecializovanou praxou.

Vývojári FFmpeg sa naň však naďalej spoliehajú pre extrémnu optimalizáciu a nazývajú sa „assembly evanjelistami“.

Vo svojej najnovšej záplate prepísali filter s názvom rangedetect8_avx512 pomocou inštrukcií AVX512, ktoré sú súčasťou moderného SIMD (Single Instruction, Multiple Data) nástroja, ktorý pomáha CPU vykonávať viacero úloh paralelne.

Na systémoch bez podpory AVX512 poskytuje variant AVX2 stále 65,63% zlepšenie.

Ako tím zdôrazňuje, „Je to jedna funkcia, ktorá je teraz 100-krát rýchlejšia, nie celý FFmpeg.“

Táto správa nasleduje po podobnom zvýšení, o ktorom sa informovalo v novembri 2024, kde ďalšia záplata priniesla určitým operáciám až 94-násobné zrýchlenie.

V tomto prípade časť predtým rozdielneho výkonu pramenila z nesúladu v zložitosti filtrov: generická C verzia používala 8-tap konvolúciu, zatiaľ čo SIMD verzia používala jednoduchší 6-tap prístup.

Dokonca aj kompilácia C verzie v režime vydania s lepším kompilátorom, ako je Clang, by mohla preklenúť viac ako 50 % rozdielu, čo naznačuje, že niektoré z deklarovaných ziskov rýchlosti mohli byť prehnané porovnaním najhoršieho prípadu s najlepším prípadom.

„Register allocator sucks on compilers,“ zažartovali vývojári na sociálnych sieťach, čím zdôraznili neefektívnosť kompilátora.

Napriek výhradám toto obnovené zameranie na kódovanie nízkej úrovne vyvolalo nové rozhovory o optimalizácii výkonu.

FFmpeg poháňa všetko od VLC Media Player po nespočetné množstvo nástrojov na sťahovanie z YouTube, takže aj malé vylepšenia v izolovaných filtroch sa môžu rozšíriť do široko používaného softvéru.

Je však potrebné poznamenať, že takéto výsledky je často ťažké replikovať a aplikovať na širšie časti kódu.

Aj keď sú tieto druhy hlbokých optimalizácií pôsobivé, nemusia odrážať zlepšenia v reálnom svete pre bežných používateľov, ktorí upravujú zábery pomocou softvéru na úpravu videa.

Ak iné základné funkcie nedostanú podobné zaobchádzanie, prísľub rýchlejšieho FFmpeg môže zostať obmedzený na technické benchmarky.

Staňte sa súčasťou našich čitateľov, ktorí nás podporujú!

Vaša podpora nám pomáha udržiavať nezávislé správy zdarma pre všetkých.

Please enter a valid amount.
Ďakujeme za Vašu podporu.
Vašu platbu nebolo možné spracovať.
Translate »