2020年8月にバーチャルで開催された「Hot Chips 32」において、Intelは新GPU「Xe」の詳細を発表した。同社の第1世代Intel Graphicsはディスクリートだったのであるが、その後チップセットになり、2011年の第6世代からはCPU内蔵型のGPUになってしまった。

  • Xe

    初期のIntel Graphicsはディスクリートであったが、2世代目からはチップセットになり、6世代目以降はCPUに組み込まれる形態になってしまった。しかし、ここでXeの登場である (このレポートのすべての図は、バーチャル開催となったHot Chips 32の発表ビデオを画面キャプチャしたものである)

ハイエンドのディスクリートGPUで大きな売り上げをあげているNVIDIAやAMDを横目で見ながら、GPUでビジネスをする機会を虎視眈々と狙ってきたIntelが打ち出した新GPU戦略がXeである。

4つのマイクロアーキテクチャで構成されるXe

Xeは単一のGPUアーキテクチャであるが、次の図のように、4つのマイクロアーキテクチャからなっている。4つのマイクロアーキテクチャは、上の方から「XeHPC」、「XeHP」、「XeHPG」、「XeLP」と名付けられている。

HPCはスパコンなどの科学技術計算やAIに使われるハイエンドのGPUで、HPは高性能のデータセンタ向けのGPU、HPGはコアゲーマーなどのヘビーユーザ向けのGPU、LPは低電力のGPUボードや内蔵GPUに使うという使い分けのイメージである。

  • Xe

    Xeアーキテクチャは1つのGPUアーキテクチャであるが、用途別に、上位から順にHPC、HP、HPG、LPという4つのマイクロアーキテクチャの製品が作られる。HPCはエクサスケールのスパコンに使われるもので、HPはデータセンタやAI用である。また、HPやHPGはコアゲーマーからミッドレンジのユーザ向けでもある。LPは低電力で、エントリ用のGPUボードや、現在と同じようにCPU内蔵GPUとして使われる。この4つのマイクロアーキテクチャでTFlopsからPFlopsの性能領域をカバーする

次の図はXe GPUのハイレベルのアーキテクチャを示す図で、一番上に、コマンドを処理する「Command Front End」が描かれている。その下に、3D/Computeスライスとメディアスライス、メモリファブリックと書かれた3つのハイレベルの大きな箱が描かれている。3D/Computeスライスはジオメトリシェーダを構成する演算器を中心とするブロック、メディアスライスは、ピクセルシェーダなどを構成する部分である。メディアファブリックと書かれた部分は、その中にキャッシュとIOが描かれており、他の部分が使うデータの一時格納と、GPUチップ外のDRAMメモリとのデータのやり取りを担当する部分である。

  • Xe

    Xeアーキテクチャの全体図。3D/Computeスライス、メディアスライスとメモリファブリックが主要なコンポーネントである

ユニファイドシェーダの中心をなす3D/Computeスライス

次の図は3D/Computeスライスの中身を示す図で、16個のEUアレイを含んだサブスライスが並んでいる。そしてサブスライスの上にはジオメトリ、ラスタ、ピクセル ディスパッチという固定機能ブロックが描かれている。そして、サブスライスの下にはピクセルバックエンドと書かれたブロックが並んでいる。この部分にはカラーのブレンドやZバッファ処理などの機能が入っていると考えられる。

ここで、面白いのが、ジオメトリ、ラスタ、ピクセル ディスパッチ、ピクセルバックエンドのブロックが破線で囲まれたオプションのブロックとなっている点である。これらのオプションが搭載されていないといわゆるGPU的な描画は出来ないのであるが、Intelは計算オンリーのXeも視野に入れているのであろうか?

  • Xe

    3D/ComputeサブスライスはGPUの計算パワーの中心となる部分で、Xeのサブスライスは16個のEUを含む。サブスライスの数は用途に応じて変わる。それ以外に、ジオメトリの処理ブロック、ラスタライザ、カラーブレンド、Zbuffなどの固定機能のブロックを含む

GPU機能をまとめたXeサブスライス

グラフィック向きの機能を担当するのがXeサブスライスである。このサブスライスは、16個のEUにロード/ストアユニットが付き、スレッド発行、命令キャッシュとL1/テクスチャキャッシュ、ローカルメモリが含まれている。そして、オプションとして、サンプラ、メディアサンプラ、レイトレースユニットが付けられるようになっている。

  • Xe

    Xeサブスライスには、命令キャッシュ、スレッド発行、L1やテクスチャキャッシュ、ロードストアユニットと、高性能ではないが、一通りのGPU機能が揃っている。したがって、Xeサブスライスを1個入れて、後は性能を高めたいサブスライスを必要個数入れるというアプローチが可能である

計算処理を担当するEXecution Unit

次の図は、EUの内部構造を示すものである。XeのEUは、スレッド制御、レジスタファイル、分岐ユニット、センドユニットと複数の命令発行ポートを持っている。そして、ベクトル実行パイプに組み込む各種演算器を備えている。演算器は浮動小数点、整数、拡張演算、オプションでFP64(倍精度浮動小数点演算)や行列拡張演算器が装備できるようになっている。

  • Xe

    EUはスレッドコントロールや分岐ユニットを含み、INT、FP、拡張演算器を持つ。また、オプションで、FP64演算器やマトリクス拡張演算器を組み込むこともできる

ビデオなどのメディア処理を受け持つメディアスライス

そして、特別な位置づけのメディアスライスがある。メディアスライスには、マルチフォーマットのメディアのエンコード、デコードを行うMFX機能ユニット、スケーリングやフォーマット変換を行うSFC機能ユニット、ビデオの画質を改善するVQEエンジンなどがある。

  • Xe

    メディアスライスは各種メディアのエンコード、デコードやスケーリング、形式変換ができる。また、VQEはビデオの画質を改良するエンジンである

情報の流れを処理するメモリファブリック

そして、メモリファブリックは各種のスライスやL3キャッシュ、Ramboキャッシュなどを接続するコヒーレントなインタコネクトである。さらに、メモリファブリックにはPCI Express、ディスプレーポート、メモリコントローラなどが接続される。そして、メモリコントローラからはDDR4やGDDR6、HBM2などのメモリが接続できる。

また、Xeリンクを通して他のXeチップに接続して複数タイルのXeシステムにすることもできる。

  • Xe

    メモリファブリックは内部にL3キャッシュや大容量のRAMBOキャッシュを持ち、各種のスライスと外部メモリやPCI Expressとの間をコヒーレントに接続する

次の図は4個のXeタイルをEMIBブリッジ(図中の白い部分)で接続してマルチタイルのXeを作った例である。このような同一パッケージ内の複数タイルの結合は、パッケージングを行う時のオプションとして実行することができる。

  • Xe

    4つのタイルを1つのパッケージに搭載し、EMIBで接続して4タイルのGPUを作っている例。接続するかどうかはパッケージする時に決めても良い

XeLPは1スライスだけの低電力システムで、CPU内蔵型のGPUとして使われる場合も、CPUとは別チップのディスクリートGPUとして使われる場合もある。XeHPGはディスクリートのゲーミング用GPUなどをターゲットにしており、GDDR6メモリを使いレイトレーシングを実行するような使い方ができる。

XeHPはマシンラーニングやメディアワークステーションのような使い方を想定しており、HBM2eメモリの使用や同一パッケージに1-4タイルを接続するような使い方を想定している。

XeHPCはスパコン用で、高バンド幅のHBM2eメモリを使い、Xeリンクで複数タイルを接続する。そして、パッケージ内ではFoverosやEMIBを使って複数タイルを接続する。これに加えて小規模のシステムでは1-2タイルをパッケージに入れるという形態もあり得る。

Tiger Lake CPUの内蔵GPUとしての使用が先行

現状では、Tiger Lake CPUに搭載されるXeLPが製造中というステージにあり、一番、商品化に近い。その次がエクサスケールのAuroraスパコンに使用されるXeHPCのPonte Vecchio GPUで、これは製造中のステージにある。XeHPとXeHPGはまだ、設計部門の手を離れていない状態である。

次の図はXeLP GPUを内蔵したTiger Lake CPUのチップ写真である。GPUの面積はチップ全体の1/3程度であり、比較的小さいという印象である。これで前世代のGen 11 GPUと比べて、同一面積、同一電力で比較して、3DやComputeの性能は約2倍に向上しているという。

  • Xe

    XeLP GPUは、Tiger Lake SoCのチップ面積の1/3程度で比較的小さい印象である。しかし、3D/Computeの性能は、同一面積、同一電力で比較すると前世代GPUの2倍程度の性能になっている

そして、XeLP GPUは最大96個のEUを搭載しており、これは前世代の1.5倍にあたる。また、最大48テクセル/クロック、24ピクセル/クロックのピクセル処理が可能になっており、前世代に比べて1.5倍の大きさのエンジンになっている。

  • Xe

    Tiger Lakeに搭載されたXeLP GPUは、前世代の内蔵GPUの1.5倍の性能のグラフィックスエンジンになっている

XeLPは動作範囲が拡大し、高効率

次のグラフは横軸が電源電圧で、縦軸がクロック周波数で、動作領域をプロットしたものである。これを見ると、XeLP GPUは現在のGen 11に比べて、動作する電源電圧範囲が広く、動作するクロック周波数範囲も広くなっている。そして、同じ電源電圧でみると、最大クロック周波数が高くなっている。

これはXeLP GPUの設計に当たって、パイプラインの切り直しを行って動作範囲を広げたことと、ボトルネックの解析で改良すべき点を洗い出して対応したことが効いている。

  • Xe

    XeLP GPUではパイプラインの切り直しやボトルネックの洗い出しを行って、動作範囲を広げ、Gen 11では最大1.1GHz程度までしか動作できなかったが、XeLPでは1.7GHz以上まで動作するようになっている

Tiger Lakeに搭載されるEUはソフトウェアスコアボーディングを使う高効率のスレッド制御を行っており、2つのEUはロックステップで完全に同期して動く。

演算部は8スレッド幅のINTとFPの演算器を持ち、INT32なら1サイクル1演算×8、INT16ならその2倍の演算を実行できる。また、拡張演算器は1サイクル2演算を実行できる。

  • Xe

    Tiger LakeはXeのEUを2個搭載。FPとEMはGen 11 EUの2倍、INTは4倍

Tiger Lakeのメモリシステムは、L1データキャッシュは新設計となり、L3キャッシュの容量は最大16MBに拡張された。GTIのバンド幅が倍増されL3キャッシュへの出し入れが速くなっている。そして、データ圧縮した状態でL3キャッシュに格納するので、実質的なバンド幅は圧縮分だけ向上している。

  • Xe

    L3キャッシュが最大16MBに拡張された。また、GTIのバンド幅が倍増され、さらに、圧縮形式で読み書きするので実効的なバンド幅は、圧縮分だけ向上している

Tiger Lakeのメディアエンジンは、Gen11と比べると最大2倍のエンコード/デコードスループットを持っている。AV1のデコードの加速、HEVCのスクリーンコンテントコーディングのサポートなどを行い、4K/8K60の表示に対応している。また、HDR Dolby Visionの再生にも対応している。

  • Xe

    Tiger Lakeのメディアエンジンは、Gen 11と比較すると、エンコードやデコードのスループットが最大2倍になっている

IntelはHot Chips 32での発表時に10ストリームのHEVC 4Kビデオを並列にトランスコードするデモを見せた。見た感じでは、まったくスムーズに処理出来ていた。

  • Tiger LakeのXeLP GPUによるHEVC 4Kビデオ 10ストリーム並列のトランスコードのデモの様子A@Xe