アカウント名:
パスワード:
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1638345.html
ビデオ・オーディオを扱うアプリの多くで採用されているオープンソースライブラリ「FFmpeg」で、驚くべきパフォーマンス向上が達成されました。アセンブリ言語(assembly)を手書きすることで、94倍も処理速度が向上したとのこと。
この試みが行われたのはAV1デコーダー「dav1d」においてですが、もともと約8%がアセンブリなのだそうです。そのほかはC/C++言語のソースコードとして記述され、CPUが直接理解できる機械語にコンパイル(変換)された上で実行されています。
しかし、コンパイラーによる変換に頼らず、人の手でアセンブリを記述し、最新CPUに搭載されている「SSSE3」「AVX2」「AVX-512」といった拡張命令を積極的に活用することで、思った以上の効率化が実現できたのだとか。
> 最新CPUに搭載されている「SSSE3」「AVX2」「AVX-512」といった拡張命令を積極的に活用Intel謹製のコンパイラと比べても速かったのか気になるところ。
瞬間最大速度は上がるはず
# AVX-512を積極的に使うと熱ダレスロットリングで却って遅くなるからオフィシャルは予期に計らうのではないかと
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
マルチメディアライブラリ「FFmpeg」がアセンブリ言語の手書きで爆速になったという報告 (スコア:1, 興味深い)
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1638345.html
ビデオ・オーディオを扱うアプリの多くで採用されているオープンソースライブラリ「FFmpeg」で、驚くべきパフォーマンス向上が達成されました。アセンブリ言語(assembly)を手書きすることで、94倍も処理速度が向上したとのこと。
この試みが行われたのはAV1デコーダー「dav1d」においてですが、もともと約8%がアセンブリなのだそうです。そのほかはC/C++言語のソースコードとして記述され、CPUが直接理解できる機械語にコンパイル(変換)された上で実行されています。
しかし、コンパイラーによる変換に頼らず、人の手でアセンブリを記述し、最新CPUに搭載されている「SSSE3」「AVX2」「AVX-512」といった拡張命令を積極的に活用することで、思った以上の効率化が実現できたのだとか。
Re: (スコア:1)
> 最新CPUに搭載されている「SSSE3」「AVX2」「AVX-512」といった拡張命令を積極的に活用
Intel謹製のコンパイラと比べても速かったのか気になるところ。
Re:マルチメディアライブラリ「FFmpeg」がアセンブリ言語の手書きで爆速になったという報告 (スコア:0)
瞬間最大速度は上がるはず
# AVX-512を積極的に使うと熱ダレスロットリングで却って遅くなるからオフィシャルは予期に計らうのではないかと