Alderlake i9 12900K のE-coreの性能
Alderlakeの特徴の一つは、P-coreとE-coreというふたつのコアが混載されていること。
そこで実際のところ、E-coreの性能はどうなのだろうということで、今回そのあたりを中心にチェックしてみた。
12900Kについては、下記4パターンをチェックしてみた。
1. 8P+8E
普通に12900Kを使う場合の性能。
2. 8P+0E
BIOSでE-coreを無効にし、P-coreだけだったらどういう性能になるかをチェック。8P+8E との差で、どのくらいE-coreが効いているかわかると思う。

3. 6P+8E
P-core 2個の面積にだいたいE-coreが8個分入るらしい。となると気になってくるのが、じゃあ全部P-coreじゃダメだったの?という疑問。
本当は10P+0Eと8P+8Eの比較をしたいのだけど、それはできないので、BIOSからP-coreを6つにして、6P+8Eと8P+0Eを比べることで、ちょっと比率は違うけど2P⇔8Eの交換の効果を比較して、E-coreの混載が実際のところどうなの? というのを見てみたい。

4. 0P+8E
E-coreの素の性能を確認。8P+0Eや、ほかのCPUと比べることで、E-coreだけのCPUがあったらどんなものというのもわかりそう。
ただし、BIOSからP-coreは0にできないらしいので、P-coreを1つにしたあと、実行時にプロセスのアフィニティをE-coreのみと指定することで疑似的な0P+8Eとしてテストしている。この場合、バックグラウンドタスクをP-coreで処理できるので、ややスコアが上がりやすいので注意。また、Cinebenchについては実行時に毎回アフィニティを勝手に全コアに再設定してしまうので、毎回手動で設定しなおす必要があった。そのため、Cinebench R23は自動で10分継続するモードが使えず、手動で5回回した平均としていて、他と計測方法がやや異なるので注意。

検証環境
まずIntel環境から。
次にAMD環境。
使用ソフト
Cinebench R15, R20, R23
7zip 19.00
Aviutl 1.00 / x264guiEx 2.68 / x265guiEx 3.102 / svtav1guiEx 0.07
x264 rev3075 x64
x265 3.5+13 x64
y-cruncher 0.7.8 9507
Cinebench R23, R20, R15
Cinebench R23。マルチスレッドのほうは10分実行して平均をとるモードを使用している。
E-core(0P+8E)のマルチスレッド性能はP-core(8P+0E)の4割程度。Rocketlakeなどと比べても低く、やはり性能は決して高くはないが、面積や電力も考慮すると確かに効率は良さそう。
6P+8Eと8P+0Eを比べると、6P+8Eのスコアのほうが高く、Cinebenchに関しては2P⇔8Eの交換は効果を発揮しているといえる。
E-coreのシングルスレッド性能はP-coreの約半分。デスクトップPCとしてこれだけを使うのはやや厳しめだが、動作周波数の差も考えるとそれほど悪くないといえそう。
同じ物理8コアだが、P-coreと比べるとE-coreのシングル→マルチの倍率は低い。これはE-coreの計算リソースがやはり少なく、HTTに対応していないことが原因なのだと思う。

Cinebench R20。だいたいの傾向はR23と同じ。

Cinebench R15。
データサイズが小さいせいか、R20/R23よりはE-coreのスコアが相対的によさそう。

7zip 19.00
7zipではE-core(0P+8E)はP-core(8P+0E)の約半分の性能。面白いのはdecompressでは8P+8Eがそれぞれの足し算になる一方で、compressのほうは上乗せがほとんどない点。
6P+8Eと8P+0Eを比べると、decmpressについては6P+8Eのスコアのほうが高く、2P⇔8Eの交換は効果を発揮している。compressのほうはどちらでもよさそう。compressはコア性能よりメモリ帯域かキャッシュ量かなにかで性能が決まっているのだろうか?

y-cruncher 0.7.8 9507
SIMD-fpを酷使しつつメモリ帯域も重要とされるy-cruncher。この表だけ単位が計算時間なので値が小さいほど速い。
ここではE-core(0P+8E)はP-core(8P+0E)の約45%の性能。6P+8Eと8P+0Eを比べるとほぼ差がない。8P+8Eともほぼ差がないので、CPUコアの性能ではなく、メモリ帯域かキャッシュ量など別の要因で律速していそう。

x264
さて、ここからが本題のx264。グラフがとても長いのは許してほしい。
Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x264guiExで出力。
E-core(0P+8E)はP-core(8P+0E)の45%~50%の性能で、そこそこ頑張っている感じ。6P+8Eと8P+0Eを比べると、6P+8Eのスコアが高く、2P⇔8Eの交換は効果を発揮している。

x265
次にx265 8bit。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x265guiExで出力。
E-core(0P+8E)はveryslowなどではP-core(8P+0E)の50%程度の性能だが、veryfastなどでは40%弱で、速いプリセットのほうが苦手となっている。
6P+8Eと8P+0Eを比べた場合でもveryfastだけは8P+0Eのほうが速くなっている。ただ、その他のプリセットでは6P+8Eのほうが速く、スレッド並列の効く重いプリセットではE-coreがあったほうがよいという感じになっている。

x265 10bit。これも8bitと同様の傾向。

SVT-AV1
svt-av1(8bit)。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、svtAV1guiExで出力。
E-core(0P+8E)はP-core(8P+0E)の35%前後と、これまでで比べた中で一番P-coreとE-coreの差がついている。E-coreはsvt-av1の演算を苦手としているのかもしれない。
そのせいか、6P+8Eと8P+0Eの差も小さく、6P+8Eがわずかに優位という感じ。

最後にsvt-av1(10bit)。傾向は8bitと変わらず。

終わりに
というわけでE-coreの性能というか特性を見てみるため、12900Kをいろんな構成にして性能を比較してみた。
E-core(0P+8E)のマルチスレッド性能は、対象によってさまざまだが、P-core(8P+0E)の3割~5割程度となっていた。(CinebenchはE-coreが比較的得意そう)
E-coreの性能はやはり限定的で、さすがにE-coreだけのCPUとかがあったとしたら、やや性能低くて使いにくそう。
ただ、そこそこの性能はあるし、面積(≒コスト)と電力を考慮すると効率は良いものとなっているのは間違いない。8P+0Eと6P+8Eの比較で2P⇔8Eの交換をチェックすると6P+8Eのほうが性能が高い場面が多かった。もちろんP/Eの数のバランスは考慮する必要があるが、多数のスレッドが同時に走る状況では、少ないP-coreをぶん回すより、多くのE-coreを使って効率よく処理させるほうが、CPU全体のパフォーマンス向上につながるというAlderlakeの設計が実際にも確認できたと思う。
6P+8Eというとモバイル向けAlderlakeの最大構成で、特に電力の制限の厳しいモバイルではシングルスレッドもマルチスレッドにも強いかなり強力なCPUとなりそう。また、今後のCPUではE-coreが増量されていくと噂されていて、P/Eのバランスはどのくらいがいいのかというのも(アプリによって異なるだろうけど)面白そう。
あと、個人的には2P+8Eの省電力CPUとかがあれば小型PCや録画鯖向けに面白そうな気がするが、そういうのはデスクトップ向けには来ないみたい…。NUCとかにはモバイル向けの2P+8Eの石が来ることもあるかも?
そこで実際のところ、E-coreの性能はどうなのだろうということで、今回そのあたりを中心にチェックしてみた。
12900Kについては、下記4パターンをチェックしてみた。
1. 8P+8E
普通に12900Kを使う場合の性能。
2. 8P+0E
BIOSでE-coreを無効にし、P-coreだけだったらどういう性能になるかをチェック。8P+8E との差で、どのくらいE-coreが効いているかわかると思う。

3. 6P+8E
P-core 2個の面積にだいたいE-coreが8個分入るらしい。となると気になってくるのが、じゃあ全部P-coreじゃダメだったの?という疑問。
本当は10P+0Eと8P+8Eの比較をしたいのだけど、それはできないので、BIOSからP-coreを6つにして、6P+8Eと8P+0Eを比べることで、ちょっと比率は違うけど2P⇔8Eの交換の効果を比較して、E-coreの混載が実際のところどうなの? というのを見てみたい。

4. 0P+8E
E-coreの素の性能を確認。8P+0Eや、ほかのCPUと比べることで、E-coreだけのCPUがあったらどんなものというのもわかりそう。
ただし、BIOSからP-coreは0にできないらしいので、P-coreを1つにしたあと、実行時にプロセスのアフィニティをE-coreのみと指定することで疑似的な0P+8Eとしてテストしている。この場合、バックグラウンドタスクをP-coreで処理できるので、ややスコアが上がりやすいので注意。また、Cinebenchについては実行時に毎回アフィニティを勝手に全コアに再設定してしまうので、毎回手動で設定しなおす必要があった。そのため、Cinebench R23は自動で10分継続するモードが使えず、手動で5回回した平均としていて、他と計測方法がやや異なるので注意。

検証環境
まずIntel環境から。
CPU | i9 12900K | i7 11700K | |||
---|---|---|---|---|---|
8P+8E | 8P+0E | 6P+8E | 0P+8E | 定格 | |
コア数 | 8P+8E 24T | 8P+0E 16T | 6P+8E 20T | 0P+8E 8T | 8C/16T |
L2 Cache | 14MB | 10MB | 11.5MB | 4MB | 4MB |
L3 Cache | 30MB | 16MB | |||
Boost | 5.2GHz | 4.9GHz | |||
AVX512 | Auto | ||||
Core Voltage | Auto | Auto | |||
PL1/PPT | 241W | 125W | |||
PL2 | 241W | 251W | |||
tau | 56s | 56s | |||
IccMax | Unlimited | Auto | |||
Uncore | 4700MHz | 4100MHz | |||
メモリ | DDR4-3600 2ch | DDR4-3600 2ch | |||
メモリ容量 | 8GBx4 | 16GBx2 | |||
タイミング | 16-19-19-39-1 | 18-22-22-45-2 | |||
メモリ FCLK | Gear1 | Gear1 | |||
マザー | MSI MAG Z690 TOMAHAWK WIFI DDR4 | Gigabyte Z590I AORUS ULTRA (F5a) | |||
電源 | Seasonic FOCUS PX-750 | Seasonic SS-620GB | |||
ケース | Thermaltake Core V71 | Phanteks Evolv Shift X | |||
OS | Windows 11 | Windows 11 |
次にAMD環境。
CPU | R7 5800X (偽) | R7 3700X |
---|---|---|
定格 | 定格 | |
コア数 | 8C/16T | 8C/16T |
L2 Cache | 4MB | 4MB |
L3 Cache | 32MB | 32MB |
Boost | 5.0GHz | 4.4GHz |
OC | Default | Default |
Core Voltage | Auto | Auto |
PPT | 142W | 88W |
TDC/IccMax | 95A | 60A |
EDC | 140A | 90A |
Uncore | 1800MHz | 1800MHz |
メモリ | DDR4-3600 2ch | DDR4-3600 2ch |
メモリ容量 | 16GBx2 | 8GBx2 |
タイミング | 19-20-20-40-1 | 20-23-23-45-1 |
メモリ FCLK | 1:01 | 1:01 |
マザー | Gigabyte B550 AORUS Master | Asrock X570 Steel Legend |
電源 | Seasonic FOCUS PX-750 | ENERMAX EPM600AWT |
ケース | Fractal Design Define 7 Compact LightTG | Antec P100 |
OS | Windows 11 | Windows 11 |
使用ソフト
Cinebench R15, R20, R23
7zip 19.00
Aviutl 1.00 / x264guiEx 2.68 / x265guiEx 3.102 / svtav1guiEx 0.07
x264 rev3075 x64
x265 3.5+13 x64
y-cruncher 0.7.8 9507
Cinebench R23, R20, R15
Cinebench R23。マルチスレッドのほうは10分実行して平均をとるモードを使用している。
E-core(0P+8E)のマルチスレッド性能はP-core(8P+0E)の4割程度。Rocketlakeなどと比べても低く、やはり性能は決して高くはないが、面積や電力も考慮すると確かに効率は良さそう。
6P+8Eと8P+0Eを比べると、6P+8Eのスコアのほうが高く、Cinebenchに関しては2P⇔8Eの交換は効果を発揮しているといえる。
E-coreのシングルスレッド性能はP-coreの約半分。デスクトップPCとしてこれだけを使うのはやや厳しめだが、動作周波数の差も考えるとそれほど悪くないといえそう。
同じ物理8コアだが、P-coreと比べるとE-coreのシングル→マルチの倍率は低い。これはE-coreの計算リソースがやはり少なく、HTTに対応していないことが原因なのだと思う。

Cinebench R20。だいたいの傾向はR23と同じ。

Cinebench R15。
データサイズが小さいせいか、R20/R23よりはE-coreのスコアが相対的によさそう。

7zip 19.00
7zipではE-core(0P+8E)はP-core(8P+0E)の約半分の性能。面白いのはdecompressでは8P+8Eがそれぞれの足し算になる一方で、compressのほうは上乗せがほとんどない点。
6P+8Eと8P+0Eを比べると、decmpressについては6P+8Eのスコアのほうが高く、2P⇔8Eの交換は効果を発揮している。compressのほうはどちらでもよさそう。compressはコア性能よりメモリ帯域かキャッシュ量かなにかで性能が決まっているのだろうか?

y-cruncher 0.7.8 9507
SIMD-fpを酷使しつつメモリ帯域も重要とされるy-cruncher。この表だけ単位が計算時間なので値が小さいほど速い。
ここではE-core(0P+8E)はP-core(8P+0E)の約45%の性能。6P+8Eと8P+0Eを比べるとほぼ差がない。8P+8Eともほぼ差がないので、CPUコアの性能ではなく、メモリ帯域かキャッシュ量など別の要因で律速していそう。

x264
さて、ここからが本題のx264。グラフがとても長いのは許してほしい。
Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x264guiExで出力。
E-core(0P+8E)はP-core(8P+0E)の45%~50%の性能で、そこそこ頑張っている感じ。6P+8Eと8P+0Eを比べると、6P+8Eのスコアが高く、2P⇔8Eの交換は効果を発揮している。

x265
次にx265 8bit。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x265guiExで出力。
E-core(0P+8E)はveryslowなどではP-core(8P+0E)の50%程度の性能だが、veryfastなどでは40%弱で、速いプリセットのほうが苦手となっている。
6P+8Eと8P+0Eを比べた場合でもveryfastだけは8P+0Eのほうが速くなっている。ただ、その他のプリセットでは6P+8Eのほうが速く、スレッド並列の効く重いプリセットではE-coreがあったほうがよいという感じになっている。

x265 10bit。これも8bitと同様の傾向。

SVT-AV1
svt-av1(8bit)。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、svtAV1guiExで出力。
E-core(0P+8E)はP-core(8P+0E)の35%前後と、これまでで比べた中で一番P-coreとE-coreの差がついている。E-coreはsvt-av1の演算を苦手としているのかもしれない。
そのせいか、6P+8Eと8P+0Eの差も小さく、6P+8Eがわずかに優位という感じ。

最後にsvt-av1(10bit)。傾向は8bitと変わらず。

終わりに
というわけでE-coreの性能というか特性を見てみるため、12900Kをいろんな構成にして性能を比較してみた。
E-core(0P+8E)のマルチスレッド性能は、対象によってさまざまだが、P-core(8P+0E)の3割~5割程度となっていた。(CinebenchはE-coreが比較的得意そう)
E-coreの性能はやはり限定的で、さすがにE-coreだけのCPUとかがあったとしたら、やや性能低くて使いにくそう。
ただ、そこそこの性能はあるし、面積(≒コスト)と電力を考慮すると効率は良いものとなっているのは間違いない。8P+0Eと6P+8Eの比較で2P⇔8Eの交換をチェックすると6P+8Eのほうが性能が高い場面が多かった。もちろんP/Eの数のバランスは考慮する必要があるが、多数のスレッドが同時に走る状況では、少ないP-coreをぶん回すより、多くのE-coreを使って効率よく処理させるほうが、CPU全体のパフォーマンス向上につながるというAlderlakeの設計が実際にも確認できたと思う。
6P+8Eというとモバイル向けAlderlakeの最大構成で、特に電力の制限の厳しいモバイルではシングルスレッドもマルチスレッドにも強いかなり強力なCPUとなりそう。また、今後のCPUではE-coreが増量されていくと噂されていて、P/Eのバランスはどのくらいがいいのかというのも(アプリによって異なるだろうけど)面白そう。
あと、個人的には2P+8Eの省電力CPUとかがあれば小型PCや録画鯖向けに面白そうな気がするが、そういうのはデスクトップ向けには来ないみたい…。NUCとかにはモバイル向けの2P+8Eの石が来ることもあるかも?
スポンサーサイト