BIOSで積層したCCDのコントロールをする手法をとる?
処理する命令を振り分ける
IntelがPコアとEコアという特性の異なるコアを混載して、性能と省電力性をコントロールする手法を採ったのが、第12世代Alder Lakeからだが、このAlder Lakeは単体では効率良く性能を引き出す事はできないとして、IntelはコアにIntel Thread Directorなる仕組みを組み込み、そこで処理するスレッドを選択、より効率のよいコアで処理させるという方法を採った。基本的には高効率コアであるPコアをなるべく残し、急にパワーが必要になった処理に向けて準備している事が多く、繰り返し処理の多いものなどはEコアに処理させるという流れらしいが、そうした処理の優先順位と処理するコアの取捨選択が、ハイブリッドコアの性能をより引き出す為には必要な手段だという事は間違いがなさそうである。
一方、AMDはL3キャッシュをCCDに積層させ、より多くのキャッシュメモリを活用する事で処理全体の速度を向上する方法を採った。だが、CCDを2つ搭載するRyzen9に関しては、積層CCDは1CCDのみでL3キャッシュを積層したCCDとそうでないCCDが1つのダイの上に乗る仕組みを採った。これは積層させたCCDは熱をある程度制限する必要がある事から、クロックをできるだけ上げられないという制約からこのような仕組みを採ったとの事で、この事から積層させたCCDとそうでないCCDで処理の方向性が変わってしまう事を意味した。
どういう事かというと、キャッシュメモリによって処理が効率よくなる場合と、単純にコアクロックを上げないと処理効率が上がらない場合があるからで、Intelのハイブリッドコアのように、処理させるプログラムをどちらのCCDで処理するかで全体の性能が変わる事を意味している。
と言うことで、AMDもハイブリッド処理をさせるための仕組みが必要になったワケだが、どうも今の所その方法はOSに依存しない、BIOSによるプログラムの振り分けで実現しようとしているのかもしれない。
beta BIOS
ASUSがX670マザーボード向けのbeta BIOSを公開したようで、それらはX3D系コアに対応したものらしい。
さらに、搭載された機能として、X3Dコア(L3キャッシュを積層させたコア)の制御を自分で行えるようにする機能のようで、非ゲーム用途時にX3Dコアの優先順位を下げ、通常のCCDを使用する事によってコアクロックをブースト、最大5.7GHzのブースト周波数を実現する事ができるように設計されているようだ。
但し、これらが実際に上手く動作したのかまでは今の段階ではわからないし、どうも制御できるのはX3Dコアのみという事らしいので、実際の動作報告がないと、まだわからないという領域の話のようだ。
今の所、X3Dコアのみで構成されるRyzen7 7800X3Dに関しての話は出てきていない。もともと発売がRyzen9 7950X3Dや7900X3Dよりも発売が後ろにあるためだろうが、7800X3DはX3Dコアのみで構成されているため、こういった処理そのものが不要なため、X3D仕様のRyzenの性能を推し量るには、Ryzen7 7800X3Dが最も適している。
具体的な性能がどの程度になるのか、とても気になる所である。
Ryzenのスレッドスケジュール
2つのCCDを搭載するRyzen9は、何かと問題が多いCPUだという話は過去からある。
もともとCCD0とCCD1(各CCDは0と1で数えられる)は別のシリコンダイという事もあり、そのクロック特性が異なっている事がある。なのでCCD0ではよりクロックが高くなってもCCD1ではそこまでクロックが上がらない、なんて事もあり、スレッドスケジュールが上手くいなかいと処理にもたつきが出たりする事があるようだ。
また、私はしらなかったが、もともとWindows OSに組み込まれるスケジューラ(ドライバ)が存在しているようで、それをONにした時としなかった時で性能が異なるらしい。
つまり、AMDからするとOS制御のスケジューラでも上手く処理できないという事を見越して、BIOSによるX3Dコアの優先順位変更という手法を考え出したのかもしれない。
どちらにしても、マルチコアの初期やヘテロジニアスコアの初期の頃のように、こうした複数のコアを上手く使っていく手法というのは、時間を掛けて熟成させていかないと駄目なのかも知れない。
ほどぼどに高性能に使うには
ここまでの話で、ちょっと考えてみた。
何かに特化させる使い方なら、こうしたX3Dコア製品を選ぶ意味もあるかもしれないし、またRyzen9のように複数のCCDを搭載した製品を使う意味はあるかもしれないが、消費電力のバランス、汎用性、発熱などの全ての要素を一番バランス良くとった高性能品は、ひょっとしてRyzen7 7700Xなのではないか? という事である。
いや、Ryzen7 7700でもいいのだが、1つのCCDで8コア搭載している通常のスタンダードコア製品がもっとも悩まずに性能を出せる、という事ではないかと思えてくる。
もちろん、処理の傾向とスケジューラがバッチリハマれば、CCDを複数搭載したコアが強いというのは判るし、数というパワーで押し切る事でもRyzen7 7700系を超える性能を出す事は判っている。
だがそれは果たして電力効率でいうと高いと言えるのか?
これらを考えると、効率よく動作し、その効率に比した性能として高いのは、Ryzen7 7700系のように思えてならない。
もっとも、Ryzen7 7800X3Dがどういった傾向の性能を見せるかが見えていないてので、これが見えてくるとまた話は変わってくるのかもしれない。
しかしながら、CPUの微細化が進めば進むほど、スイートスポットの温度は上がり、積層コアの剥離が心配される。X3Dコアのクロックが上げられないのは、この熱の問題があるからとされている。
積層技術ももちろん進化して、より熱に強いものになっていくとは思うが、基本クロックが上げられないコアである事は代わらないだろうから、キャッシュで性能が伸びるものとクロックで性能が伸びるという傾向のバランスがどこかで変わってくれば、本当に処理の速いコアはまた変わるのかもしれない。
ASUS X670 New Beta BIOS 0921 (AFESA 1005C)
Adds for x3d
dynamic ccd priority switch with core flex, os / driver agnostic so win10 win11 okhttps://t.co/H4btWNtlfD pic.twitter.com/D6L5umbXSg
— HXL (@9550pro) February 21, 2023