この時点では進捗報告だけど、アセンブラ化というだけでなくアルゴリズムの改良と最適化が大きそう。 用途を考えると当然だけど、arm向けも同時に開発してるんだな。 >About. dav1d is a new open-source AV1 decoder developed by the VideoLAN and FFmpeg communities and sponsored by the Alliance for Open Media.
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
マルチメディアライブラリ「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)
フルアセンブラだけで高速化したわけではなく、従来AVX2対応だったものをAVX-512対応にしたら最大1.3倍程度の速度になったのが改良点。
94倍というのはSIMD命令一切使用しない場合との比較なので注意が必要。
Re: (スコア:0)
> 従来AVX2対応だったものをAVX-512対応にしたら最大1.3倍程度の速度になった
AVX512ってビット数がでかい割には実際の性能向上がそれほどでもない印象。
オーバーヒート問題があるんでしたっけ?
Re: (スコア:0)
上のコメント後に少し調べてたら昨年の講演資料が見つかった。ここの2:35~のdav1dがそれ。
https://www.youtube.com/live/Z4DS3jiZhfo
この時点では進捗報告だけど、アセンブラ化というだけでなくアルゴリズムの改良と最適化が大きそう。
用途を考えると当然だけど、arm向けも同時に開発してるんだな。
>About. dav1d is a new open-source AV1 decoder developed by the VideoLAN and FFmpeg communities and sponsored by the Alliance for Open Media.