MSI Z690 TOMAHAWK WIFI DDR4の新BIOS(7D32v11)メモ
MSI Z690 TOMAHAWK WIFI DDR4 に新BIOS(7D32v11)が来ている。

試した限りでは、E-coreを無効化することで、P-coreのAVX512を有効にできるようになっているっぽい。
ただ、問題があって、デフォルト設定だと起動できるのに、デフォルトからいろいろ設定変更をしていくと起動できなくなる状態になってしまった。(そもそもBIOSが起動しない)
仕方ないのでCMOSクリアしてデフォルトに戻せば再び問題なく起動した。
なにが悪いのかなあと思って、ひとつひとつ設定を適用してどこが原因か細かく見ていくと、[ Core Voltage Mode ] の [ Advanced Offset Mode ] が原因っぽい。別に電圧が低すぎるとかではなさそうで、例えば -0.01V とかの明らかに問題なさそうな設定でもおんなじだった。
これまでは、Advanced Offset Modeを使ってかなり電圧を下げることで発熱と消費電力を下げていた。私が下手なだけかもだが、Adaptive + Offsetではやはり調整が難しく、十分に電圧下げができないため、Advanced Offset Modeを使えないのはちょっと厳しい。
というわけで、AVX512のテストは棚上げして、もとの 7D32v10 に戻すことにした。BIOSを戻したあとは、再びAdvanced Offset Modeを使っても問題なく動作しているので、やはり 7D32v11 のAdvanced Offset Modeになんらかの問題があるということになりそう。
というわけで、Advanced Offset Modeを使っていなければ問題なさそうだが、使いたい場合には 7D32v11 はご注意を。
今回思ったのはやっぱりCMOSクリアがケース開けて端子探してっていうのが面倒なので、ボタンがバックパネルにあったほうが便利だなあということ。でもCMOSクリアボタンは製品の差別化のためかハイエンドマザーにしかないことが多くて、CMOSクリアボタンのためだけにハイエンドマザー買うというのは無理があるので、だいたい毎回ケース開けてる…。

試した限りでは、E-coreを無効化することで、P-coreのAVX512を有効にできるようになっているっぽい。
ただ、問題があって、デフォルト設定だと起動できるのに、デフォルトからいろいろ設定変更をしていくと起動できなくなる状態になってしまった。(そもそもBIOSが起動しない)
仕方ないのでCMOSクリアしてデフォルトに戻せば再び問題なく起動した。
なにが悪いのかなあと思って、ひとつひとつ設定を適用してどこが原因か細かく見ていくと、[ Core Voltage Mode ] の [ Advanced Offset Mode ] が原因っぽい。別に電圧が低すぎるとかではなさそうで、例えば -0.01V とかの明らかに問題なさそうな設定でもおんなじだった。
これまでは、Advanced Offset Modeを使ってかなり電圧を下げることで発熱と消費電力を下げていた。私が下手なだけかもだが、Adaptive + Offsetではやはり調整が難しく、十分に電圧下げができないため、Advanced Offset Modeを使えないのはちょっと厳しい。
というわけで、AVX512のテストは棚上げして、もとの 7D32v10 に戻すことにした。BIOSを戻したあとは、再びAdvanced Offset Modeを使っても問題なく動作しているので、やはり 7D32v11 のAdvanced Offset Modeになんらかの問題があるということになりそう。
というわけで、Advanced Offset Modeを使っていなければ問題なさそうだが、使いたい場合には 7D32v11 はご注意を。
今回思ったのはやっぱりCMOSクリアがケース開けて端子探してっていうのが面倒なので、ボタンがバックパネルにあったほうが便利だなあということ。でもCMOSクリアボタンは製品の差別化のためかハイエンドマザーにしかないことが多くて、CMOSクリアボタンのためだけにハイエンドマザー買うというのは無理があるので、だいたい毎回ケース開けてる…。
10GbEの上限を目指す [ ADT-Link R42SF: M.2 → PCIe3x4 変換ライザーカード ]
ここ最近、録画PCのHDDをSSDにしたりして静音化を行ってきた。このPCは録画PCとしてだけでなく、ネットワークドライブにして簡易NASとしても使用している。
通常の1GbEでネットワーク内の他のPCからアクセスしているほか、Intel X550-T2による10GbEカードを追加していて、i9 12900KのPCと5950XのPCに接続している。
i9 12900KのPCにも10GbEカードを追加して接続しているが、これが10GbEをフルに活用しきれていなかったので、これを改善したという話。
アクセス側のi9 12900Kの構成はこんな感じで、ASUS XG-C100Cという10GbEカードを使用している。
どんな感じの速度だったかというとこんな感じで、Corsair Force MP510 1.92TB x2のディスクにアクセスして830MB/sが最大と、10GbEの上限1250MB/sからはかなり落ちてしまっている。まあ、このぐらいの速度でも問題はないけど、ちょっともったいない。

ネットワークを介さず、直接測定するとこんな感じなので、NVMe SSDなので速度は十分のはず。

なんで速度が落ちてしまっているかというと、本来PCIe3x4接続のASUS XG-C100CをPCIe3x1スロットにさしてしまっているから。
Z690 TOMAHAWK WIFI DDR4の拡張スロットはこんな感じで、一番下のスロットにASUS XG-C100Cをつけて使っていた。
PCIe_1: RTX2070
PCIe_2: 空き
PCIe_3: GTX1060
PCIe_4: ASUS XG-C100C

ところが、Z690 TOMAHAWK WIFI DDR4の拡張スロットのリンク幅は下記のようになっていて、一番下のPCIe_4はPCIe3x1で、やはり10GbEには帯域が足りなくなってしまっていた。

Z690マザーは全体的にPCIe帯域をM.2に振り分ける傾向が強く、PCIeスロットの帯域が狭かったり、そもそもPCIeスロットが少なかったりする。
10GbEをフル活用するには、とにかくPCIe3x4接続をしないといけない。GTX1060と入れ替えることも考えたが、今回はM.2からPCIe3x4を引き出すケーブルを使って、余っているM.2スロットを活用することにした。
使用した変換(ライザー)ケーブルはADT-Linkというところのこちらの15cmのもの。中国発送で1週間ちょっとで到着した。
全長は15cm。(ほかに10cm版と30cm版があるらしい)

M.2側にこちらの端子をつなぐ。

こちらがPCIe3x4側。補助電源(?)をつなぐ端子がある。

このPCIe3x4側にASUS XG-C100Cをつなげばいいのだけど、そのままではこのケーブルを接続できるスペースがない(マザーにぶつかるので)。
そこで、まずもともとのブラケットを取り外し、使っていなかった1GbEx4のLANカードの適当なブラケットにひっくり返して180°反対向きに取り付けた。このブラケットにしたのは、穴が大きく空いていて、ねじ穴に合わせて自由に位置を調整できるため。
本来のものではないので、ブラケット側はすかすかだが、まあ気にしない。

固定は長めのねじとウォッシャー、あとは結束バンドを使用した。やや無理やり感はあるけど、ぐらつくことなくしっかり固定できたのでよしとした。裏から見るとこんな感じ。

そして、これをPCに固定。M.2_2からケーブルを伸ばし、ちょうどPCIe_2の位置の上に設置。ケーブル長は15cmでぎりぎりなので、10cmを購入していたらアウトだった…。

変換ケーブルはかなり固めで取り回しは悪い。左右のGPUとの間隔は1スロット分なのでぎりぎり。油断すると右側のGPUファンと接触してしまうので注意する必要があった。

なお、このケーブルには給電用の補助電源端子が追加であるのだけど、今回はこの給電用のケーブルは使用しなくても問題なかった。もっと電力を食うGPUとかを付けたら必要になるのかもしれない。その場合には、1スロット分の厚みは間違いなく超えるので注意が必要。
HWiNFOで接続状態を確認すると、たしかにPCIe3x4で接続出てきていて、ひとまずうまくいったみたい。

この状態で、先ほどと同じようにベンチマークをするとこんな感じ。Corsair Force MP510 1.92TB x2のディスクにアクセスして1200MB/s近く出ていて、10GbEの上限近い速度が出るようになった。

参考までにRecieve Side Scaling(受信側スケーリング、RSS)のon/offと、Jumbo Packetの1.5K/9Kをそれぞれ試した時の速度はこんな感じ。微妙な差ではあるが、やはりセオリー通りJumbo Packetは可能なら9Kに設定したほうがよいようだ。
Sandisk SDSSDH3 4T00 4TBx3のほうにアクセスするとこんな感じで、こちらも10GbEの上限近く出ている。SATA SSDでも3枚束ねれば10GbEをフル活用できるようだ。

参考までに2.5GbEでアクセスした場合の速度も測った。アクセス側のPCは下記構成で、オンボードの2.5GbE (Realtek RTL8125) を使用した。
まずはCorsair Force MP510 1.92TB x2のディスクから。上限は300MB/sぐらいのようだ。

次にSandisk SDSSDH3 4T00 4TBx3のほう。

というわけで、無事10GbEの上限近い速度を引き出すことができ、性能をフル活用することができるようになった。もちろんPCIe3x4以上のスロットが空いていれば、そこにさせばよいわけだが、空いていない場合は今回のようなやや無茶なことをすればM2スロットに来ているPCIe3x4を活用しても性能を引き出せることがわかった。
ライザーケーブルに関しては、こうしたライザーケーブルは仕様や品質によってはデバイスを認識しなかったり安定動作しない場合もあるみたい。今回のケーブルはamazonの商品説明の日本語が怪しい感じだったので大丈夫かな? とは思いつつ、まあ値段もそんなにしないしダメもとで買ってみたのだけど、今のところ問題なく安定して動作しているのでよいケーブルだと思う。
ただ、ライザーケーブルに問題がなくても、M.2スロットの位置によっては物理的にうまくいかないかもしれない。例えば、ライザーのケーブルが短すぎたり長すぎたり、そもそもカードを裏返しにうまく適当なブラケットに取り付けて接続できるかなど、やはりうまくいくかは実際にやってみないと分からない部分が多いとは思う。
本来はマザーボードを選ぶときにPCIeスロットなどの仕様をしっかり確認しておけば、こんな無茶をしなくても済むと思うが、今回のZ690マザーは発売初日にとりあえずあるものを買った感じなのでしゃーなし。
ライザーケーブルでM.2を汎用のPCIe3x4に転用できるということで、実験としては成功したし、面白かった。
CPU | Core i5 7500 |
---|---|
コア数 | 4C/4T |
最大クロック | 3.6GHz |
冷却 | GELID SlimHero |
マザー | Asrock H270M Pro4 |
メモリ | DDR4-2400 8GBx4 |
SSD1 | SanDisk SDSSDXPS480G |
SSD2 | Corsair MP510 1.92TB x2 |
SSD3 | Sandisk SDSSDH3 4T00 4TBx3 |
LAN | Intel X550-T2 |
OS | Win 10 x64 Pro |
ケース | InWin IW-CE685/300P |
電源 | ケース付属 |
通常の1GbEでネットワーク内の他のPCからアクセスしているほか、Intel X550-T2による10GbEカードを追加していて、i9 12900KのPCと5950XのPCに接続している。
i9 12900KのPCにも10GbEカードを追加して接続しているが、これが10GbEをフルに活用しきれていなかったので、これを改善したという話。
アクセス側のi9 12900Kの構成はこんな感じで、ASUS XG-C100Cという10GbEカードを使用している。
CPU | Core i9 12900K |
---|---|
コア数 | 8P+8E/24T |
最大クロック | 5.2GHz |
冷却 | Corsair iCUE H150i RGB Pro |
マザー | MSI MAG Z690 TOMAHAWK WIFI DDR4 |
メモリ | DDR4-3600 8GBx4 |
SSD1 | Plextor M10PGN 1TB |
SSD2 | Plextor M8PeGN 1TB |
LAN | ASUS XG-C100C |
OS | Win 11 x64 Pro |
ケース | Thermaltake Core V71 |
電源 | Seasonic FOCUS PX-750 |
どんな感じの速度だったかというとこんな感じで、Corsair Force MP510 1.92TB x2のディスクにアクセスして830MB/sが最大と、10GbEの上限1250MB/sからはかなり落ちてしまっている。まあ、このぐらいの速度でも問題はないけど、ちょっともったいない。

ネットワークを介さず、直接測定するとこんな感じなので、NVMe SSDなので速度は十分のはず。

なんで速度が落ちてしまっているかというと、本来PCIe3x4接続のASUS XG-C100CをPCIe3x1スロットにさしてしまっているから。
Z690 TOMAHAWK WIFI DDR4の拡張スロットはこんな感じで、一番下のスロットにASUS XG-C100Cをつけて使っていた。
PCIe_1: RTX2070
PCIe_2: 空き
PCIe_3: GTX1060
PCIe_4: ASUS XG-C100C

ところが、Z690 TOMAHAWK WIFI DDR4の拡張スロットのリンク幅は下記のようになっていて、一番下のPCIe_4はPCIe3x1で、やはり10GbEには帯域が足りなくなってしまっていた。

Z690マザーは全体的にPCIe帯域をM.2に振り分ける傾向が強く、PCIeスロットの帯域が狭かったり、そもそもPCIeスロットが少なかったりする。
10GbEをフル活用するには、とにかくPCIe3x4接続をしないといけない。GTX1060と入れ替えることも考えたが、今回はM.2からPCIe3x4を引き出すケーブルを使って、余っているM.2スロットを活用することにした。
使用した変換(ライザー)ケーブルはADT-Linkというところのこちらの15cmのもの。中国発送で1週間ちょっとで到着した。
全長は15cm。(ほかに10cm版と30cm版があるらしい)

M.2側にこちらの端子をつなぐ。

こちらがPCIe3x4側。補助電源(?)をつなぐ端子がある。

このPCIe3x4側にASUS XG-C100Cをつなげばいいのだけど、そのままではこのケーブルを接続できるスペースがない(マザーにぶつかるので)。
そこで、まずもともとのブラケットを取り外し、使っていなかった1GbEx4のLANカードの適当なブラケットにひっくり返して180°反対向きに取り付けた。このブラケットにしたのは、穴が大きく空いていて、ねじ穴に合わせて自由に位置を調整できるため。
本来のものではないので、ブラケット側はすかすかだが、まあ気にしない。

固定は長めのねじとウォッシャー、あとは結束バンドを使用した。やや無理やり感はあるけど、ぐらつくことなくしっかり固定できたのでよしとした。裏から見るとこんな感じ。

そして、これをPCに固定。M.2_2からケーブルを伸ばし、ちょうどPCIe_2の位置の上に設置。ケーブル長は15cmでぎりぎりなので、10cmを購入していたらアウトだった…。

変換ケーブルはかなり固めで取り回しは悪い。左右のGPUとの間隔は1スロット分なのでぎりぎり。油断すると右側のGPUファンと接触してしまうので注意する必要があった。

なお、このケーブルには給電用の補助電源端子が追加であるのだけど、今回はこの給電用のケーブルは使用しなくても問題なかった。もっと電力を食うGPUとかを付けたら必要になるのかもしれない。その場合には、1スロット分の厚みは間違いなく超えるので注意が必要。
HWiNFOで接続状態を確認すると、たしかにPCIe3x4で接続出てきていて、ひとまずうまくいったみたい。

この状態で、先ほどと同じようにベンチマークをするとこんな感じ。Corsair Force MP510 1.92TB x2のディスクにアクセスして1200MB/s近く出ていて、10GbEの上限近い速度が出るようになった。

参考までにRecieve Side Scaling(受信側スケーリング、RSS)のon/offと、Jumbo Packetの1.5K/9Kをそれぞれ試した時の速度はこんな感じ。微妙な差ではあるが、やはりセオリー通りJumbo Packetは可能なら9Kに設定したほうがよいようだ。
Jumbo Packet | |||
---|---|---|---|
1.5K | 9K | ||
RSS | on | ![]() | ![]() |
off | ![]() | ![]() |
Sandisk SDSSDH3 4T00 4TBx3のほうにアクセスするとこんな感じで、こちらも10GbEの上限近く出ている。SATA SSDでも3枚束ねれば10GbEをフル活用できるようだ。

参考までに2.5GbEでアクセスした場合の速度も測った。アクセス側のPCは下記構成で、オンボードの2.5GbE (Realtek RTL8125) を使用した。
CPU | R9 5950X |
---|---|
コア数 | 16C/32T |
最大クロック | 5.0GHz |
冷却 | Fractal Design Celsius+ S28 Prisma |
マザー | Gigabyte B550 AORUS Master |
メモリ | DDR4-3600 16GBx2 |
SSD1 | Plextor M9PeGN 1TB |
LAN | Realtek RTL8125 2.5GbE (オンボード) |
OS | Win 11 x64 Pro |
ケース | Fractal Design Define 7 Compact LightTG |
電源 | Seasonic FOCUS PX-750 |
まずはCorsair Force MP510 1.92TB x2のディスクから。上限は300MB/sぐらいのようだ。

次にSandisk SDSSDH3 4T00 4TBx3のほう。

というわけで、無事10GbEの上限近い速度を引き出すことができ、性能をフル活用することができるようになった。もちろんPCIe3x4以上のスロットが空いていれば、そこにさせばよいわけだが、空いていない場合は今回のようなやや無茶なことをすればM2スロットに来ているPCIe3x4を活用しても性能を引き出せることがわかった。
ライザーケーブルに関しては、こうしたライザーケーブルは仕様や品質によってはデバイスを認識しなかったり安定動作しない場合もあるみたい。今回のケーブルはamazonの商品説明の日本語が怪しい感じだったので大丈夫かな? とは思いつつ、まあ値段もそんなにしないしダメもとで買ってみたのだけど、今のところ問題なく安定して動作しているのでよいケーブルだと思う。
ただ、ライザーケーブルに問題がなくても、M.2スロットの位置によっては物理的にうまくいかないかもしれない。例えば、ライザーのケーブルが短すぎたり長すぎたり、そもそもカードを裏返しにうまく適当なブラケットに取り付けて接続できるかなど、やはりうまくいくかは実際にやってみないと分からない部分が多いとは思う。
本来はマザーボードを選ぶときにPCIeスロットなどの仕様をしっかり確認しておけば、こんな無茶をしなくても済むと思うが、今回のZ690マザーは発売初日にとりあえずあるものを買った感じなのでしゃーなし。
ライザーケーブルでM.2を汎用のPCIe3x4に転用できるということで、実験としては成功したし、面白かった。
2021年を振り返る (PC編)
2021年ももうすぐ終わりということで、今年さわった自作PC関係のパーツを振り返ってみる。
CPU
今年はCPUを3つも買って大変散財してしまった…。
まあ、今年の印象としてはやはり直近のAlderlakeが印象的で、デスクトップCPUでは押されまくっていたIntelが反撃にでた年になったと思う。
今年はまず1月に(なんとか)5950Xを入手でき、流用パーツの多い私としては珍しくPCケースから一新した新しいPCを組んでみた。久しぶりにPC全体を一新したことで、比較的統一感のあるPCを組むことができてよかったと思う。
5950Xの性能はもちろん大変素晴らしく、Zen3の高いシングルスレッド性能と16コア搭載による圧倒的なマルチスレッド性能で非常に快適なPCが出来上がった。
その後、Rocketlakeが出て、QSV関連の検証もしたいということでi7 11700Kを買ってしまった。その後半年でAlderlakeが出るとわかってはいたけど、それにしてもここまで性能差がつくとは思っていなかった。まあ半年ほどQSVの検証には役立ってはくれたので別に買ったのを後悔はしてないけど、i9 12900Kの半分ぐらいの性能しかなく電力効率もよろしくないので、今となっては何に使えばいいのかというのに困っている…。
11月には10nm(Intel7)に移行したAlderlakeが発売された。
実際にAlderlake(i9 12900K)を買って遊んでみると、まずP-coreのシングルスレッド性能は非常に強力で、Rocketlakeを一瞬で過去のものとするのはもちろん、すごいと思っていたZen3をもあっさり抜き去る期待を上回る性能となっていた。さらにP-core/E-coreの混載によりシングルスレッド性能とマルチスレッド性能を両立させるIntelの戦略がうまくいっていることも確認出来て、今後のIntel CPUにも期待をさせるものとなっていたと思う。
爆熱という初期のうわさで身構えてしまったが、実際に問題の241Wになる場面はほぼなく、また比較的冷やしやすい印象で多少調整すれば空冷でも問題なく動きそう。個人的には簡易水冷を使えばかなり静かに動かせるようになったので満足できるCPUとなった。
問題はDDR5メモリが品不足なのと、DDR5-4800だとなかなかDDR4に対してはっきり優勢にならないことだろうか。このあたりはより高速なDDR5が出てくると解決していくのかもしれない。
Z690マザーが高すぎるという問題もあるけど、これは半導体不足の影響もあるのかもだけど、それ以前にどのマザーも豪華すぎるのも原因だと思う(その割にPCIeが少ないのが多いが…)。i9 12900Kの241Wに対応するためか、電源フェーズ数がすごく多いし、そのヒートシンクも大きい。そもそも以前i9 7980XEを動かしていたX299 OC Formulaでさえ13フェーズだったし、それでi9 7980XEをオーバークロックしてPL1=240Wとしても安定して動いていたので、最近の16フェーズだの20フェーズだのは豪華すぎなのでは…と思ってしまう。
もちろん豪華なハイエンドマザーがあるのはよいことだし、それが高いのも当然だが、一方で低価格なマザーも選択肢として用意してほしいところ。まあこのあたりは今後H670/B660等がカバーしていくのかもだし、低価格なDDR4マザーが出てくれば、AlderlakeはCPU自体は比較的安いので、Core i5等がもっと魅力的になってきそう。
来年はIntel RaptorlakeとAMD Zen4 だろうか。Raptorlakeはsmallコアが倍増してマルチスレッド性能がさらに向上するとされている。DDR5もそのころにはさすがに品数もそろっているだろうから、今回のようにメモリで悩む必要はなさそう。Zen4は5nmへの移行で大きくIPCがあがりそうでこちらも楽しみ。ただ、Zen3のときもそうだったが、Zen4でも供給量がまた少ないんじゃないかとやや心配。争奪戦をするのはやはりしんどい。
RaptorlakeでiGPUの世代が更新されるなら、まずはQSVのテストということでそちらを試してみたいと思う。
GPU
2021年、狂ったように値上がりしまくったGPU。まじでやばい。
1月にVCE/VCN検証用にRX5500XT(中古)を10000円でなんとなく入手したが、ほんとに買っておいてよかった。同じものがいまでは35000円とかそれ以上するらしい(そんなRX5500XT買いたくない)。もう、ほんとにどうかしてるとしか思えないお値段だ。
CPU/RAM/ストレージ類はこんなに値上がってはいないし、そう思うと半導体不足うんぬんがあるとしても自作PCパーツの中ではGPUの高騰だけが群を抜いて異常で、ちょっと買う気にならなくなってきている。
まあ、手元には昔買ったGPUがあるし、それで特に困っていないので、当面壊れなければそれを使い倒していく予定。
ただ、来年はIntelのdGPUが出るらしく、そのQSVを試してみたいとは思う。QSVのためというのと価格の問題から基本は128EUのほうを待つ感じ。とにかく2~3万ぐらいで買えるとよいのだが…。
DRAM
DDR4に関しては夏頃高くなったものの、また少し安くなってきている感じだろうか。
DDR5はAlderlake発売時点では入手困難で、DDR5環境はあきらめてしまったのだが、まあ新しいメモリということで比較的お値段高めだし、そのわりに多くのアプリではさほど性能差が出ないということで、まあ今のところDDR4で十分かなと思っている(と自分に言い聞かせて散財しないようにしている)。
ただ、DDR5-6000を超えてくるとそこそこ効果があったりするようなので、そのあたりの高速メモリが買えるようになってくれば面白くなってきそう。
ストレージ
2021年はHDDは少しずつ値下がり、SSDは夏頃高くなったものの、また少し安くなってきている感じだろうか。
今年はHDDは買わなかったのだけど、代わりにSSD 4TBx3を買ってしまい、またしても散財してしまった。
まあ、そのおかげで録画PCからHDDがなくなり、かなり静かになった。正直想定以上に静かになり、気をつけなければ気づかないぐらいになったので、コスパは大変悪いがかなり満足。
今年買ったCPU/GPU
今年はCPUを3つも買って大変散財してしまった…。
まあ、今年の印象としてはやはり直近のAlderlakeが印象的で、デスクトップCPUでは押されまくっていたIntelが反撃にでた年になったと思う。
今年はまず1月に(なんとか)5950Xを入手でき、流用パーツの多い私としては珍しくPCケースから一新した新しいPCを組んでみた。久しぶりにPC全体を一新したことで、比較的統一感のあるPCを組むことができてよかったと思う。
5950Xの性能はもちろん大変素晴らしく、Zen3の高いシングルスレッド性能と16コア搭載による圧倒的なマルチスレッド性能で非常に快適なPCが出来上がった。
その後、Rocketlakeが出て、QSV関連の検証もしたいということでi7 11700Kを買ってしまった。その後半年でAlderlakeが出るとわかってはいたけど、それにしてもここまで性能差がつくとは思っていなかった。まあ半年ほどQSVの検証には役立ってはくれたので別に買ったのを後悔はしてないけど、i9 12900Kの半分ぐらいの性能しかなく電力効率もよろしくないので、今となっては何に使えばいいのかというのに困っている…。
11月には10nm(Intel7)に移行したAlderlakeが発売された。
実際にAlderlake(i9 12900K)を買って遊んでみると、まずP-coreのシングルスレッド性能は非常に強力で、Rocketlakeを一瞬で過去のものとするのはもちろん、すごいと思っていたZen3をもあっさり抜き去る期待を上回る性能となっていた。さらにP-core/E-coreの混載によりシングルスレッド性能とマルチスレッド性能を両立させるIntelの戦略がうまくいっていることも確認出来て、今後のIntel CPUにも期待をさせるものとなっていたと思う。
爆熱という初期のうわさで身構えてしまったが、実際に問題の241Wになる場面はほぼなく、また比較的冷やしやすい印象で多少調整すれば空冷でも問題なく動きそう。個人的には簡易水冷を使えばかなり静かに動かせるようになったので満足できるCPUとなった。
問題はDDR5メモリが品不足なのと、DDR5-4800だとなかなかDDR4に対してはっきり優勢にならないことだろうか。このあたりはより高速なDDR5が出てくると解決していくのかもしれない。
Z690マザーが高すぎるという問題もあるけど、これは半導体不足の影響もあるのかもだけど、それ以前にどのマザーも豪華すぎるのも原因だと思う(その割にPCIeが少ないのが多いが…)。i9 12900Kの241Wに対応するためか、電源フェーズ数がすごく多いし、そのヒートシンクも大きい。そもそも以前i9 7980XEを動かしていたX299 OC Formulaでさえ13フェーズだったし、それでi9 7980XEをオーバークロックしてPL1=240Wとしても安定して動いていたので、最近の16フェーズだの20フェーズだのは豪華すぎなのでは…と思ってしまう。
もちろん豪華なハイエンドマザーがあるのはよいことだし、それが高いのも当然だが、一方で低価格なマザーも選択肢として用意してほしいところ。まあこのあたりは今後H670/B660等がカバーしていくのかもだし、低価格なDDR4マザーが出てくれば、AlderlakeはCPU自体は比較的安いので、Core i5等がもっと魅力的になってきそう。
来年はIntel RaptorlakeとAMD Zen4 だろうか。Raptorlakeはsmallコアが倍増してマルチスレッド性能がさらに向上するとされている。DDR5もそのころにはさすがに品数もそろっているだろうから、今回のようにメモリで悩む必要はなさそう。Zen4は5nmへの移行で大きくIPCがあがりそうでこちらも楽しみ。ただ、Zen3のときもそうだったが、Zen4でも供給量がまた少ないんじゃないかとやや心配。争奪戦をするのはやはりしんどい。
RaptorlakeでiGPUの世代が更新されるなら、まずはQSVのテストということでそちらを試してみたいと思う。
GPU
2021年、狂ったように値上がりしまくったGPU。まじでやばい。
1月にVCE/VCN検証用にRX5500XT(中古)を10000円でなんとなく入手したが、ほんとに買っておいてよかった。同じものがいまでは35000円とかそれ以上するらしい(そんなRX5500XT買いたくない)。もう、ほんとにどうかしてるとしか思えないお値段だ。
CPU/RAM/ストレージ類はこんなに値上がってはいないし、そう思うと半導体不足うんぬんがあるとしても自作PCパーツの中ではGPUの高騰だけが群を抜いて異常で、ちょっと買う気にならなくなってきている。
まあ、手元には昔買ったGPUがあるし、それで特に困っていないので、当面壊れなければそれを使い倒していく予定。
ただ、来年はIntelのdGPUが出るらしく、そのQSVを試してみたいとは思う。QSVのためというのと価格の問題から基本は128EUのほうを待つ感じ。とにかく2~3万ぐらいで買えるとよいのだが…。
DRAM
DDR4に関しては夏頃高くなったものの、また少し安くなってきている感じだろうか。
DDR5はAlderlake発売時点では入手困難で、DDR5環境はあきらめてしまったのだが、まあ新しいメモリということで比較的お値段高めだし、そのわりに多くのアプリではさほど性能差が出ないということで、まあ今のところDDR4で十分かなと思っている(と自分に言い聞かせて散財しないようにしている)。
ただ、DDR5-6000を超えてくるとそこそこ効果があったりするようなので、そのあたりの高速メモリが買えるようになってくれば面白くなってきそう。
ストレージ
2021年はHDDは少しずつ値下がり、SSDは夏頃高くなったものの、また少し安くなってきている感じだろうか。
今年はHDDは買わなかったのだけど、代わりにSSD 4TBx3を買ってしまい、またしても散財してしまった。
まあ、そのおかげで録画PCからHDDがなくなり、かなり静かになった。正直想定以上に静かになり、気をつけなければ気づかないぐらいになったので、コスパは大変悪いがかなり満足。
今年買ったCPU/GPU
Intel CPU | AMD CPU | GeForce | Radeon | Arc | |
2008 | C2Q6600 | GT8600 | |||
2009 | i7 920 | GT9600 | |||
2010 | Xeon W3680 | HD4350 | |||
2011 | i5 2500 | GTX460 | |||
2012 | i7 3770K | ||||
2013 | i7 4770K | GTX 660 | |||
2014 | i7 5960X | A10-7850K | |||
2015 | i7 6700K Celeron N3150 | GTX970 | |||
2016 | Celeron J3710 | GTX1080 GTX1060 | RX 460 | ||
2017 | i7 7700K i9 7980XE | R7 1700 | |||
2018 | RTX2070 | ||||
2019 | R7 3700X R3 3200G | ||||
2020 | i5 1035G7 | 2021 | i7 11700K i9 12900K | R9 5950X | RX5500XT |
2022 | RaptorLake? | 384 EU or 128EU |
M.2 SSDにヒートシンク追加 (BA-HM02)
前回HDDをSSDに置き換えた録画PCだけど、前回追加したSSDとは別に、録画用にCorsair Force MP510 1.92TB x2を使用している。
今回は、これにヒートシンクをつけてみてどうなったかという話。
使うのは AINEX BA-HM02 というやつ。
そんなに大きなヒートシンクというわけではなさそうだけど、効果はどんなもんだろうか?

PC構成はこんな感じ。
このうち、基本的に録画はCorsair Force MP510 1.92TB x2 のほうに保存している。(こちらのほうが圧倒的にTBWも大きいので)
Asrock H270M Pro4 のM2スロットは2つあり、これを両方使用している感じ。最近のマザーのようにM2スロットにヒートシンクがあるわけではないので、そのまま使用していた。
ただ、CPUクーラーのファンの風が当たる上のほうのM2スロット(M.2_1)はともかく、下のほうのM2スロット(M.2_2)はあまり風があたる感じではないので温度が上がりやすい。

これまでは、そんなに長時間SSDに大量にデータを書いたりはしないので、まあSSDはそのままでもいいかなと思っていた。
あと、よくある両面テープタイプの別売ヒートシンクは、しっかりくっつきすぎて取り外せなくなることがあるので、ヒートシンクをつけるのはちょっと敬遠していた。(実際に昔1枚外れなくなって無理に外すと壊しそうで外すのあきらめた…
けど、CrystalDiskInfoの記録によると、やはり時折SSDの温度がかなり上がってしまっていて、耐久性が損なわれないか気になる。今回、両面テープタイプでなく、放熱シリコンパッドで挟む感じで取り付けられるというヒートシンク(AINEX BA-HM02)を見つけたので、これをつけて対策してみることにした。
取り付け後はこんな感じ。取り付けは前述のとおり上下のパーツと放熱シリコンパッドで挟む感じで比較的簡単だった。

実際にCrystalDiskMarkのベンチマークを回してみると、ヒートシンクに熱が伝わって暖かくなっていたので、ちゃんと役目を果たしているみたい。
M.2_2のほうのSSDの温度変化をCrystalDiskInfoで確認。ヒートシンク取り付け前後の約1週間で温度変化がどんな感じかな、というのを見てみる。(ヒートシンクは12/11の夕方に取り付け)
周期的な温度の変化は夜寝るときにエアコンを切ると室温が下がり、昼間エアコンを入れると室温が上がったりエンコードするとディスクアクセスが起こって温度が上がるという感じ。

まず、CrystalDiskMarkのベンチマークをそれぞれで実行している。ただし、この時ベンチマークはM.2_1のSSDとM.2_2のSSDを束ねたSSDに対して行っているので、2台のSSDに分散して読み書きしていていて、通常の1台のSSDにベンチマークするときよりは負荷は軽減されている状態になっている。
このベンチマーク時の温度は一目瞭然で70℃超えていたのが50℃弱になっていてかなり温度は下がっている。
その後の状態については、日々SSDへのアクセス量は一定ではないので、まあ大体の傾向しかわからないけど、ヒートシンク取り付け後は、それまでと比べるとなんとなく温度の振れ幅が抑えられていているかなあ、という感じでやはり効果ありそう。
やはり、M2 SSDはディスクアクセスが起こると発熱しやすく、そのままだとわりと温度が上がってしまう。温度が上がるとやはり耐久性が低下しそうでやや心配だ。
最近のマザーボードにはSSD用のヒートシンクがある場合も多く、これを使えれば問題ないが、そういうのがない場合にはやはりこうしたヒートシンクをつけてみるのもよさそうだ。
今回使ったAINEX BA-HM02は、お値段も1000円弱だしそれでいてちゃんと効果があるということでわりとよさそう。SSDの温度が無事下がり、安心して使えそうな感じになった。
今回は、これにヒートシンクをつけてみてどうなったかという話。
使うのは AINEX BA-HM02 というやつ。
そんなに大きなヒートシンクというわけではなさそうだけど、効果はどんなもんだろうか?

PC構成はこんな感じ。
CPU | Core i5 7500 |
コア数 | 4C/4T |
クロック | 3.6GHz |
冷却 | GELID SlimHero |
マザー | Asrock H270M Pro4 |
メモリ | DDR4-2400 8GBx4 |
SSD1 | SanDisk SDSSDXPS480G |
SSD2 | Corsair MP510 1.92TB x2 |
SSD3 | Sandisk SDSSDH3 4T00 x3 (4TB x3) |
録画 | P○3 x2 |
LAN | Intel X540-T2 |
OS | Win 10 x64 Pro |
ケース | InWin IW-CE685/300P |
このうち、基本的に録画はCorsair Force MP510 1.92TB x2 のほうに保存している。(こちらのほうが圧倒的にTBWも大きいので)
Asrock H270M Pro4 のM2スロットは2つあり、これを両方使用している感じ。最近のマザーのようにM2スロットにヒートシンクがあるわけではないので、そのまま使用していた。
ただ、CPUクーラーのファンの風が当たる上のほうのM2スロット(M.2_1)はともかく、下のほうのM2スロット(M.2_2)はあまり風があたる感じではないので温度が上がりやすい。

これまでは、そんなに長時間SSDに大量にデータを書いたりはしないので、まあSSDはそのままでもいいかなと思っていた。
あと、よくある両面テープタイプの別売ヒートシンクは、しっかりくっつきすぎて取り外せなくなることがあるので、ヒートシンクをつけるのはちょっと敬遠していた。(実際に昔1枚外れなくなって無理に外すと壊しそうで外すのあきらめた…
けど、CrystalDiskInfoの記録によると、やはり時折SSDの温度がかなり上がってしまっていて、耐久性が損なわれないか気になる。今回、両面テープタイプでなく、放熱シリコンパッドで挟む感じで取り付けられるというヒートシンク(AINEX BA-HM02)を見つけたので、これをつけて対策してみることにした。
取り付け後はこんな感じ。取り付けは前述のとおり上下のパーツと放熱シリコンパッドで挟む感じで比較的簡単だった。

実際にCrystalDiskMarkのベンチマークを回してみると、ヒートシンクに熱が伝わって暖かくなっていたので、ちゃんと役目を果たしているみたい。
M.2_2のほうのSSDの温度変化をCrystalDiskInfoで確認。ヒートシンク取り付け前後の約1週間で温度変化がどんな感じかな、というのを見てみる。(ヒートシンクは12/11の夕方に取り付け)
周期的な温度の変化は夜寝るときにエアコンを切ると室温が下がり、昼間エアコンを入れると室温が上がったりエンコードするとディスクアクセスが起こって温度が上がるという感じ。

まず、CrystalDiskMarkのベンチマークをそれぞれで実行している。ただし、この時ベンチマークはM.2_1のSSDとM.2_2のSSDを束ねたSSDに対して行っているので、2台のSSDに分散して読み書きしていていて、通常の1台のSSDにベンチマークするときよりは負荷は軽減されている状態になっている。
このベンチマーク時の温度は一目瞭然で70℃超えていたのが50℃弱になっていてかなり温度は下がっている。
その後の状態については、日々SSDへのアクセス量は一定ではないので、まあ大体の傾向しかわからないけど、ヒートシンク取り付け後は、それまでと比べるとなんとなく温度の振れ幅が抑えられていているかなあ、という感じでやはり効果ありそう。
やはり、M2 SSDはディスクアクセスが起こると発熱しやすく、そのままだとわりと温度が上がってしまう。温度が上がるとやはり耐久性が低下しそうでやや心配だ。
最近のマザーボードにはSSD用のヒートシンクがある場合も多く、これを使えれば問題ないが、そういうのがない場合にはやはりこうしたヒートシンクをつけてみるのもよさそうだ。
今回使ったAINEX BA-HM02は、お値段も1000円弱だしそれでいてちゃんと効果があるということでわりとよさそう。SSDの温度が無事下がり、安心して使えそうな感じになった。
SSDを買ってしまった
少し前になるけど、AmazonのブラックフライデーでTLCタイプ(QLCでない!)のSSDが安くなっていて(49k→40k)、つい買ってしまった。
3台。


なにがしたいかというと、24時間動いている録画PCの静音化。同じ部屋で寝ていて(寝たとき足元の机の上にある)、夜静かになると音が気になることがあるので、これをなるべく静かにしたい。
というわけでHDDの代わりに録画PCにこれを突っ込んで、PC構成がこんな感じになった。
SSD1がWindows用、SSD2/SSD3がデータ用。
変更前
右側にHDDが入っている。あとロープロファイルの薄型ケースなので裏配線とかはできないため、ケーブル類の配線が適当で汚い…

HDDは5インチベイに装着していたのだが、そのままだとほとんど空気が流れない位置になってしまう。そうすると、どんどんHDDの温度が上がってしまうので、これを冷却するために4cmファンx3をつけていた。(つけていても夏は40℃いってしまう)
このファンが比較的音が目立つ理由の一つ。
埃だらけで汚いけどこんな感じのやつ。左右と中央のファンの色が違うのは、ファンが壊れて交換したのだけど、そのとき交換用のファンに間違えて違う回転数のやつを買ってしまうというミスをしたため…。(※これまでこのファンは2回ぐらい壊れた

4cmファンは風量を確保するにはそこそこ回転数を上げないといけないのでどうしてもうるさいくなってしまうし、そもそもHDDの動作音自体がずっと回転していて、これも夜の静かな時には気になる音がする。
そこで、今回は入手したSSDを束ねてHDDの代わりにすることで、HDDと4cmファンx3という音源を両方取り外して静音PCを目指した。
変更後
HDDを取り出したあとの空間に3枚のSSDを適当に突っ込んだ。特に固定していないけど、まあSATAケーブル、電源ケーブルと合わせて入れるとそこそこいい感じに収まったので、雑だけどSATA SSDだし気にしない(笑)
このケースは薄型のロープロファイル用MicroATXケースだけど、比較的組みやすく割と気に入っている。

あとケース右上の9cmファンもついでに交換。ずっとケース付属のものを使っていたのだけど、結構長く使ったので低速で回してもゴロゴロ言い始めていた。
交換先はNoctua NF-A9 PWM。このファン、黒色のバージョンもあるようで、そのほうがこのケースには合いそうだったが、ざっと探した感じなぜか黒のほうが500円高かったし、どうせケースの中はそんなに見ないのでNoctua標準色にした。
交換後はさすがはNoctuaということで非常に静かになった。
左:交換前のケース付属ファン
右:Noctua NF-A9 PWM


HDD→SSDx3へ換装後は、稼働している音源は3つになった。
1. 吸気ファン (9cm Noctua NF-A9 PWM 1100rpmぐらいで運転)
2. CPUファン (12cm 15mm厚 GELID SlimHero付属 900rpmぐらいで運転)
3. 電源ファン (8cm 15mm厚 実働回転数不明)
結果としては、個人の主観でしかないけどやはりHDDのブーン…という音がなくなったのは大きく、とても静かになった。
おかげでほぼ音は夜中でも気にならなくなった感じで、無事目的を達成!
Sandisk SDSSDH3 4T00 4TB。TLCのSSDの中ではもともと比較的お値段安めの製品だと思う。値段を気にするならQLCという手もあるけど、QLCはちょっと書き込んでSLCキャッシュを使い切るとSSDとは思えない遅さになるし、そもそも耐久性も低そうなのでパス。

素の性能はこんな感じ。ほぼSATA SSDの上限いっぱいの性能。

SSDを束ねるには、
1. BIOSのRAID0
2. Windowsディスク管理のストライプボリューム
3. Windowsの記憶域プール
(4. HW RAID)
みたいにいろいろな方法があると思うけど、今回は3.の記憶域プールを使った。
記憶域プールは詳細な設定の可能なPowerShellから作成した。
まずは対象ディスクを確認。3台のSanDisk SDSSDH3 4T00が認識できていて、CanPoolがTrueなので、記憶域プールに追加できることがわかる。
記憶域プールを作成してから、仮想ディスクの作成するという流れになるようなので、まず New-StoragePool で記憶域プールを作成。
記憶域プールができたことを確認したら、その上に New-VirtualDisk で仮想ディスクを作成し、作成したディスクにドライブ文字を割り当てる。
-NumberOfColumns は何台のディスクに分散書き込みするかというオプション。今回は3台のSSDなので"3"。-Interleave はその分散書き込みする単位でここでは65536(64KiB)。
-ResiliencySettingName Simple は冗長化のないディスクを束ねるモード。
-ProvisioningType Fixed は、仮想ディスクの容量の確保方法で固定容量で確保するモード。今回は最大量を一気に割り当てて(-UseMaximumSize)、ディスク追加の予定もないので固定とした。
作成したディスクをコントロールパネルから見るとこんな感じで、上のほうのプールがここで作成したSanDisk SDSSDH3 4T00 x3 のプール。意図したとおり3台のディスクを束ねられている。
下のほうのプールは、もうひとつのCorsair MP510 1.92TB x2 のプール。

今回作った仮想ディスクでベンチマークをするとこんな感じ。シーケンシャルRead/Writeは素のSSDの3倍弱といった性能になっている。ただ、基本はネットワーク越しに使うので、この性能が役立つことはないのだった…。

ディスクアクセス中の状態をHWiNFOでチェック。確かに3台に分散アクセスできている。

ちなみにアイドル電力は+StyleのスマートWifiプラグのアプリによれば25Wほど。
SSDが多すぎるせいか、10GbEのLANカードのせいか、やはりちょっと多めな気がするが、今回の換装前(HDD装着時)は36W程度だったので、少しは減らすことができた。
※たまたま22Wまで落ちているときのもの。めったにない。

というわけで、HDDの代わりにTLC SSDディスクを使ってPCを静かにすることができた。
ただ、これで終わりではまずくて、SSDを3枚束ねているということは、3台のSSDのうちどれか1台でも死ぬとディスク全体が死ぬため、感覚的には普通のSSDの3倍ぐらい故障しやすそう。(細かく確率計算すると違うのかもだが…
SSDはHDDと比べ比較的故障しにくい印象だが、一方で死ぬときは突然死んで全体が一気に読めなくなるという印象もある。データが全部死ぬと思うとなかなか怖い。
一方でこれ以上散財するのはどうなのかと思い、手元にあるものでなんとかしようということで、普段あまり使っていなかったHaswell世代QSV検証用のPCがあったので、これを活用してみることにした。
今回取り出したHDDを追加接続して、1日一回
・BIOSの自動起動で1日一回起動
・ネットワーク越しにrobocopyで差分バックアップ (だいたい5分~30分ぐらい)
・すぐシャットダウン
を昼間自動で行うようにした。1日一回HDDがカリカリうるさいけど、起きている時間帯なのでそこは妥協。
まあ1日1回なので万全とは言えないだろうけど、これで万が一ディスクが死んでもある程度ダメージを抑えられそう。
3台。


なにがしたいかというと、24時間動いている録画PCの静音化。同じ部屋で寝ていて(寝たとき足元の机の上にある)、夜静かになると音が気になることがあるので、これをなるべく静かにしたい。
というわけでHDDの代わりに録画PCにこれを突っ込んで、PC構成がこんな感じになった。
SSD1がWindows用、SSD2/SSD3がデータ用。
2021年2月 | 2021年12月 | |
---|---|---|
CPU | Core i5 7500 | ← |
コア数 | 4C/4T | ← |
クロック | 3.6GHz | ← |
冷却 | GELID SlimHero | ← |
マザー | Asrock H270M Pro4 | ← |
メモリ | DDR4-2400 8GBx4 | ← |
SSD1 | SanDisk SDSSDXPS480G | ← |
SSD2 | Corsair MP510 1.92TB x2 | ← |
HDD SSD3 | WD WUH721414ALE6L4 (14TB) | Sandisk SDSSDH3 4T00 x3 (4TB x3) |
録画 | P○3 x2 | ← |
LAN1 | Intel X540-T2 | ← |
LAN2 | Intel I350-T4 v2 | 取り外し |
OS | Win 10 x64 Pro | ← |
ケース | InWin IW-CE685/300P | ← |
変更前
右側にHDDが入っている。あとロープロファイルの薄型ケースなので裏配線とかはできないため、ケーブル類の配線が適当で汚い…

HDDは5インチベイに装着していたのだが、そのままだとほとんど空気が流れない位置になってしまう。そうすると、どんどんHDDの温度が上がってしまうので、これを冷却するために4cmファンx3をつけていた。(つけていても夏は40℃いってしまう)
このファンが比較的音が目立つ理由の一つ。
埃だらけで汚いけどこんな感じのやつ。左右と中央のファンの色が違うのは、ファンが壊れて交換したのだけど、そのとき交換用のファンに間違えて違う回転数のやつを買ってしまうというミスをしたため…。(※これまでこのファンは2回ぐらい壊れた

4cmファンは風量を確保するにはそこそこ回転数を上げないといけないのでどうしてもうるさいくなってしまうし、そもそもHDDの動作音自体がずっと回転していて、これも夜の静かな時には気になる音がする。
そこで、今回は入手したSSDを束ねてHDDの代わりにすることで、HDDと4cmファンx3という音源を両方取り外して静音PCを目指した。
変更後
HDDを取り出したあとの空間に3枚のSSDを適当に突っ込んだ。特に固定していないけど、まあSATAケーブル、電源ケーブルと合わせて入れるとそこそこいい感じに収まったので、雑だけどSATA SSDだし気にしない(笑)
このケースは薄型のロープロファイル用MicroATXケースだけど、比較的組みやすく割と気に入っている。

あとケース右上の9cmファンもついでに交換。ずっとケース付属のものを使っていたのだけど、結構長く使ったので低速で回してもゴロゴロ言い始めていた。
交換先はNoctua NF-A9 PWM。このファン、黒色のバージョンもあるようで、そのほうがこのケースには合いそうだったが、ざっと探した感じなぜか黒のほうが500円高かったし、どうせケースの中はそんなに見ないのでNoctua標準色にした。
交換後はさすがはNoctuaということで非常に静かになった。
左:交換前のケース付属ファン
右:Noctua NF-A9 PWM


HDD→SSDx3へ換装後は、稼働している音源は3つになった。
1. 吸気ファン (9cm Noctua NF-A9 PWM 1100rpmぐらいで運転)
2. CPUファン (12cm 15mm厚 GELID SlimHero付属 900rpmぐらいで運転)
3. 電源ファン (8cm 15mm厚 実働回転数不明)
結果としては、個人の主観でしかないけどやはりHDDのブーン…という音がなくなったのは大きく、とても静かになった。
おかげでほぼ音は夜中でも気にならなくなった感じで、無事目的を達成!
Sandisk SDSSDH3 4T00 4TB。TLCのSSDの中ではもともと比較的お値段安めの製品だと思う。値段を気にするならQLCという手もあるけど、QLCはちょっと書き込んでSLCキャッシュを使い切るとSSDとは思えない遅さになるし、そもそも耐久性も低そうなのでパス。

素の性能はこんな感じ。ほぼSATA SSDの上限いっぱいの性能。

SSDを束ねるには、
1. BIOSのRAID0
2. Windowsディスク管理のストライプボリューム
3. Windowsの記憶域プール
(4. HW RAID)
みたいにいろいろな方法があると思うけど、今回は3.の記憶域プールを使った。
記憶域プールは詳細な設定の可能なPowerShellから作成した。
まずは対象ディスクを確認。3台のSanDisk SDSSDH3 4T00が認識できていて、CanPoolがTrueなので、記憶域プールに追加できることがわかる。
# 対象のディスクの確認
PS C:\WINDOWS\system32> Get-PhysicalDisk -CanPool $True
Number FriendlyName SerialNumber MediaType CanPool OperationalStatus HealthStatus Usage Size
------ ------------ ------------ --------- ------- ----------------- ------------ ----- ----
2 SanDisk SDSSDH3 4T00 xxxxxxxxxxxx SSD True OK Healthy Auto-Select 3.64 TB
3 SanDisk SDSSDH3 4T00 yyyyyyyyyyyy SSD True OK Healthy Auto-Select 3.64 TB
1 SanDisk SDSSDH3 4T00 zzzzzzzzzzzz SSD True OK Healthy Auto-Select 3.64 TB
記憶域プールを作成してから、仮想ディスクの作成するという流れになるようなので、まず New-StoragePool で記憶域プールを作成。
# 記憶域プールの作成
PS C:\WINDOWS\system32> New-StoragePool `
-FriendlyName "StoragePoolData1" `
-StorageSubsystemFriendlyName "Windows Storage*" `
-PhysicalDisks (Get-PhysicalDisk -CanPool $True) `
-ResiliencySettingNameDefault Simple `
-ProvisioningTypeDefault Fixed `
-WriteCacheSizeDefault 0 `
-Verbose
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly Size AllocatedSize
------------ ----------------- ------------ ------------ ---------- ---- -------------
StoragePoolData1 OK Healthy False False 10.91 TB 768 MB
# 確認
PS C:\WINDOWS\system32> Get-StoragePool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly Size AllocatedSize
------------ ----------------- ------------ ------------ ---------- ---- -------------
Primordial OK Healthy True False 14.85 TB 10.92 TB
StoragePoolData1 OK Healthy False False 10.91 TB 768 MB
記憶域プールができたことを確認したら、その上に New-VirtualDisk で仮想ディスクを作成し、作成したディスクにドライブ文字を割り当てる。
-NumberOfColumns は何台のディスクに分散書き込みするかというオプション。今回は3台のSSDなので"3"。-Interleave はその分散書き込みする単位でここでは65536(64KiB)。
-ResiliencySettingName Simple は冗長化のないディスクを束ねるモード。
-ProvisioningType Fixed は、仮想ディスクの容量の確保方法で固定容量で確保するモード。今回は最大量を一気に割り当てて(-UseMaximumSize)、ディスク追加の予定もないので固定とした。
# 仮想ディスクの作成
PS C:\WINDOWS\system32> New-VirtualDisk `
-FriendlyName StoragePoolDataDisk1 `
-StoragePoolFriendlyName "StoragePoolData1" `
-ResiliencySettingName Simple `
-ProvisioningType Fixed `
-UseMaximumSize `
-NumberOfColumns 3 `
-WriteCacheSize 0 `
-Interleave 65536
# 確認
PS C:\WINDOWS\system32> Get-Disk | `
Where-Object FriendlyName -Eq "StoragePoolDataDisk1"
Number Friendl Serial Number HealthStatus OperationalStatus Total Size Partition
y Name Style
------ ------- ------------- ------------ ----------------- ---------- ----------
5 Stor... {cbce27a5-112d-4262-b0ec-11d8... Healthy Online 10.91 TB RAW
# ドライブレターの割り当てとフォーマット
Get-Disk | Where-Object FriendlyName -Eq "StoragePoolDataDisk1" | `
Initialize-Disk -PassThru | `
New-Partition -AssignDriveLetter -UseMaximumSize | `
Format-Volume
作成したディスクをコントロールパネルから見るとこんな感じで、上のほうのプールがここで作成したSanDisk SDSSDH3 4T00 x3 のプール。意図したとおり3台のディスクを束ねられている。
下のほうのプールは、もうひとつのCorsair MP510 1.92TB x2 のプール。

今回作った仮想ディスクでベンチマークをするとこんな感じ。シーケンシャルRead/Writeは素のSSDの3倍弱といった性能になっている。ただ、基本はネットワーク越しに使うので、この性能が役立つことはないのだった…。

ディスクアクセス中の状態をHWiNFOでチェック。確かに3台に分散アクセスできている。

ちなみにアイドル電力は+StyleのスマートWifiプラグのアプリによれば25Wほど。
SSDが多すぎるせいか、10GbEのLANカードのせいか、やはりちょっと多めな気がするが、今回の換装前(HDD装着時)は36W程度だったので、少しは減らすことができた。
※たまたま22Wまで落ちているときのもの。めったにない。

というわけで、HDDの代わりにTLC SSDディスクを使ってPCを静かにすることができた。
ただ、これで終わりではまずくて、SSDを3枚束ねているということは、3台のSSDのうちどれか1台でも死ぬとディスク全体が死ぬため、感覚的には普通のSSDの3倍ぐらい故障しやすそう。(細かく確率計算すると違うのかもだが…
SSDはHDDと比べ比較的故障しにくい印象だが、一方で死ぬときは突然死んで全体が一気に読めなくなるという印象もある。データが全部死ぬと思うとなかなか怖い。
一方でこれ以上散財するのはどうなのかと思い、手元にあるものでなんとかしようということで、普段あまり使っていなかったHaswell世代QSV検証用のPCがあったので、これを活用してみることにした。
CPU | Core i3 4170 |
コア数 | 2C/4T |
クロック | 3.7GHz |
冷却 | リテール |
マザー | Asrock Z97E-ITX/ac |
メモリ | DDR3-2133 4GBx2 |
SSD1 | Plextor M6Pro 256GB |
HDD1 | 東芝 MN08ACA14T |
HDD2 | WD WUH721414ALE6L4 (今回取り出したHDD) |
OS | Win 10 x64 Pro |
今回取り出したHDDを追加接続して、1日一回
・BIOSの自動起動で1日一回起動
・ネットワーク越しにrobocopyで差分バックアップ (だいたい5分~30分ぐらい)
・すぐシャットダウン
を昼間自動で行うようにした。1日一回HDDがカリカリうるさいけど、起きている時間帯なのでそこは妥協。
まあ1日1回なので万全とは言えないだろうけど、これで万が一ディスクが死んでもある程度ダメージを抑えられそう。
Alderlake i9 12900K のQSV
今回はi9 12900Kの内蔵GPUのQSVの性能を見てみる。
基本的にはTigerlakeやRocketlakeと同じといわれているけどはてさて…?
比較したのは以下の環境。基本的にAlderlake以外のデータは前回のデータ(1)(2)と同じなので、いまとなっては古い環境もある。
使用ソフト
x264 r2988 x64
x265 3.3+2 x64
NVEncC 4.68 x64
QSVEncC 3.33 x64
QSVEncC 5.00β2 x64 (RKLのみ)
QSVEncC 6.05 x64 (ADLのみ)
VCEEncC 5.04 x64
入力 (実写)
sample_movie_1080p.mpg
MPEG2 1920x1080 29.97fps 5203frame
使用コマンド
QSVEnc/NVEncについては、おそらく画質が一番高くなるであろうオプションを試した。x264/x265はきりがないのでpresetをそのまま使用している。
なお、x264/x265では、今回入れてない--tune ssimを入れてssimに最適化したエンコをすることでさらにssim的には改善の余地があることに注意。
x264 medium
--crf
x264 veryslow
--crf --preset veryslow
x265 medium
--crf
x265 veryslow
--crf --preset veryslow
x265 medium 10bit
--crf --input-depth 10 --output-depth 10
x265 veryslow 10bit
--crf --input-depth 10 --output-depth 10 --preset veryslow
nvenc H.264
--vbrhq 0 --vbr-quality --preset quality --weightp --bref-mode each --lookahead 32 --level 5.2
nvenc HEVC
--vbrhq 0 --vbr-quality --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6
nvenc HEVC 10bit
--vbrhq 0 --vbr-quality --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 --output-depth 10
nvenc HEVC + Bframes
--vbrhq 0 --vbr-quality --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 -b 3
nvenc HEVC 10bit + Bframes
--vbrhq 0 --vbr-quality --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 --output-depth 10 -b 3
qsv H.264
--la-icq --la-depth 60 -u 1
qsv HEVC
--icq -u 1 -c hevc
qsv HEVC 10bit
--icq -u 1 -c hevc --profile main10 --output-depth 10
vce H.264
--cqp:+2:+5 -u slow
--vbr -u slow
vce HEVC
--cqp:+2:> -u slow -c hevc
--vbr -u slow -c hevc
画質比較 (実写 1080p : SSIM)
画質比較については、i9 12900K(ADL)の結果は、i7 11700K(RKL)の結果と完全に一致した。
i9 12900K(ADL)の結果とi7 11700K(RKL)の結果を重ねて書いているが、グラフ上、線と点が完全に重なってしまっていて、片方見えない。

というわけで、基本的にはAlderlakeのQSVはRocketlake(そしておそらくTigerlake)と全く同じエンジンを搭載しているとわかる。前回のRocketlake記事とほとんど変わらないので、以降の画質比較はほぼ省略するが、参考までにHaswell, Kabylake, Icelake, Alderlake(=Rocketlake)を比較するとこんな感じ。

H.264に関しては、Kabylake以降は同じで、重なってしまっている。
HEVCについては、Icelake世代で大きく進化していて、以降のRocketlake、Alderlakeはこれをほぼそのまま引き継いだものとなっている。
エンコード速度
対象は実写のMPEG2 1920x1080 29.97fps 5203frame。

AlderlakeのiGPUは、Rocketlakeから32EUのままで据え置きだが、動作周波数が1300MHz→1550MHzにおよそ20%高速化している。
これを受けてH.264とHEVC mediumのエンコード速度は順当に20%高速化していることがわかる。HEVCのslowはやや伸びが控えめで10%程度だが、こちらも着実に高速化している。
やはりQSVは比較的GPUのEUの演算力を必要とするようで、EUの動作周波数の向上がきっちり反映されている。
個人的には14nmだったRocketlakeが32EUなのは仕方ないとしても、せっかく10nm(Intel7)になったのだし、Tigerlakeは96EUなのだから、デスクトップ向けにも少しはEU数を増やしてもらいたかった…。(まあ、あまり内蔵GPUは使われないということなのだろうが…)
あとはDDR5にしたらどうなるかは気になるが、DDR4マザーなのでこれは試せなさそう。動作周波数向上がほぼそのままエンコード速度に反映されているのを見ると、意外とメモリ速度(DDR4-3600)は足を引っ張っていなそうなので、あまり変わらないかもしれないが、果たして…?
基本的にはTigerlakeやRocketlakeと同じといわれているけどはてさて…?
内蔵GPU | 代表的なCPU |
---|---|
第7.5世代 | Haswell (HSW) |
第8世代 | Broadwell (BDW) |
第9世代 | Skylake (SKL) |
第9.5世代 | Kabylake (KBL) Coffelake Cometlake |
第10世代 | 幻のCannonlake (CNL) |
第11世代 | Icelake (ICL) |
第12世代 | Tigerlake (TGL) Rocketlake (RKL) Alderlake (ADL) |
比較したのは以下の環境。基本的にAlderlake以外のデータは前回のデータ(1)(2)と同じなので、いまとなっては古い環境もある。
x264 x265 | nvenc (1060) | nvenc (2070) | QSV (HSW) | QSV (KBL) | QSV (ICL) | QSV (RKL) | QSV (ADL) | vce (Vega) | |
---|---|---|---|---|---|---|---|---|---|
CPU | i9 7980XE | i3 4170 | i7 7700K | i5 1035G7 | i7 11700K | i9 12900K | R3 3200G | ||
GPU | - | GTX 1060 | RTX 2070 | HDG 4400 | HDG 630 | Iris Plus | HDG 750 | HDG 770 | Vega8 |
ドライバ | 442.19 | 5058 | 7870 | 7641 | 9127 | 1002 | 20.2.1 | ||
OS | Win10 | Win11 | Win10 |
使用ソフト
x264 r2988 x64
x265 3.3+2 x64
NVEncC 4.68 x64
QSVEncC 3.33 x64
QSVEncC 5.00β2 x64 (RKLのみ)
QSVEncC 6.05 x64 (ADLのみ)
VCEEncC 5.04 x64
入力 (実写)
sample_movie_1080p.mpg
MPEG2 1920x1080 29.97fps 5203frame
使用コマンド
QSVEnc/NVEncについては、おそらく画質が一番高くなるであろうオプションを試した。x264/x265はきりがないのでpresetをそのまま使用している。
なお、x264/x265では、今回入れてない--tune ssimを入れてssimに最適化したエンコをすることでさらにssim的には改善の余地があることに注意。
x264 medium
--crf
x264 veryslow
--crf
x265 medium
--crf
x265 veryslow
--crf
x265 medium 10bit
--crf
x265 veryslow 10bit
--crf
nvenc H.264
--vbrhq 0 --vbr-quality
nvenc HEVC
--vbrhq 0 --vbr-quality
nvenc HEVC 10bit
--vbrhq 0 --vbr-quality
nvenc HEVC + Bframes
--vbrhq 0 --vbr-quality
nvenc HEVC 10bit + Bframes
--vbrhq 0 --vbr-quality
qsv H.264
--la-icq
qsv HEVC
--icq
qsv HEVC 10bit
--icq
vce H.264
--cqp
--vbr
vce HEVC
--cqp
--vbr
画質比較 (実写 1080p : SSIM)
画質比較については、i9 12900K(ADL)の結果は、i7 11700K(RKL)の結果と完全に一致した。
i9 12900K(ADL)の結果とi7 11700K(RKL)の結果を重ねて書いているが、グラフ上、線と点が完全に重なってしまっていて、片方見えない。

というわけで、基本的にはAlderlakeのQSVはRocketlake(そしておそらくTigerlake)と全く同じエンジンを搭載しているとわかる。前回のRocketlake記事とほとんど変わらないので、以降の画質比較はほぼ省略するが、参考までにHaswell, Kabylake, Icelake, Alderlake(=Rocketlake)を比較するとこんな感じ。

H.264に関しては、Kabylake以降は同じで、重なってしまっている。
HEVCについては、Icelake世代で大きく進化していて、以降のRocketlake、Alderlakeはこれをほぼそのまま引き継いだものとなっている。
エンコード速度
対象は実写のMPEG2 1920x1080 29.97fps 5203frame。

AlderlakeのiGPUは、Rocketlakeから32EUのままで据え置きだが、動作周波数が1300MHz→1550MHzにおよそ20%高速化している。
これを受けてH.264とHEVC mediumのエンコード速度は順当に20%高速化していることがわかる。HEVCのslowはやや伸びが控えめで10%程度だが、こちらも着実に高速化している。
やはりQSVは比較的GPUのEUの演算力を必要とするようで、EUの動作周波数の向上がきっちり反映されている。
個人的には14nmだったRocketlakeが32EUなのは仕方ないとしても、せっかく10nm(Intel7)になったのだし、Tigerlakeは96EUなのだから、デスクトップ向けにも少しはEU数を増やしてもらいたかった…。(まあ、あまり内蔵GPUは使われないということなのだろうが…)
あとはDDR5にしたらどうなるかは気になるが、DDR4マザーなのでこれは試せなさそう。動作周波数向上がほぼそのままエンコード速度に反映されているのを見ると、意外とメモリ速度(DDR4-3600)は足を引っ張っていなそうなので、あまり変わらないかもしれないが、果たして…?
Alderlake i9 12900K のコアとキャッシュの構成と速度
Alderlake i9 12900Kのコアとキャッシュの構成はこんな感じになっているとされている。
まずP-coreが8個でこの子たちは1.25MBのL2キャッシュを独立して持っている。
一方、E-coreは4個をひとつのかたまりにしたのが2つで、かたまりごとに2MBの共有L2キャッシュを持っている。
そして、30MBのL3キャッシュは全コアで共有している。

Alderlakeのコア・キャッシュ構成
こうしたCPUの構成をOSがどう認識しているかは、Coreinfoというアプリを使うか、GetLogicalProcessorInformationという関数を呼ぶことで確認することができる。
今回は、自作アプリのram_speedの中でGetLogicalProcessorInformation関数で情報を取得し、整理して表示してみた。
ram_speed64.exe --cpuinfo
まず、CPU cores では論理コアと物理コアの対応関係を確認している。"P"のついているコアはP-coreなので、HTTオンで1物理コアで2論理コア、"E"のついているコアはE-coreなので、HTTオフで1物理コアで1論理コアとなっている。
CPU Cachesでは各キャッシュと論理コアの対応関係を確認できる。
・L1D/L1Iはそれぞれのコアで独立
・L2はP-coreでは独立だけど、E-coreでは4コアごとに共有されている
・L3は全コアで共有
というのがOSでもきちんと認識されていることが確認できる。
こんな感じでWindowsはP-coreから順に認識しているので、タスクマネージャ上でもP-coreが先に来る表示になっている。負荷がかかった時の傾向が異なるので、見ていて面白い。(下はx265エンコーダ中の例)
なんとなく、なるべくP-coreの2スレッド目はあまり使わないようにしているのがわかる。やはりHTTで2スレッド目を入れると全体のスループット自体は上がるけど、コア内リソースを共有することで個々のスレッドの速度は落ちるため、これを避けようとしているのだと思う。
一方で、E-coreについてはまたちょっと違った負荷のかかり方になっていて、半分ぐらい使っている感じ。

Alderlakeのコア間通信時間
ここまで紹介したように、Alderlakeはキャッシュの構成もP-core/E-coreで異なり、ちょっと変わった感じになっている。
こういうキャッシュの構成はコア間の通信にも効いてくるので、ram_speed 0.03で各物理コア間の通信時間を測った。

※P-coreはHTTがあるので、同一コア内の通信がある。E-coreにはHTTがないので、同一コア内の通信がなく空白。
P-core間の通信は比較的高速で、P-coreとE-core間の通信、それから別のかたまりのE-coreとの間の通信がそれと比べるとやや遅い感じになっている。
よくわからないのは同じかたまりに入っているE-core同士の通信で、L2キャッシュを共有しているのだから別のかたまりのE-coreとの間の通信よりは当然速かろうとと思ったら、なぜか逆に一番遅くなっている。
解せぬ。
まあ、わずかな差なのでそこまで影響はなさそう(少なくともRyzenのCCD間通信の遅さと比べればなんてことはない)だが、E-core同士の通信はちょっと遅いかもね、という感じ。
Alderlakeのキャッシュとメモリの速度
あとはAlderlakeのキャッシュとメモリの速度を図るため、いつもの自作アプリ(ram_speed)で測定してみた。
今回は下記の3パターンで測定。
・全コア(ram_speed64)
・P-coreのみ(ram_speed64 --target pcore)
・E-coreのみ(ram_speed64 --target ecore)
DDR5環境でもやってみたかったけど、DDR4環境なので仕方ない。
比較環境
まずキャッシュとメモリのレイテンシの測定で、キャッシュの構造のわかりやすいアクセスパターンから。
P-coreのL2=1.25MB, L3=30MB、それからE-coreのL2=2MB, L3=30MBが見えていると思う。11700Kと比べるとL2が増加した分(512K→1280K)、レイテンシは若干増えているのがわかると思う。一方で、L3については11700Kと比べて容量増加にもかかわらずレイテンシは削減できているように見える。
E-coreはレイテンシ長め。

次に完全ランダムアクセスのレイテンシ。
先ほどと同じで、12900KのP-coreを11700Kと比べると、L2に関してはキャッシュ量の増大もあってレイテンシがやや増加、L3については短縮傾向にあるのがわかる。(ただしメモリアクセスでは同じDDR4なのでほぼ同等)
5950Xとの比較すると、2MB~32MB前後では12900Kのほうがレイテンシが大きい。これはやはり5950Xはこのあたり巨大なキャッシュによりレイテンシをかなり抑えられているのが大きいと思う。ただし、メモリアクセスのレイテンシは微妙に12900Kのほうが小さい。
E-coreは全体的にレイテンシは大きめ。まあこのあたりは効率重視なコアなので仕方ないだろう。

シングルスレッドのメモリ・キャッシュ帯域。
まず12900K Pcoreから見ると、L1帯域が最大なのはRocketlake(11700K)。これはAVX512が唯一使えるCPUであるため。L2からは12900K Pcoreのほうが帯域が広く、そしてキャッシュ量の大きいことがわかる。L2までは5950Xよりも帯域が広い。
L3付近は11700Kよりは改善がみられるものの、相変わらずRyzen(5950X)のほうが速い。ただし、さらにサイズが大きくなってメモリアクセスの領域に入ると逆転している。12900Kのングルスレッドのメモリ帯域は前世代のRocketlakeから大幅に向上しており、コアの内部バッファ(load buffer, L1 fill bufferなど)拡張等が効いているのだと思われる。
Ecoreのほうを見るとやはりキャッシュの帯域は比較的狭い。特にL1で差が大きいのはEcoreが基本128bitでの実装で、AVX/AVX2の256bitロードも128bitx2として処理されるためだと思う。その結果L1~L2までほぼフラットに帯域が出るのは逆に面白い。
EcoreからのL3以降へのアクセス帯域はかなり控えめ。リングバスとの接続が狭いとかそういう感じ?

マルチスレッドのメモリ・キャッシュ帯域。
基本的な傾向はほぼ変わらず。
L1キャッシュ帯域は5950Xと12900Kはほぼ互角だが、全体的にみると16のPcoreを持つ5950Xのほうがキャッシュサイズも大きいこともあって広い帯域が確保できている。

最後にスレッド数を変えたときのメモリ帯域。
12900Kの1スレッドでのメモリ帯域は37.1GB/sで、11700Kの32.2GBsから大きく向上している。ただ、4スレッド前後では11700Kのほうが速度が出ているのが謎。
最終的なマルチスレッドでの帯域は最大で49GB/sぐらいで、これは11700Kや5950Xもだいたい同じなので、このあたりがDDR4-3600 2chの限界なのかもしれない。
Ecoreの1スレッドのメモリアクセス性能はやはり少し低め。また、5スレッド目を使い始めると少しまた帯域が伸びることから、2つあるEcoreのかたまりを両方使わないと十分なメモリアクセス性能が出ないみたい。やはりEcoreのブロックからリングバスとの間がちょっと狭いのかな、と感じるような結果だ。
ただ、全Ecoreを使った時のメモリ帯域は45.4GB/sと、Pcoreの49.1GB/sとさほど変わらない。マルチスレッドでのメモリアクセス性能は悪くなさそうだ。

終わりに
IntelのメインストリームCPUはNehalemからSkylakeまで長くL2=256K、L3=2MB/コアを継続してきた。
一方Zen2以降製造プロセスで優位に立ったRyzenは、IOダイにより生じるレイテンシ増加の影響を抑制する意図もあってか、高速なキャッシュを多く搭載するようになってきている。
Intelも10nmに移行してからIcelake→Tigerlake/Alderlakeとキャッシュ量を増加させていて、特に今回の12900Kの結果からはキャッシュ・メモリに関しても性能向上が図られていることが確認できた。こういったところもPcoreの非常に強力なシングルスレッド性能を下支えしているのだと思う。(まあキャッシュ量の増加はレイテンシを増加させやすいらしいので大きければいいというものでもないらしいが…)
Ecoreのみについても確認してみたが、Pcoreと比べると微妙だが、少なくとも一昔前のAtomとは全然違って、キャッシュやメモリアクセスに関してもそこそこの性能が確保できていることがわかった。こちらは効率重視なので、そこまで性能が求められるわけではないことを思えば、まあこのぐらいで十分、ということなのだと思う。
まずP-coreが8個でこの子たちは1.25MBのL2キャッシュを独立して持っている。
一方、E-coreは4個をひとつのかたまりにしたのが2つで、かたまりごとに2MBの共有L2キャッシュを持っている。
そして、30MBのL3キャッシュは全コアで共有している。

Alderlakeのコア・キャッシュ構成
こうしたCPUの構成をOSがどう認識しているかは、Coreinfoというアプリを使うか、GetLogicalProcessorInformationという関数を呼ぶことで確認することができる。
今回は、自作アプリのram_speedの中でGetLogicalProcessorInformation関数で情報を取得し、整理して表示してみた。
ram_speed64.exe --cpuinfo
まず、CPU cores では論理コアと物理コアの対応関係を確認している。"P"のついているコアはP-coreなので、HTTオンで1物理コアで2論理コア、"E"のついているコアはE-coreなので、HTTオフで1物理コアで1論理コアとなっている。
12th Gen Intel Core i9-12900K [5.00GHz] (8P+8E,16C/24T)
CPU cores
core 0 P : **----------------------
core 1 P : --**--------------------
core 2 P : ----**------------------
core 3 P : ------**----------------
core 4 P : --------**--------------
core 5 P : ----------**------------
core 6 P : ------------**----------
core 7 P : --------------**--------
core 8 E : ----------------*-------
core 9 E : -----------------*------
core 10 E : ------------------*-----
core 11 E : -------------------*----
core 12 E : --------------------*---
core 13 E : ---------------------*--
core 14 E : ----------------------*-
core 15 E : -----------------------*
CPU Cachesでは各キャッシュと論理コアの対応関係を確認できる。
・L1D/L1Iはそれぞれのコアで独立
・L2はP-coreでは独立だけど、E-coreでは4コアごとに共有されている
・L3は全コアで共有
というのがOSでもきちんと認識されていることが確認できる。
CPU caches
cache L1D : **---------------------- : 12way 48KB
cache L1I : **---------------------- : 8way 32KB
cache L1D : --**-------------------- : 12way 48KB
cache L1I : --**-------------------- : 8way 32KB
cache L1D : ----**------------------ : 12way 48KB
cache L1I : ----**------------------ : 8way 32KB
cache L1D : ------**---------------- : 12way 48KB
cache L1I : ------**---------------- : 8way 32KB
cache L1D : --------**-------------- : 12way 48KB
cache L1I : --------**-------------- : 8way 32KB
cache L1D : ----------**------------ : 12way 48KB
cache L1I : ----------**------------ : 8way 32KB
cache L1D : ------------**---------- : 12way 48KB
cache L1I : ------------**---------- : 8way 32KB
cache L1D : --------------**-------- : 12way 48KB
cache L1I : --------------**-------- : 8way 32KB
cache L1D : ----------------*------- : 8way 32KB
cache L1I : ----------------*------- : 8way 64KB
cache L1D : -----------------*------ : 8way 32KB
cache L1I : -----------------*------ : 8way 64KB
cache L1D : ------------------*----- : 8way 32KB
cache L1I : ------------------*----- : 8way 64KB
cache L1D : -------------------*---- : 8way 32KB
cache L1I : -------------------*---- : 8way 64KB
cache L1D : --------------------*--- : 8way 32KB
cache L1I : --------------------*--- : 8way 64KB
cache L1D : ---------------------*-- : 8way 32KB
cache L1I : ---------------------*-- : 8way 64KB
cache L1D : ----------------------*- : 8way 32KB
cache L1I : ----------------------*- : 8way 64KB
cache L1D : -----------------------* : 8way 32KB
cache L1I : -----------------------* : 8way 64KB
cache L2 : **---------------------- : 10way 1280KB
cache L2 : --**-------------------- : 10way 1280KB
cache L2 : ----**------------------ : 10way 1280KB
cache L2 : ------**---------------- : 10way 1280KB
cache L2 : --------**-------------- : 10way 1280KB
cache L2 : ----------**------------ : 10way 1280KB
cache L2 : ------------**---------- : 10way 1280KB
cache L2 : --------------**-------- : 10way 1280KB
cache L2 : ----------------****---- : 16way 2048KB
cache L2 : --------------------**** : 16way 2048KB
cache L3 : ************************ : 12way 30720KB
こんな感じでWindowsはP-coreから順に認識しているので、タスクマネージャ上でもP-coreが先に来る表示になっている。負荷がかかった時の傾向が異なるので、見ていて面白い。(下はx265エンコーダ中の例)
なんとなく、なるべくP-coreの2スレッド目はあまり使わないようにしているのがわかる。やはりHTTで2スレッド目を入れると全体のスループット自体は上がるけど、コア内リソースを共有することで個々のスレッドの速度は落ちるため、これを避けようとしているのだと思う。
一方で、E-coreについてはまたちょっと違った負荷のかかり方になっていて、半分ぐらい使っている感じ。

Alderlakeのコア間通信時間
ここまで紹介したように、Alderlakeはキャッシュの構成もP-core/E-coreで異なり、ちょっと変わった感じになっている。
こういうキャッシュの構成はコア間の通信にも効いてくるので、ram_speed 0.03で各物理コア間の通信時間を測った。

※P-coreはHTTがあるので、同一コア内の通信がある。E-coreにはHTTがないので、同一コア内の通信がなく空白。
P-core間の通信は比較的高速で、P-coreとE-core間の通信、それから別のかたまりのE-coreとの間の通信がそれと比べるとやや遅い感じになっている。
よくわからないのは同じかたまりに入っているE-core同士の通信で、L2キャッシュを共有しているのだから別のかたまりのE-coreとの間の通信よりは当然速かろうとと思ったら、なぜか逆に一番遅くなっている。
解せぬ。
まあ、わずかな差なのでそこまで影響はなさそう(少なくともRyzenのCCD間通信の遅さと比べればなんてことはない)だが、E-core同士の通信はちょっと遅いかもね、という感じ。
Alderlakeのキャッシュとメモリの速度
あとはAlderlakeのキャッシュとメモリの速度を図るため、いつもの自作アプリ(ram_speed)で測定してみた。
今回は下記の3パターンで測定。
・全コア(ram_speed64)
・P-coreのみ(ram_speed64 --target pcore)
・E-coreのみ(ram_speed64 --target ecore)
DDR5環境でもやってみたかったけど、DDR4環境なので仕方ない。
比較環境
CPU | i9 12900K | i7 11700K Gear1 | Ryzen9 5950X | Ryzen7 3700X | Ryzen7 1700X |
---|---|---|---|---|---|
Cores | 16C/24T | 8C/16T | 16C/32T | 8C/16T | 8C/16T |
RAM | DDR4-3600 2ch | DDR4-3600 2ch | DDR4-3600 2ch | DDR4-3600 2ch | DDR4-2666 2ch |
Timing | 16-19-19-39-1 | 18-22-22-42-2 | 19-20-20-40-1 | 18-22-22-43-1 | 16-16-16-38-1 |
まずキャッシュとメモリのレイテンシの測定で、キャッシュの構造のわかりやすいアクセスパターンから。
P-coreのL2=1.25MB, L3=30MB、それからE-coreのL2=2MB, L3=30MBが見えていると思う。11700Kと比べるとL2が増加した分(512K→1280K)、レイテンシは若干増えているのがわかると思う。一方で、L3については11700Kと比べて容量増加にもかかわらずレイテンシは削減できているように見える。
E-coreはレイテンシ長め。

次に完全ランダムアクセスのレイテンシ。
先ほどと同じで、12900KのP-coreを11700Kと比べると、L2に関してはキャッシュ量の増大もあってレイテンシがやや増加、L3については短縮傾向にあるのがわかる。(ただしメモリアクセスでは同じDDR4なのでほぼ同等)
5950Xとの比較すると、2MB~32MB前後では12900Kのほうがレイテンシが大きい。これはやはり5950Xはこのあたり巨大なキャッシュによりレイテンシをかなり抑えられているのが大きいと思う。ただし、メモリアクセスのレイテンシは微妙に12900Kのほうが小さい。
E-coreは全体的にレイテンシは大きめ。まあこのあたりは効率重視なコアなので仕方ないだろう。

シングルスレッドのメモリ・キャッシュ帯域。
まず12900K Pcoreから見ると、L1帯域が最大なのはRocketlake(11700K)。これはAVX512が唯一使えるCPUであるため。L2からは12900K Pcoreのほうが帯域が広く、そしてキャッシュ量の大きいことがわかる。L2までは5950Xよりも帯域が広い。
L3付近は11700Kよりは改善がみられるものの、相変わらずRyzen(5950X)のほうが速い。ただし、さらにサイズが大きくなってメモリアクセスの領域に入ると逆転している。12900Kのングルスレッドのメモリ帯域は前世代のRocketlakeから大幅に向上しており、コアの内部バッファ(load buffer, L1 fill bufferなど)拡張等が効いているのだと思われる。
Ecoreのほうを見るとやはりキャッシュの帯域は比較的狭い。特にL1で差が大きいのはEcoreが基本128bitでの実装で、AVX/AVX2の256bitロードも128bitx2として処理されるためだと思う。その結果L1~L2までほぼフラットに帯域が出るのは逆に面白い。
EcoreからのL3以降へのアクセス帯域はかなり控えめ。リングバスとの接続が狭いとかそういう感じ?

マルチスレッドのメモリ・キャッシュ帯域。
基本的な傾向はほぼ変わらず。
L1キャッシュ帯域は5950Xと12900Kはほぼ互角だが、全体的にみると16のPcoreを持つ5950Xのほうがキャッシュサイズも大きいこともあって広い帯域が確保できている。

最後にスレッド数を変えたときのメモリ帯域。
12900Kの1スレッドでのメモリ帯域は37.1GB/sで、11700Kの32.2GBsから大きく向上している。ただ、4スレッド前後では11700Kのほうが速度が出ているのが謎。
最終的なマルチスレッドでの帯域は最大で49GB/sぐらいで、これは11700Kや5950Xもだいたい同じなので、このあたりがDDR4-3600 2chの限界なのかもしれない。
Ecoreの1スレッドのメモリアクセス性能はやはり少し低め。また、5スレッド目を使い始めると少しまた帯域が伸びることから、2つあるEcoreのかたまりを両方使わないと十分なメモリアクセス性能が出ないみたい。やはりEcoreのブロックからリングバスとの間がちょっと狭いのかな、と感じるような結果だ。
ただ、全Ecoreを使った時のメモリ帯域は45.4GB/sと、Pcoreの49.1GB/sとさほど変わらない。マルチスレッドでのメモリアクセス性能は悪くなさそうだ。

終わりに
IntelのメインストリームCPUはNehalemからSkylakeまで長くL2=256K、L3=2MB/コアを継続してきた。
一方Zen2以降製造プロセスで優位に立ったRyzenは、IOダイにより生じるレイテンシ増加の影響を抑制する意図もあってか、高速なキャッシュを多く搭載するようになってきている。
Intelも10nmに移行してからIcelake→Tigerlake/Alderlakeとキャッシュ量を増加させていて、特に今回の12900Kの結果からはキャッシュ・メモリに関しても性能向上が図られていることが確認できた。こういったところもPcoreの非常に強力なシングルスレッド性能を下支えしているのだと思う。(まあキャッシュ量の増加はレイテンシを増加させやすいらしいので大きければいいというものでもないらしいが…)
Ecoreのみについても確認してみたが、Pcoreと比べると微妙だが、少なくとも一昔前のAtomとは全然違って、キャッシュやメモリアクセスに関してもそこそこの性能が確保できていることがわかった。こちらは効率重視なので、そこまで性能が求められるわけではないことを思えば、まあこのぐらいで十分、ということなのだと思う。
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の石が来ることもあるかも?
Alderlake i9 12900K ベンチマーク (簡易水冷)
Corsairの360mm簡易水冷(Corsair iCUE H150i RGB PRO XT CW-9060045-WW)のLGA1700リテンションキット(というかねじ)が届き、これを使って12900Kを簡易水冷化した。
低電圧化していれば空冷でもほぼThermal Throttolingは起こっていなかったので、簡易水冷への変更前後でベンチマーク結果はあまり変わらないだろうなとは思いつつ、再度一通りベンチマークをとってみた。
結果は予想通りで、まあほとんど変わらなかったけど、念のため確認したということで。
※基本的には本文もあまり変えていないので、前回の記事を読んだ方はスルーでOKかもです。
比較環境
前回のベンチマーク記事に12900Kの簡易水冷環境を追加。
次にAMD環境。5950XのPBO+COは、PBOを有効にしてさらにCurve Optimizerを使って性能向上を図ったもの。PPTは200W。
「R7 5800X (偽)」は5950XをBIOSから1CCDのみ有効とし8コアCPUとして疑似5800Xとして動作させたもの。
使用ソフト
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分実行して平均をとるモードを使用している。
12900Kは5950Xの定格をしっかり上回る性能だが、PBOを使用した5950Xには及ばない感じ。
過去のIntel製品と比べると4年前のCore-Xシリーズの7980XE(18コア)やわずか半年前のRocketlake(11700K)を完全に過去のものとする性能で、なんと11700Kの倍以上のスコアとなっている。また、12900KのE-core無効時を見ると、それでも11700Kの1.5倍になっていて、GoldenCoveコア(P-core)がいかに強化されているかがうかがえる。
E-core無効と有効とを比べるとスコアが約1.5倍になっていて、E-coreの寄与が大きいこともわかる。
シングルスレッドのほうを見ると、12900Kのシングルスレッドはついに2000を超えており、Rocketlakeからは大きくスコアが向上している。12900Kのクロックの高さも相まってシングルスレッドは5950Xにも圧勝していて、GoldenCoveコアの優秀さが発揮されている。
E-core無効とするとシングルスレッドが落ちてしまうのがちょっとよくわからないが、E-core有効時はE-coreで動作していたわずかなバックグラウンド処理がP-coreで動く分、クロックが上がりにくくなるのかもしれない。
R23のマルチスレッドで微妙に簡易水冷のほうが速くなっているが、それ以外はほぼ変化なし。

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

R20/R23と比べると、なぜかi9 12900Kのスコアが少し悪い。12900Kは5950X定格の近いところまで伸びているが、やや低いことがわかる。低電圧化でスコアが落ちてしまうのは謎。

7zip 19.00
7zipはなぜかRyzenが圧倒的に強く(キャッシュの量とかの問題?)、Rocketlakeからはだいぶ良くなったとはいえ12900Kは5950Xに完敗。なんならついでに7980XEにも追いつけていない。キャッシュ量とかP-coreの数が重要なテストなのだろうか?
decompressはE-coreの有無でかなりスコアに差が出る一方で、compressのほうはほとんど差がないのも面白い。
ここでも簡易水冷化前後でほぼ差はなし。

y-cruncher 0.7.8 9507
SIMD-fpを酷使しつつメモリ帯域も重要とされるy-cruncher。この表だけ単位が計算時間なので値が小さいほど速い。
ここではAVX512が使用でき、メモリ4chの7980XEがトップ。AVX512が使えるはずのRocketlakeがなぜかいまいちなのだが、それと比べると12900Kは大幅に高速化している。それでも、5950Xには及ばない感じ。
ただ、他所のベンチマークを見ると、このアプリではDDR5効果が大きいらしいので、DDR5使用なら12900Kはもっと頑張れるのかもしれない。
ここでも簡易水冷化前後でほぼ差はなし。

x264
本題のx264。グラフがとても長いのは許してほしい。
Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x264guiExで出力。
基本的に12900Kは定格のRyzen 5950Xと同等ぐらいのようで、プリセットによって微妙に速かったり遅かったりしている。ただ、PBO有効の5950Xには及ばない模様(といってもさほど大きな差ではない)。
E-core無効時と比較するとultrafastを除き大きな速度差があり、E-coreの効果が大きいことが確認できる。
Rocketlake(11700K)は大変悲しい感じで、重めのプリセットでは2倍弱の差をつけられている。まあ半年でAlderlakeが出るのがわかっていたとはいえ、ここまで差があると存在意義が…。
ここでも簡易水冷化前後でほぼ差はなし。

x265
次にx265 8bit。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x265guiExで出力。
これもほぼ傾向はx264と同じだが、12900Kがx264と比べるとやや伸びが悪い印象。E-core無効時と比較するとx264の時と比べて性能差が小さく、E-coreがx265を苦手としているのかもしれない。その結果、特に軽めのプリセットではより5950X有利という感じに見える。また、オーバークロックした7980XEが結構頑張っていて、12900Kの近いところまで来ている。
x265は簡易水冷化で若干高速化している気がする。ただ、ごくわずかで大きな差ではない。

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

SVT-AV1
svt-av1(8bit)。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、svtAV1guiExで出力。
これは比較的Alderlake 12900Kが強く、ほとんどのプリセットでPBO有効の5950Xよりも速い結果になっている。
ここでも簡易水冷化前後でほぼ差はなし。

最後にsvt-av1(10bit)。P4でも2fpsを超え、12900Kがかなり速い。すべてのプリセットでPBO有効の5950Xを上回っている。

終わりに
念のため、簡易水冷化の効果を確認した。
結局、簡易水冷化の前後でスコアに差はほとんどなかったが、低電圧化した状態では12900Kが空冷でぎりぎりThermal Throttolingを起こさないぐらいにはなっていたので、まあ妥当な結果といえると思う。
ただ、簡易水冷化の意味がなかったかというとそんなことはなくて、CPU温度を90℃以上行ってしまうことがあったのを80℃以下に抑えられるようになった。しかもそれをファンの回転数をかなり下げた状態でそんな感じなので、エンコーダ中でもかなり静かに運転できるようになったので、簡易水冷化してよかったと思う。
ちなみに簡易水冷の3連ファンの回転数はCorsairのiCueからの制御ではなくて、マザーボードから制御させているけどこんな感じ。80℃で60%としても十分冷えるようだ。(そもそもCorsairの簡易水冷ファンの100%は2000回転を超えるのですごくうるさい)
低電圧化していれば空冷でもほぼThermal Throttolingは起こっていなかったので、簡易水冷への変更前後でベンチマーク結果はあまり変わらないだろうなとは思いつつ、再度一通りベンチマークをとってみた。
結果は予想通りで、まあほとんど変わらなかったけど、念のため確認したということで。
※基本的には本文もあまり変えていないので、前回の記事を読んだ方はスルーでOKかもです。
比較環境
前回のベンチマーク記事に12900Kの簡易水冷環境を追加。
CPU | i9 12900K | i7 11700K | i9 7980XE | |||||
---|---|---|---|---|---|---|---|---|
8P8E 簡易水冷 低電圧化 | 8P8E 空冷 低電圧化 | 8P8E 空冷 | 8P0E 空冷 | Unlimited | 定格 | PL240W | 定格 | |
コア数 | 8P+8E 24T | 8P+0E 16T | 8C/16T | 18C/36T | 18C/36T | |||
L2 Cache | 14MB | 10MB | 4MB | 18MB | ||||
L3 Cache | 30MB | 16MB | 24.75MB | |||||
Boost | 5.2GHz | 4.9GHz | 4.5GHz | |||||
AVX512 | Auto | 4.2Ghz | Auto | |||||
OC | Offset -0.13V | Default | Default | Default | OC | Default | ||
Core Voltage | Auto | Auto | Adaptive 1.175+0.01 | Auto | ||||
PL1 | 241W | Unlimited | 125W | 240W | 165W | |||
PL2 | 241W | Unlimited | 251W | |||||
tau | 56s | Unlimited | 56s | |||||
IccMax | Unlimited | Unlimited | Auto | |||||
Uncore | ? MHz (Auto) | 4100MHz | 3000MHz | 2000MHz | ||||
メモリ | DDR4-3600 2ch | DDR4-3600 2ch | DDR4-3600 4ch | |||||
メモリ容量 | 8GBx4 | 16GBx2 | 8GBx4 | |||||
タイミング | 16-19-19-39-1 | 18-22-22-45-2 | 16-19-19-39-1 | |||||
メモリ FCLK | Gear1 | Gear1 | Gear2 | |||||
マザー | MSI MAG Z690 TOMAHAWK WIFI DDR4 | Gigabyte Z590I AORUS ULTRA (F5a) | Asrock X299 OC Formula | |||||
冷却 | Corsair iCUE H150i RGB PRO | Noctua NH-D14 | Thermaltake Water 3.0 Riing Edition 280 | Corsair iCUE H150i RGB PRO | ||||
電源 | Seasonic FOCUS PX-750 | Seasonic SS-620GB | Seasonic FOCUS PX-750 | |||||
ケース | Thermaltake Core V71 | Phanteks Evolv Shift X | Thermaltake Core V71 | |||||
OS | Windows 11 | Windows 11 | Windows 11 |
次にAMD環境。5950XのPBO+COは、PBOを有効にしてさらにCurve Optimizerを使って性能向上を図ったもの。PPTは200W。
「R7 5800X (偽)」は5950XをBIOSから1CCDのみ有効とし8コアCPUとして疑似5800Xとして動作させたもの。
CPU | R9 5950X | R7 5800X (偽) | R7 3700X | |
---|---|---|---|---|
定格 | PBO+CO | 定格 | 定格 | |
コア数 | 16C/32T | 8C/16T | 8C/16T | |
L2 Cache | 8MB | 4MB | 4MB | |
L3 Cache | 64MB | 32MB | 32MB | |
Boost | 5.0GHz | 5.0GHz | 4.4GHz | |
OC | Default | PBO+CO | Default | Default |
Core Voltage | Auto | Auto | Auto | Auto |
PPT | 142W | 200W | 142W | 88W |
TDC/IccMax | 95A | 150A | 95A | 60A |
EDC | 140A | 190A | 140A | 90A |
Offset | +200MHz | |||
CO | -10/-15/-25 | |||
Uncore | 1800MHz | 1800MHz | 1800MHz | |
メモリ | DDR4-3600 2ch | DDR4-3600 2ch | DDR4-3600 2ch | |
メモリ容量 | 16GBx2 | 16GBx2 | 8GBx2 | |
タイミング | 19-20-20-40-1 | 19-20-20-40-1 | 20-23-23-45-1 | |
メモリ FCLK | 1:1 | 1:1 | 1:1 | |
マザー | Gigabyte B550 AORUS Master | Gigabyte B550 AORUS Master | Asrock X570 Steel Legend | |
冷却 | Fractal Design Celsius+ S28 Prisma | Fractal Design Celsius+ S28 Prisma | Noctua NH-D14 | |
電源 | Seasonic FOCUS PX-750 | Seasonic FOCUS PX-750 | ENERMAX EPM600AWT | |
ケース | Fractal Design Define 7 Compact LightTG | Fractal Design Define 7 Compact LightTG | Antec P100 | |
OS | Windows 11 | 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分実行して平均をとるモードを使用している。
12900Kは5950Xの定格をしっかり上回る性能だが、PBOを使用した5950Xには及ばない感じ。
過去のIntel製品と比べると4年前のCore-Xシリーズの7980XE(18コア)やわずか半年前のRocketlake(11700K)を完全に過去のものとする性能で、なんと11700Kの倍以上のスコアとなっている。また、12900KのE-core無効時を見ると、それでも11700Kの1.5倍になっていて、GoldenCoveコア(P-core)がいかに強化されているかがうかがえる。
E-core無効と有効とを比べるとスコアが約1.5倍になっていて、E-coreの寄与が大きいこともわかる。
シングルスレッドのほうを見ると、12900Kのシングルスレッドはついに2000を超えており、Rocketlakeからは大きくスコアが向上している。12900Kのクロックの高さも相まってシングルスレッドは5950Xにも圧勝していて、GoldenCoveコアの優秀さが発揮されている。
E-core無効とするとシングルスレッドが落ちてしまうのがちょっとよくわからないが、E-core有効時はE-coreで動作していたわずかなバックグラウンド処理がP-coreで動く分、クロックが上がりにくくなるのかもしれない。
R23のマルチスレッドで微妙に簡易水冷のほうが速くなっているが、それ以外はほぼ変化なし。

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

R20/R23と比べると、なぜかi9 12900Kのスコアが少し悪い。12900Kは5950X定格の近いところまで伸びているが、やや低いことがわかる。低電圧化でスコアが落ちてしまうのは謎。

7zip 19.00
7zipはなぜかRyzenが圧倒的に強く(キャッシュの量とかの問題?)、Rocketlakeからはだいぶ良くなったとはいえ12900Kは5950Xに完敗。なんならついでに7980XEにも追いつけていない。キャッシュ量とかP-coreの数が重要なテストなのだろうか?
decompressはE-coreの有無でかなりスコアに差が出る一方で、compressのほうはほとんど差がないのも面白い。
ここでも簡易水冷化前後でほぼ差はなし。

y-cruncher 0.7.8 9507
SIMD-fpを酷使しつつメモリ帯域も重要とされるy-cruncher。この表だけ単位が計算時間なので値が小さいほど速い。
ここではAVX512が使用でき、メモリ4chの7980XEがトップ。AVX512が使えるはずのRocketlakeがなぜかいまいちなのだが、それと比べると12900Kは大幅に高速化している。それでも、5950Xには及ばない感じ。
ただ、他所のベンチマークを見ると、このアプリではDDR5効果が大きいらしいので、DDR5使用なら12900Kはもっと頑張れるのかもしれない。
ここでも簡易水冷化前後でほぼ差はなし。

x264
本題のx264。グラフがとても長いのは許してほしい。
Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x264guiExで出力。
基本的に12900Kは定格のRyzen 5950Xと同等ぐらいのようで、プリセットによって微妙に速かったり遅かったりしている。ただ、PBO有効の5950Xには及ばない模様(といってもさほど大きな差ではない)。
E-core無効時と比較するとultrafastを除き大きな速度差があり、E-coreの効果が大きいことが確認できる。
Rocketlake(11700K)は大変悲しい感じで、重めのプリセットでは2倍弱の差をつけられている。まあ半年でAlderlakeが出るのがわかっていたとはいえ、ここまで差があると存在意義が…。
ここでも簡易水冷化前後でほぼ差はなし。

x265
次にx265 8bit。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、x265guiExで出力。
これもほぼ傾向はx264と同じだが、12900Kがx264と比べるとやや伸びが悪い印象。E-core無効時と比較するとx264の時と比べて性能差が小さく、E-coreがx265を苦手としているのかもしれない。その結果、特に軽めのプリセットではより5950X有利という感じに見える。また、オーバークロックした7980XEが結構頑張っていて、12900Kの近いところまで来ている。
x265は簡易水冷化で若干高速化している気がする。ただ、ごくわずかで大きな差ではない。

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

SVT-AV1
svt-av1(8bit)。Aviutlでmpeg2 1080p 5203frame(sample_movie_1080p.mpg)をlwinput.auiで読み込み、svtAV1guiExで出力。
これは比較的Alderlake 12900Kが強く、ほとんどのプリセットでPBO有効の5950Xよりも速い結果になっている。
ここでも簡易水冷化前後でほぼ差はなし。

最後にsvt-av1(10bit)。P4でも2fpsを超え、12900Kがかなり速い。すべてのプリセットでPBO有効の5950Xを上回っている。

終わりに
念のため、簡易水冷化の効果を確認した。
結局、簡易水冷化の前後でスコアに差はほとんどなかったが、低電圧化した状態では12900Kが空冷でぎりぎりThermal Throttolingを起こさないぐらいにはなっていたので、まあ妥当な結果といえると思う。
ただ、簡易水冷化の意味がなかったかというとそんなことはなくて、CPU温度を90℃以上行ってしまうことがあったのを80℃以下に抑えられるようになった。しかもそれをファンの回転数をかなり下げた状態でそんな感じなので、エンコーダ中でもかなり静かに運転できるようになったので、簡易水冷化してよかったと思う。
ちなみに簡易水冷の3連ファンの回転数はCorsairのiCueからの制御ではなくて、マザーボードから制御させているけどこんな感じ。80℃で60%としても十分冷えるようだ。(そもそもCorsairの簡易水冷ファンの100%は2000回転を超えるのですごくうるさい)
