概要
AMD Ryzenの一部プロセッサーにおけるCCX跨ぎと呼ばれる減少によって引き起こされる性能低下とその対策。 VRChatに限った話ではありません。
CCX跨ぎとは
Zen世代以降のプロセッサーは、今までのBulldozer世代までやIntelのCore iシリーズ(少なくともNehalem世代からAlderLake世代まで)とは違い、大きな一つのCPUダイで完結するような設計ではなく、小さな複数のCPUダイを並列に並べ、コア数をスケーリングすることができる設計がされています。(コントローラーなどは除く) Zen, Zen+, Zen2までは1ダイ(CCD)あたり4コアまで、Zen3からは1CCDあたり8コアまでは一つのコアで完結できますが、それ以上のコア数は2つ以上のCCDを組み合わせて実現されています。 例としてはRyzen 7 1800XではZen世代ですが8Core 16Threadを実現しており、2つのCCDを使用しています。
原則としてAMDもIntelもダイ内で完結するようなコア間通信は高速ですが、ダイを跨ぐ通信はコア間のそれに比べ遅くなってしまいます。 それはRyzenでも例外ではありません。
ただし、これはマルチスレッドで動くソフトウェアで発生する事象であり、シングルスレッドで動くようなプログラムでは原理上発生しえません。 VRChatはマルチスレッドで動くプログラムなのでこの減少が発生する可能性があります。(運悪く一つのCCDで完結しないようなコアの割当がされた場合は)
ということで原則、Zen ~ Zen2では4コア、Zen3以降では8コアより多いコア数を持つプロセッサーではこの減少が発生する可能性があります。
対策
該当コアを使用しないように割り振る。
のようなツールを使う。
対象プロセッサー
デスクトップ向けRyzenプロセッサのみ。モバイル向けや非Ryzen APU(Aシリーズ)は流石に覚えていません。
Zen
- Ryzen 7 1800X
- Ryzen 7 PRO 1700X
- Ryzen 7 1700X
- Ryzen 7 PRO 1700
- Ryzen 7 1700
- Ryzen 5 1600X
- Ryzen 5 PRO 1600
- Ryzen 5 1600
Zen+
- Ryzen 7 PRO 2700X
- Ryzen 7 2700X
- Ryzen 7 PRO 2700
- Ryzen 7 2700
- Ryzen 5 2600X
- Ryzen 5 PRO 2600
- Ryzen 5 2600
- Ryzen 5 1600AF
Zen2
-
Ryzen 9 3950X
-
Ryzen 9 3900XT
-
Ryzen 9 3900X
-
Ryzen 9 3900
-
Ryzen 7 3800XT
-
Ryzen 7 3800X
-
Ryzen 7 3700X
-
Ryzen 5 3600XT
-
Ryzen 5 3600X
-
Ryzen 5 3600
-
Ryzen 5 3500X
-
Ryzen 5 3500
-
Ryzen 3 3100 (これは4Core 8Threadだが、例外的に2CCD構成)
-
Ryzen 7 PRO 4750G
-
Ryzen 5 PRO 4650G
Zen3
- Ryzen 9 5950X
- Ryzen 9 5900X
- Ryzen 9 5900
ThreadRipper / EPIC
例外なくすべてのプロセッサ。 もともとこれらのプロセッサ向けに開発された技術なので。
用語
どちらかというとUnityやVRChatの知識ではなく自作PCや半導体の知識が要求される話なので、書いておきます。
| 用語 | 補足 |
|---|---|
| AMD | 赤色のCPU/GPUメーカー。今はRyzenシリーズを売ってます。 |
| Intel | 青色のCPU/GPUメーカー。今はCore iシリーズを売ってます。 |
| Zen | 初代Ryzenのアーキテクチャ名 |
| Zen+ | 第二世代Ryzenのアーキテクチャ名 |
| Zen2 | 第三世代Ryzenのアーキテクチャ名 |
| Zen3 | 第四世代Ryzenのアーキテクチャ名 |
| Nehalem | 初代Core iのコードネーム |
| AlderLake | 第十二世代Core iのコードネーム |
| ダイ | 半導体でできたトランジスタの塊。CPUの本体と言える。 |
| CCD | Ryzenの1つのCPUダイのこと。AMDの呼び方。 |
| CCX | RyzenのCCD同士を繋ぐバス |
| InfinityFabric | 上と同じ |
| バス | 通信するための経路 |
| CCX跨ぎ | CCD同士の通信、またそれによって引き起こされる遅延。 |