錦です。
Alder Lakeが登場してほぼ半年。怒涛のように過ぎ去った新プロセッサシーズンも次のウェーブに差し掛かろうとしています。今回は、Alder Lakeで採用された「Intel Hybrid Technology」について、個人的にまとめます。
ヘテロジニアスマルチコア
まずはこの技術の大まかな縁取りだけ捉えます。ざっくり説明すると「2つの異なるアーキテクチャを持つCPUコアが同じシステムで動作してる」ということです。通常、同じシステムで動作するプロセッサというのは、同じアーキテクチャでないと困ることがあります。例えば、命令セットのサポートがプロセッサで異なっていれば、かなり大きな問題になりえます。また、アーキテクチャが揃っていても、SKUが異なれば電圧の仕様や性能自体が異なってしまい、制御が複雑になってしまいます。
なので、基本的にプロセッサ自体のスケールというのは、同じアーキテクチャ、同じ仕様で動作するコアをスケールするという形で行われるのが一般的です。こういったCPUを「ホモジニアスマルチコア」と呼びます。このホモニジアス・マルチコアに対して、今回話す主題となる「ヘテロジニアス・マルチコア」というのは異なります。
このヘテロジニアスマルチコア、日本語名では異種混合マルチコアとも呼ばれるものですが、こちらは複数種類のCPUアーキテクチャを搭載したマルチコアプロセッサです。
ヘテロジニアスマルチコアの代表例として知られるのは、現在多くのPlayStation 3のベースとなる「Cell」や、スマートフォン、タブレットのベースとなっている「Arm」の「big.LITTLE」です。Cellは1基の高性能な汎用コアに8基のシンプルなコアを組み合わせたもの、big.LITTLEは高性能コアと高効率コアを組み合わせて効率を良くしたものです。
コアの違い
そもそも、コアの使い分けの種類とは何なのでしょうか。現代のハイブリッドプロセッサはだいたい、性能コアと効率コアを組み合わせたもの、それに更に優先的なプライマリコアを載せたものになっています。
では、性能コアと効率コアそれぞれの特徴を見ていきます。
性能コア
性能コアは基本的に「優先的に実際の性能を高める」コアであり、こちら側のコアの性能がプロセッサ自体の性能となります。性能コアは、慣例的にトランジスタ数が多く、少しの処理で動作するにもクロックがそれほど高くなくとも消費電力が高まるという欠点があります。また、消費電力はそのまま発熱量ですので、発熱しやすく、またトランジスタ数が多いということは面積も大きいということから、面積も消費電力(発熱)も大きいコアということもあり、モバイル向けではコア数を増やしにくいのも欠点です。
ただその代わり、クロックあたりの性能が高く、性能の上限が高いというメリットがあります。
Intelの場合、性能コアには従来の「Core」ブランドに採用されたアーキテクチャの系譜を採用します。Core系統のアーキテクチャは基本的にIntelのCPUアーキテクチャの中で上位のものであり、機能・命令セット・性能が上位です。基本的には、電源周りや冷却周りがしっかりとしたデバイス向けのプロセッサという扱いであり、消費電力はある程度多めで、ダイサイズも大きめなものになっています。
効率コア
対して効率コアは「高性能コアの補助的」コアであり、プロセッサ自体の性能を測るときあまり重要視されません。特に、負荷のかかるシングルスレッド処理の場合、完全に蚊帳の外になります。ただし、一定以上の性能を求められないため、トランジスタ数は少なく、たとえフルパワーで動作したとしても消費電力が少ないという利点があります。また、トランジスタ数が少ない・消費電力が低いということは、面積が小さく発熱も小さいことから、コア数を稼ぎやすいという利点です。
Intelの場合、効率コアには「Atom」ブランドで使用されていたアーキテクチャが採用されています。AtomはCoreに比べて効率重視のブランドとなっており、タブレットやスマートフォン、小型組み込みシステム向けのアーキテクチャになっています。そのため、Atomプロセッサというのは極端にダイサイズが小さい上、ファンレスモデルが主流ということもあり、面積も消費電力も小さい「効率コア」として採用されたわけですね。
Atomというとやはりそれに対して嫌悪感を抱く人も少なくないと思いますが、Intel Hybrid Technologyでは原則として、Coreプロセッサの補助的なプロセッサという位置づけなので、語弊を恐れずに言えば「物は使いよう」ということです。
ざっと両者を人で例えると、性能コアがいっぱいご飯を食べる元気で強い子、効率コアが少食だけど省エネな子という感じになります。
前述の通り、面積・発熱の問題もありますから、デスクトップやハイエンド向けノートなどの性能重視なプロセッサでは、性能コア数が効率コア数を上回ることが多いものの、電力効率やバッテリ駆動を重視するタブレット・スマートフォンなど向けのプロセッサでは、性能コア数が効率コア数を上回るという例は皆無です。せいぜい1:1になる程度でしょう。
コアの制御
「Intel Hybrid Technology」は"現代の"big.LITTLEに似たものになっています。現代のとしている理由は、big.LITTLEのコアの管理方法にはいくつか種類があるためです。今回の主題はこれじゃないので超ざっくりにまとめると
- 性能コアと効率コアを負荷状態に合わせて随時切り替えて使う(同時には使わず、性能コアのときは性能コアだけ、効率コアのときは効率コアだけみたいな感じ。すべてのコアが同時には動かない)
- 性能コアと効率コアを各1コアずつでペアを組ませて、そのペアの中でコアを切り替える(1.ほどコアの使い分けが強いわけではないが、同時に総コア数の半分しか動かない)
- 性能コアと効率コアをすべて同時に動かし、スレッドの負荷状態に合わせて割り振る。すべてのコアが同時に動作する。
となります。
Hybrid Technologyはその中で最も強力なものに類似しています。その方式とは3.です。3.の方式では、性能・効率のすべてのコアを同時に動かすことができ、またコアの構成もかなり柔軟になります。
3.をもう少し深く解説すると、性能コアと効率コアが混載されるプロセッサで、高負荷かつ優先的なタスクを性能コアに、低負荷で優先的ではないコアを効率コアに割り振ります。このとき、全てのコアは1コアとして扱われるため、コアをすべて駆動させることができます。
例えば、動画を編集している最中は加えられた変更をタイムラインに反映するなど、優先度が高い処理が多いため性能コアに積極的に処理させてリアルタイムの性能を高め、バックグラウンドで動くOSやファイルマネージャ、CPUによる各種のコントロールはメインのタスクに比べて優先度が低く、処理は軽量であるため効率コアに割り当てるという感じ。
こうすることで、比較的軽量な処理を少ない消費電力で行うことができる他、メインタスクが性能コアのリソースを独占できるというメリットがあります。
仮想的にハイブリッドもできるのでは?
余談です。
こういったコアの使い方はホモニジアスマルチコアでもできないわけではありません。具体的には、性能コア自体を増やして、制御で仮想的にいくつかのコアを効率コアに仕立てれば、場合によってすべてのコアが性能コアとして動かしたり、効率コアを増やしたり。。。みたいなこともできるわけですが、効率性はそこまで高くならない上、ダイサイズが大きくなるというデメリットがあるわけであまり褒められたわけではないのです。
Intelもそれに似たものとして「Turbo Boost Max 3.0」という技術を使用しています。やはり、同じアーキテクチャのコアで構成されたプロセッサでも、コアによってその性能差というのは若干生まれてしまいます。この技術では、クロックが上がりやすいコアを判断して、そのコアに電力などのリソースを集中させクロックを高めるということをします。
以上余談でした。
問題点
もろちん、こういったコアの構成には問題があります。性能コアと効率コアの特徴を話したところでオブラートに包みましたが、実際には性能コアは高価なアーキテクチャで、効率コアは安価なアーキテクチャであるという差があります。この差が生むプロセッサとしての差の例としては、性能や機能、命令セットがあります。
性能差については、このIntel Hybrid Technologyを採用するときにOSやIntel、そしてサードパーティ開発者がなんとか解決しましたが、命令セットの対応度合いを含めた機能差というのはどうしようもないのです。
Intel Hybrid Technologyの場合、この機能差についてCoreに合わせる部分と、Atomに合わせる部分で別れました。また、ラインナップによってもこれは異なります。これは、実際にそのプロセッサがどのグレードでリリースされるかという問題にも絡んで来るので今回はAlder Lakeでの対応をご紹介します。
Coreに合わせられた部分でいうと、I/O面。CPU自体がサポートするPCIeレーン数はAtom系統はこれまでせいぜい8レーンなど対応が脆弱でしたが、Alder Lakeでは20レーンとCore系統に合わせられています。その他、電圧操作、メモリサポートなどもCore系統に合わせられました。
Atomに合わせられた部分は命令セットです。Alder Lakeでは、Atomに合わせられて、サポートされた命令セットが前世代のRocket LakeやTiger Lakeから削られています。
Golden Cove |
Gracemont | |
---|---|---|
AES | ○ | ○ |
CLMUL | ○ | ○ |
RDRAND | ○ | ○ |
SHA | ○ | ○ |
TXT | ○ | ○ |
MMX | ○ | ○ |
SSE | ○ | ○ |
SSE2 | ○ | ○ |
SSE3 | ○ | ○ |
SSSE3 | ○ | ○ |
SSE4 | ○ | ○ |
SSE4.1 | ○ | ○ |
SSE4.2 | ○ | ○ |
AVX | ○ | ○ |
AVX2 | ○ | ○ |
FMA3 | ○ | ○ |
AVX-512 | ○ | |
AVX-VNNI | ○ | ○ |
TSX | ○ | |
VT-x | ○ | ○ |
VT-d | ○ | ○ |
このように、GracemontとGolden CoveでhAVX-512とTSXという命令セット部分で差があり、この差においてGolden CoveではなくGracemontに合わせられた結果、Intel Hybrid Technologyを採用した第12世代Alder Lakeでは、劣化が生じています。
第11世代と第12世代の違いをいかに示します(Rocket LakeとTiger Lakeでの命令セットのサポートの差はありませんでした)。
第11世代 | 第12世代 | |
---|---|---|
AVX | ○ | ○ |
AVX2 | ○ | ○ |
FMA3 | ○ | ○ |
AVX-512 | ○ | |
AVX-VNNI | ○ |
AVX-VNNIは決してAVX-512の代替になる命令セットではないので、Alder Lakeでは完全にAVX-512のサポートを削っています。AVX-512は機械学習を用いるワークフローや、エンコード部分で性能向上のために用いられている例がありますが、Alder Lakeでは廃止されています。
ただ、"技術的には"、AVX-512を使う処理をGolden Coveのみに担わせるという方式で対応させることは不可能ではなく、公式の方法ではありませんが、Eコアを無理やり無効化してAVX-512を動かすという手法もこの半年でうまれています(ちなみにIntelは物理的にAVX-512を無効化しようとしています)。
DRM問題
既に解決した問題ですが、Alder Lakeが初めてリリースされた2021年10月から年末年始にかけて、ゲームの著作権保護機能(DRM)が、PコアとEコアを別々のCPUとして認識し、不正防止のためにクラッシュするという問題がありました。
現在は修正されており、これはある種、最先端のテクノロジーを採用したがゆえの理由ですかね。立ち上がり段階はこういうもんです。
今後の展望
Intelは、今後もIntel Hybrid Technologyを活用していくことを明らかにしており、第13世代「Raptor Lake」では性能コアにGolden Coveのマイナーアップデートである「Raptor Cove」が、効率コアにはそのまま「Gracemont」を採用し続けることが明らかになっています。
そして、同社の野望は壮大で、ハイブリッドでモノリシックなダイから、いずれ、ハイブリッドかつマルチチップレットとなる「タイル構造」を採用することを既に明らかにしています。
この件についてはおってまたお伝えできると思います。