De frivilliga utvecklarna bakom projektet ffmpeg – ett populärt verktyg för behandling av video- och ljudfiler – har på sistone inlett en satsning på att optimera programmet med hjälp av assembler-kod. I november förra året kom en uppdatering som snabbade upp vissa funktioner med upp till 9 300 procent, och sedan dess har fler funktioner blivit rejält mycket snabbare.

I förra veckan var det dags igen, rapporterar Techspot. Utvecklaren Niklas Haas har tagit fram ett gäng nya versioner av funktioner som används av vissa filter i ffmpeg, skrivna i assembler specifikt för processorer med AVX-512, AVX-2 och andra vektorinstruktioner.

Testresultat visar att en av funktionerna har blivit hundra gånger snabbare på processorer med AVX‑512, och 64 gånger snabbare på processorer med enbart AVX‑2 (som moderna Intel-kretsar). Andra funktioner han har gjort om har blivit mellan 8 och 51 gånger snabbare med AVX‑512.

I en kommentar på X skriver ffmpegs officiella konto en kortfattad förklaring av varför de anser att handskriven assembler ger så pass mycket bättre resultat än kod skriven i till exempel C: ”register-allokering suger i kompilatorer”.

För den som är nyfiken på hur ffmpeg-utvecklarna jobbar med assembler finns en skola i tre delar på Github. För att hänga med behöver du vara bekant med hur C fungerar.