Ryzen/Haswell/KabylakeでのSMT(HTT)の効果

タイトルの通り、SMT/HTTがどのくらい効果があるのかを見てみた。BIOSでオン/オフを切り替えて比較。

比較環境
CPURyzen 7 1700
@ 3.6GHz
i7 5960X
@ 3.6GHz
i7 5960X
@ 4.2GHz
i7 7700K
@ 4.8GHz
コア数8C/16T8C/16T4C/8T
定格3.0GHz3.0GHz4.2GHz
Turbo3.7GHz3.5GHz4.5GHz
設定Clock3.6GHz3.6GHz4.2GHz4.8GHz
設定電圧1.225V1.100V1.164V1.296V
設定Uncore-3.6GHz3.8GHz4.4GHz
メモリG.Skill F4-3400C16Q-16GRBD Avexir AVD4U24001608G-4MCorsair CMK16GX4M2B4000C19R
メモリ速度DDR4-2400, 2chDDR4-2400, 4chDDR4-2666, 4chDDR4-3600, 2ch
メモリタイミング15-15-15-3615-15-15-3516-16-16-39-216-16-16-36-1
メモリ電圧1.20V1.20V1.255V1.35V
マザーボードAsrock AB350 Pro4 (1.50)Asrock Fatal1ty X99 Professional Gaming i7Asrock Z270 Extreme4
SSDPlextor PX-128M3 128GBPlextor M8Pe 1TB (PX-1TM8PeY)Plextor M6 Pro (PX-256M6Pro)
ケースAntec P100Corsair Carbide 330RAntec P100
冷却純正 (Wraith SPIRE)Cooler Master Nepton 280L (簡易水冷 280mm)CRYORIG A80 (簡易水冷 280mm)
電源Enermax EPM600AWTSeasonic SS-760XP2Seasonic SS-660XP2S
OSWin10 x64Win10 x64Win10 x64


※R7 1700のみ、Windowsの電源プランは高パフォーマンス。



SMT/HTTはBIOSでオン/オフを切り替えて比較。

まずはCinebench 15から。



SMT offだと、R7 1700@3.6GHzと5960X@3.6GHzがほぼ同スコアなのに対し、SMTをonにするとR7 1700@3.6GHzのスコアが大きく延びて、5960X@3.6GHzを大きく上回る結果になった。

RyzenのFPUは128bitのFADDx2 + FMULx2という構成なので、1スレッドだと余力がまだまだあり、SMTで2スレッド放り込むとその真価を発揮できる、というところだろうか。



x264エンコード(8bit)。

環境は
Aviutl 1.00
x264guiEx 2.50
x264 2762 x64 (8bit)
lwinput.aui

入力ファイル
sample_movie_1080p.mpg (MPEG2, 1920x1080p, 29.97fps, 5203frame, 2分53秒, 10.61mbps)

オプションは以下の4通り。
--preset faster
--preset medium
--preset slow
--preset slower



ほとんどのCPUで、slowerやslowでは、SMT onのほうが速い一方、mediumやfasterではSMT offのほうがやや遅いという結果に。

slowやslowerで見ると、SMTを有効にしたことによる速度の伸び率は、7700K > R7 1700 > 5960Xといった感じで、7700Kが特にSMTの効果が大きい印象。やはり、Haswell→Skylakeでの整数SIMDの実行ユニット数追加が大きいのだろうか?
・整数加減算 2→3
・整数積算 1→2
・シフト 1→2
というか、Skylakeはなんでshuffle系もついでに増やしてくれなかったのやら…。



さて、次にx265。x265では10bitエンコもやってみた。x265はRyzenが苦手とされるが…。

環境は
Aviutl 1.00
x265guiEx 3.77
x265 2.3+22 x64 (8bit/10bit)
lwinput.aui

入力ファイル
sample_movie_1080p.mpg (MPEG2, 1920x1080p, 29.97fps, 5203frame, 2分53秒, 10.61mbps)

オプションは以下の4通り。
--crf 21 --preset fast
--crf 21 --preset medium
--crf 21 --preset slow





x264と異なり、presetに関係なく、SMTオンのほうが高速になった。



ざっと調べた感じ、Ryzenの整数SIMDは、

論理演算 128bitx4
加減算 128bitx3
飽和付き加減算 128bitx2
積算・積和算 128bitx1
シフト 128bitx1
最大最小 128bitx3
平均 128bitx2
shuffle系 128bitx2 (一部除く)

という感じの模様。


スポンサーサイト

コメントの投稿

非公開コメント

AMD Ryzen Community Update #2

検証ご苦労様です。
AMD Ryzen Community Update #2の告知が出ましたね。

https://community.amd.com/community/gaming/blog/2017/03/30/amd-ryzen-community-update-2

BIOS更新でメモリアクセスなどが改善されるとか色々書かれてます。
まだまだ有償ベータみたいな状況ですが、メモリ周りも速くなるみたいで期待できますね。

BIOSes based on this new code will have four important improvements for you

1. We have reduced DRAM latency by approximately 6ns. This can result in higher performance for latency-sensitive applications.

2. We resolved a condition where an unusual FMA3 code sequence could cause a system hang.

3. We resolved the “overclock sleep bug” where an incorrect CPU frequency could be reported after resuming from S3 sleep.

4. AMD Ryzen? Master no longer requires the High-Precision Event Timer (HPET).

No title

特性について解析が進んだところでちょっと質問です

Ryzen向けの拡張を行うことによってafsなどが高速化する余地はあるのでしょうか?
プリフェッチ命令を使わないほうがいいというインタビュー( http://www.4gamer.net/games/300/G030061/20170308070/ )もありますが・・

Re: No title

>AMD Ryzen Community Update #2
メモリ周りの改善は楽しみですね。6nsって結構大きいような…。

>Ryzen最適化
自動フィールドシフトに関していえば、prefetchはRyzenであっても使わないと速度がガタ落ち(30%ほど)してしまいます。これは、自動フィールドシフトではprefetchをあてにして変則的なメモリアクセスを行っているため、優秀とされるRyzenのhardware prefetchも追いきれないのではないかと思います。

AVX2はご多分に漏れず使うと遅くなってしまうようです。すべての処理で遅くなるわけではないですが、一部の処理では2割程度遅くなってしまっていて、コードを書く側としては悲しい限りです。

Ryzenは一応AVX2に対応しているため、自動的にAVX2のコードが動きますが、なんらかの方法でRyzenを検出して、AVX2を実行しないようにしたほうがいいのかもしれません。

No title

返信ありがとうございます。

一部の処理で2割ということは、Ryzen向け最適化でトータル1割あるなしという感じ・・かな?
わりに合わないような気もしますが、Ryzen向けafs(気が向けば)よろしくお願いします

しかし6nsのメモリアクセスの改善FMA3バグ修正など、最適化するにしてもまだ不確定要素が多すぎですね

気長にお待ちします
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

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

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

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

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

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

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

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

○その他
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 (ミラー)

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

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

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