米Intelは11月11日、かねてから同社が開発中であることを広言していたServer GPUを発表した。これに関してオンラインの形で事前説明会が行われたので、この内容をまとめてご紹介したい。

  • IntelサーバGPU

    Photo00:Intelが開発中のServer GPU

Xe Update

まずはおなじみRaja Koduri氏によるXe全体のUpdateが説明された。Xeそのものは以前こちらで説明した通りあるが、すでに発表済のTiger Lakeと、11月2日に発表されたIris Xe Maxを組み合わせる場合、PCIeではなく(いや物理的にはPCIeを流用しているのかもしれないが)独自のDeep Linkと呼ばれるInterconnectが使われることが明らかにされた(Photo01)。

  • IntelサーバGPU

    Photo01:Deep Linkの詳細は当然ながら不明。ひょっとするとCXLを前倒しで導入している可能性も無くはないが

次いで現状の製品動向。そんな訳でTiger LakeとIris Xe MAX GPUはすでに出荷済みであるが、これに続きサーバー向けのXeHPが現在サンプル出荷中。そしてエンスージャスト向けGPUであるXe HPGについては、すでにLabレベルでは稼働している事が明らかになった(Photo02)。

  • IntelサーバGPU

    Photo02:ハイエンドのHPC向けであるXe HPCことPonte Vecchioはまだ開発中との事

oneAPI Update

次がoneAPIの話。oneAPIの話は以前の安藤先生の記事が詳しいが、端的に言えば従来はプロセッサ別に異なるライブラリやミドルウェア・フレームワークを用意していた(Photo03)のをUnifiedする(Photo04)という事になる。

  • IntelサーバGPU

    Photo03:まぁCPUとGPU、FPGA、DPUなどですべて開発ツールもAPIも異なっていたから、これは当然である

  • IntelサーバGPU

    Photo04:ちなみに0.6 SpecのoneAPIはOpenCLに皮を被せただけ、という格好であまり期待できる感じではなかったが

そのoneAPIもついに1.0がリリースされ、広く利用可能になったとする(Photo05)。

  • IntelサーバGPU

    Photo05:https://www.oneapi.com/にドキュメントやソース、さらにインプリメンテーションまで公開されている。ちなみにIntelによるoneAPIのインプリメント以外に、NVIDIAのGPU向けとかoneAPI Open Source Projectも存在する

今年の12月には"Gold"バージョンのインプリメントもリリース予定だ(Photo06)。

  • IntelサーバGPU

    Photo06:このGold VersionはProduction Qualityのものが提供されるとの事

そのoneAPIだがCore libraries/tools(Photo07)に加え、HPC ToolkitやIoT Toolkit、Rendering Toolkit(Photo08)、さらにAI Analytics ToolkitやOpenVINO Toolkit(Phoot09)なども用意され、oneAPI単独では足りない特定用途向けのチューニングを容易に行えるとする(Photo09)。

  • IntelサーバGPU

    Photo07:VtuneとかAdvisorまでCore toolsに入っているのはちょっと驚き

  • IntelサーバGPU

    Photo08:IoT Toolkitは要するにLinux向けの移植を念頭に置いたものということに見える

  • IntelサーバGPU

    Photo09:関係ないが、OpenVINOは将来的にoneAPIに統合されるのかと思ったが、これを見る限りまだちょっと時間が掛かりそうな感じだ

デモとして、CPU+GPUの環境において、まず自動車の認識というAI InferenceをCPUを利用して実施(Photo10)。

  • IntelサーバGPU

    Photo10:右のソースコード、カーソルの行が“device_name = 'CPU'”になっているのが判る

次いでこれを"XeHP"に書き換えると、今度はGPUで実施できる、という例が示された(Photo11)。他の行の変更は一切なく、要するにoneAPIを利用するとCPUとGPUが等価に扱えるという事が示された形だ。

  • IntelサーバGPU

    Photo11:device_nameを“XeHP”に書き換えて再起動しただけ。それはいいのだが、見た限りそれほど高速化されているようには思えなかったのがむしろ問題な気も

Datacenter Software&GPU

次がサーバー向けGPUのソフトウェア戦略とサーバー向けGPUの話。Intelとしては、サーバー向けGPUに関しては、Windowsだけでなく積極的にLinuxをサポートする方針を明確にした(Photo12)。

  • IntelサーバGPU

    Photo12:ドライバも複数バージョン選べるし、サンプルコードをGitHubに公開するといった具合に、妙にオープン度が高いが、これの理由は後述

またOneAPIのLevel Zero(言ってみればHAL:Hardware Abstraction Layerに近い)を利用して、例えばレンダリングをCPUだけでなくGPUやFPGAにもオフロードできる仕組みを提供するとしている(Photo13)。

  • IntelサーバGPU

    Photo13:Level ZeroはoneAPIの一部であり、一番ハードウェアに近い部分とoneAPIのI/Fをつかさどる格好になる

さて、なんでLinuxが重要かという話であるが、特にAndroidベースのゲームが、実際にはサーバー側でレンダリングされてその結果をクライアントに送り出しているというケースが多いためである(Photo14)。

  • IntelサーバGPU

    Photo14:このUsage Modelは、昨年のArchitecture Dayでは話題にならなかった

もちろん現時点でまず要求されているのCDN向けである。例えばライブストリームなどのハンドリングではリアルタイムでエンコードのパラメータを変えつつ、しかも複数種類のエンコード/デコードが必要であり、XeのMedia Engineはこうした用途に最適という話である(Photo15)。

  • IntelサーバGPU

    Photo15:XeのMedia Engineは従来比で2倍のスループットを実現しており、CPUでやるよりもはるかに効率が良いので、Server GPUを複数搭載することで1台のサーバーで多数のストリームを同時にハンドリングできる、という話であった

もう1つは上で書いたゲームである。要するにコンテナの形でAndroidを動かし、これがGPUを利用してレンダリングを行って、クライアントに送り出すという用途である(Photo16)。

  • IntelサーバGPU

    Photo16:もちろんWindows Server上で頑張って同じ仕組みを作る事は可能ではあるが、どう考えてもLinuxで動かした方が楽である

この2つの用途に向けて、今回発表されたのがServer GPUである(Photo17)。

外部メモリはLPDDR4 8GBというちょっとおとなしいものだが、Server実装なので省電力性とコストを重視したものと思われる。ちなみにIntelは純粋にこのServer GPUだけを提供しているが、中国H3C TechnologiesがこのServer GPUを4つ搭載したボードをすでに開発している(Photo18~19)。

  • IntelサーバGPU

    Photo18:型番はXG310だそうだ。ただこれを外販するかどうかは説明が無かった

  • IntelサーバGPU

    Photo19:PCIeスイッチ経由で、4つのServer GPUがぶら下がっているのが判る。メモリチップはそれぞれ4つずつである。1スロット厚というあたり、消費電力はかなり控えめなのだろう

説明によれば、ARENA of VALOR(https://www.arenaofvalor.com)のレンダリングにおいて、このXG310が1枚で30fpsのストリームを60本、2枚で120本生成できるとした(Photo20,21)。

  • IntelサーバGPU
  • IntelサーバGPU
  • Photo20,21:1台のサーバーにXG310を4枚装着するのが通常の構成なので、つまり1台のサーバーで240ユーザーを賄う事が出来るという訳だ

ちなみに現時点で国内へのServer GPU投入の時期などは不明である。