5960Xでx264 --threadsのテスト

やっと少し時間ができたので、Haswell-Eで少し実験。

今回は前やったみたいに、x264がスレッドをどのくらい有効に使ってくれるか試す。

ほかの5960X (Haswell-E)関連の記事
5960Xでx264エンコード
i7 5960X オーバークロック(OC)
なんか買ってしまった

設定と環境



x264はマルチスレッド効率が高いほうだけど、8C/16Tはどうなのかな、という実験。

OSWin8.1 x64Win8.1 x64
CPUi7 5960Xi7 4770K
コア数8C/16T4C/8T
動作周波数 (Core)4.4GHz3.9GHz
動作周波数 (UnCore)4.2GHz3.9GHz
キャッシュ容量L3=20MBL3=8MB
メモリDDR4-2400, 4chDDR3-2400, 2ch
メモリ容量32GB (8GBx4)16GB (4GBx4)
メモリタイミング16-16-16-39-211-12-12-32-2


ソース
H.264/AVC、1920x1080p、23.976fps、約1分30秒、2155frames
精霊使いの剣舞 OPをエンコードしたもの

共通
x264 r2479 x64 (Komisar氏)
Avisynth
LSMASHSource r717 (POP氏)

x264設定
x264 --threads <スレッド数> --preset <プリセット>

測定
いつもどおり一発勝負



結果 (高速化率)



各プリセットのthread=1の時に対する各スレッド数での速度比をグラフにした。

i7_5960X_x264_threads.png

スレッド数が1の時と比べ、8コア/16スレッドな5960Xでは最大9.8倍、4コア/8スレッドの4770Kでも最大4.4倍も高速化していて、やはりx264のマルチスレッド効率は高いようだ。そして5960Xのマルチスレッド性能の高さ、ハイパースレッディングの有用性もわかると思う。

また、予想通り(?)「重い」プリセットのほうがスレッド効率が高い。逆に「軽い」プリセットはスレッド数を増やしてもさほど高速化しない。

4770Kの場合、スレッド数を増やしていっても速度はすぐに頭打ちになってしまう。x264のスレッド数は自動の場合はコア数×1.5だけど、そのぐらい(12スレッド)でだいたい最高速度になっているんじゃないかと思う。

一方、5960Xの場合、自動なら24スレッドになる。けど、このグラフを見る限り24スレッドではまだまだ頭打ちとはいえなさそうだ。グラフを見る限り、スレッドを増やしすぎたからといって速度が落ちていく兆候は見えないので、速度だけ考えるなら48ぐらいにしてしまってもいいのかもしれない。ただthreadによって画質がいつも同じとは限らないと思うので、そこはちょっと気になることころ…。



ちなみに、この実験、プリセット5通り、スレッド数48通り、マシン2台ということで、計480回のエンコードになる。さすがにログをいちいち見て手動で入力したくなかったので、適当にプログラムを書いてcsvで出力、excelでグラフ化…というそれはそれで面倒なことになっている。

まあ、エクセルにさえ放り込めればあとは関数使っていくらでもいじってグラフにできるので、そこは楽なのだけど。

そのエクセルファイルはこちら



ほかの5960X (Haswell-E)関連の記事
5960Xでx264エンコード
i7 5960X オーバークロック(OC)
なんか買ってしまった


コメントの投稿

非公開コメント

プロフィール

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