Haswellでx264エンコードほか

これまでのHaswell
Haswellそのいち。 - ついに来たHaswell

というわけで、Haswellでエンコード試してみる。

新アーキテクチャ + AVX2の効果はいかほど?



比較環境

OSWin7 x64Win7 x64Win7 x64
CPUXeon W3680Core i7 3770KCore i7 4770K
CPU世代WestmereIvyBridgeHaswell
コア数6C/12T4C/8T4C/8T
動作周波数4.0GHz4.0GHz4.0GHz
倍率133×30100×40100×40
キャッシュL3=12MBL3=8MBL3=8MB
メモリDDR3-1333 3chDDR3-2133 2chDDR3-2133 2ch
レイテンシ8-8-8-20-29-11-10-28-29-11-10-28-2
メモリ量18GB16GB16GB
GPUGTX660HDG4000GTX660
SSDIntel 320 120GBPlextor M3P 128GBPlextor M5P 256GB


すべて4GHzに揃えた。特に、Ivy対Haswellはメモリまで含めてほぼ同じ環境なので、はっきりとした比較ができるはず。

ソフトウェア環境 (共通)
Win7 x64

Aviutl 1.00
x264 r2334 (たくあん氏) x64 8bit/10bit light
x264guiEx 1.75
lwinput.aui r602 (POP氏)
m2v.aui 0.7.8

Avisynth 2.6 alpha4 2013/01/13
avs2pipemod r17 x86
LSMASHSource r608 (たくあん氏)



まずはスタンダードなx264エンコードから。

Aviutl + x264guiEx + x264でエンコード。

ソース
H.264/AVC 1920x1080 23.976fps プログレッシブ
2153frames(1分30秒) 俺ガイル OP
入力プラグイン: lwinput.aui
Aviutlフィルタ: なし

速度 (fps)XeonW3680i7 3770Ki7 4770K
without AVX2
i7 4770K
veryslow10bit5.2954.7095.1375.511
8bit8.6698.0318.8899.021
slower10bit11.259.9511.0411.78
8bit16.4315.0617.0517.53
slow10bit17.4315.2716.9818.15
8bit24.322.725.8226.81
medium10bit27.7829.0732.0833
8bit32.134.5938.9639.35
fast10bit29.832.9936.7136.59
8bit34.7639.844.8845.03
faster10bit32.0738.6741.3842.44
8bit37.4145.7550.7851.12
veryfast10bit34.144.2547.6947.8
8bit39.4153.0456.9857.58
superfast10bit35.7246.2750.4149.9
8bit41.2756.5462.8562.65
ultrafast10bit37.4450.1956.5455.94
8bit37.4160.2755.6154.81


i7 4770K without AVX2は、ようするに--asm avxとして、AVX2用コードを無効化したもの。AVX2がどのくらい効果があるのかを見れる。

わかりにくいのでいくつかグラフで。



まずはsuperfastから。この辺りの高速設定はマルチコアをあまり生かせないので、シングルスレッドが強く、またメモリの高速なIvy/HaswellがWestmereXeonより有利。わずかにAVX2なしのほうが速い…。

haswell_x264_superfast




slow。まあまあマルチスレッドが効く。そしてHaswellが結構大きくスコアを伸ばしている。
haswell_x264_slow



veryslow。CPU使用率はほぼ100%となる、マルチコアフル活用の設定。Haswellがそこそこスコアを伸ばし、CPUをフルに使っている状態でも、4コアながらXeon6コアに勝利。

haswell_x264_veryslow




次に、デコード速度。

avs2pipemodの-benchmarkを使った測定。
MPEG2 1440x1080i 42548frames 29.97fps
H.264/AVC 1920x1080p 2153frames 23.976fps

haswell_decode_new

Haswellだとなぜかm2v.auiが圧倒的に遅い。びっくりしてこれだけは何回か取り直したんだけどやっぱり遅い。なぜだ…。
2013.06.04追記
お恥ずかしいことに設定ミスでした。申し訳ありません。グラフは設定見直し後のものに差し替えました。


LSMASH(libavcodec)はほんのわずかずつIvyより速くなってるものの、マルチスレッドが効くので6コアには負けてしまっている。



疲れた。とりあえずここまで。

まあ、Haswellは速くなるんだけど、めちゃくちゃ速くなるわけではないので残念。速度の向上はおおむね10%、どんなによくても20%は上がらないようだ。そして予告通りAVX2はあまり効かない…。


それから、m2v.auiの速度が遅くなるとか、今走らせてる自動フィールドシフトも遅くなってるようなので、いったいどうなってるのか…。下がるとか怖すぎる…。なんか妙なことが起こってる気が。C6/C7とかって切ったほうがいいのかなあ。(これはC6/C7オンでやってます)
2013.06.04追記
遅くなるのは設定ミスでした。すみません…。


QSVとかオーバークロックとか熱とかはまたそのうち。



コメントの投稿

非公開コメント

No title

これからx264の方も最適化が更に進んでくるんでしょうけど、AVX2 ON/OFFの変化の少なさは萎えますよねぇw
逆にAVX2無効化での伸びが気になります。

Re: No title

たしかにAVX2はあまり効いてないですよね。

順当に速くなってはいるんですけど、もうちょっと伸びてほしかったなあ…という。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: [email protected]
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら&gt

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら&gt

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法&gt
- QSVEncCオプション一覧&gt

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法&gt
- NVEncCオプション一覧&gt

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法&gt
- VCEEncCオプション一覧&gt

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら&gt

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト
- SSE2~AVX512による高速化版
- オリジナル: aji様

clcufilters 
- OpenCL/CUDAのGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

tsreplace
- tsの映像のみを置き換えて圧縮

rkmppenc
- Rockchip系SoCのhwエンコーダ

fawutil
- FAW(FakeAACWave)⇔aac変換
- 二重音声の取り扱いにも対応

x264afs (ミラー)
- x264のafs対応版

aui_indexer (使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (使い方)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR