Ryzen マルチスレッド処理
■Ryzen(マルチスレッド)の概要

Ryzenには1つのCPUコアで2つのスレッドを動作させるSMT(Simultaneous MultiThreading)と言う仕組みがあります。
また、4つのCPUコアを一つのパッケージとしたCCX(Core Compulex)という構成になっています。
このCCXを2つ搭載することでRyzen 1800Xは8コア16スレッドとして動作します。
【参考記事 PC Watch】 AMD「Ryzen 7」の半導体チップの姿
論理プロセッサ | タスクマネージャ上のCPU0とかCPU1のこと。 |
コア | CPUコアとか物理プロセッサと呼ばれる部分。SMTの場合、一つのコアに2つの論理プロセッサがあります。 |
CCX | 4コアを一つのパッケージとしたもの。 |
■テスト方法
AMV2 MT ビデオコーデックを4スレッドでエンコード、およびデコードするように設定し、処理時間(FPS)をCPU(論理プロセッサ)の割り当てを変えながら計測していきます。
論理プロセッサの割り当てについてはCPUマスクと表記し16進数で示します。
■結果
CPU マスク | Encode FPS | Decode FPS |
0x000F | 1402 | 1497 |
0x0055 | 1880 | 1866 |
0x00FF | 1898 | 1861 |
0x0303 | 1230 | 1456 |
0x0505 | 1597 | 1849 |
0xFFFF | 1611 | 1847 |
■考察
最もいい結果となったのは0x0055と0x00FFです。0x0055については4スレッド分の処理を行う場合の理想的な割り当てなので、納得です。
また、0x00FFでもほぼ同等の性能を発揮したのでこのテストにおいてはOSによる自動割り当ても十分優秀と言えます。
一方0x000Fは2コア分のリソースしか使えないところに4スレッド分の処理を詰め込むためパフォーマンスが低下しています。0x0055と比べエンコードで約25%減、デコードで約20%減。
そして、Ryzenを使う上で気になるのが後半の3パターンです。
CCXをまたがって処理すると(CCXをまたがらない場合に比べ)エンコードで約15%減、デコード処理では著しいパフォーマンスの低下は見られませんでした。
0x0303はCCXをまたがり且つ2コア分のリソースしか使えないため最悪の結果となり、0x0055と比べエンコード処理は約35%減となっています。
以上より、CCXをまたがってマルチスレッド処理を行う場合、パフォーマンスが低下するプログラムと、CCXをまたがっても低下しないプログラムがあることが解ります。
0xFFFFは既定の動作なのでRyzenを普通に使っているとマルチスレッドで処理するプログラムの場合にCCXをまたがって10%程度パフォーマンスが低下する場合があるかもしれません。
【参考記事 PC Watch】 Windows 10はAMD Ryzenの論理コアを正しく認識できず、性能が下がる?
- 関連記事
-
- Ryzen 1800X 、 Core-i7 7700K 可逆圧縮ベンチマーク
- Ryzen マルチスレッド処理
trackback
コメントの投稿
承認待ちコメント
Re: WMPででコードできなくなった
動作条件を満たした正常なPCを用意してください。
OSに関するトラブルはOSのメーカーへお問い合わせください。
承認待ちコメント
Re: 質問へ回答いただきありがとうございました。
これを期にAMV2MTとアマレコTVの使用を止めることにしました。どうもお世話になりました。
私が言うのもなんだけど、AMV2MTとか古いソフトウエアは新しいOSやPCで使う価値がないと思うので、賢明な判断だと思います。
自力でやりくりできる人は使えばいいと思うけど、無理な人はあきらめが肝心です。