写真提供:マイナビニュース

写真拡大

●コグニティブコンピューティングに求められる処理能力とは?
COOL Chips 20において、IBM研究所のSystems Architecture and Design部門ディレクタのJeffrey Burns氏が基調講演を行った。「POWER9」はCognitive Computing(機械学習などを含む認知コンピューティング)を志向するプロセサであり、設計もそれに合わせたものとなっているという。

コグニティブ(認知)コンピューティングは、ディープラーニング、グラフ解析、ロボティックス、DSPなどを含む。画像の認識には1018(1Exa)Flops以上の計算が必要であり、複数言語のスピーチの学習には107時間以上の処理が必要である。

したがって、認知コンピューティングには認知アルゴリズムと機械学習のテクニックが必要であり、これらを端末側で実行することも必要となる。

一方、CMOS/シリコンテクノロジの高性能化は鈍化しており、要求される性能と比べると、何ケタも低い性能のものしか作れないという問題があるという。

認知コンピューティングではデータ量が鍵である。この、必要なデータ量は膨大である。例えば油田探査の場合、調査で得られるデータは15PBで、そのデータの処理には10カ月以上かかる。

また、遺伝子解析に基づくパーソナル化医療に対する期待は大きいが、遺伝子データは膨大で、大きな医療機関では1-2年間に100PB以上のデータが集まる。この解析には、大型クラスタだけでなく大規模SMP(Symmetric Multi-Processor:共通メモリのマルチプロセサ)も必要である。そして、高性能のファイルシステムも必要となる。

金融関係も4TB/日のデータが集まる。そして、1日に400Mトランザクションを処理する必要があり、トランザクションに対しては100ms以下のレスポンスが要求される。

このように、認知コンピューティングでは膨大なデータを高速で処理することが必要になる。

次のグラフはx86とPOWER、メインフレームのzシリーズプロセサのクロックの年次推移を示すものである。全体としてクロックは上がっているとも言えるが、微細化による性能向上だけでは認知コンピューティングの性能要求にはとても間に合わない。このため、業界はコア数を増やして性能をあげる方向になっているが、これも電力やチップ面積の制約があり十分ではない。

したがって、認知コンピューティングには専用のアクセラレータの接続と巨大データを扱える能力が必要であるという。

アクセラレータは特定の処理を、汎用コンピュータより大幅に効率良く(高速あるいは低電力で)処理することができるものである。いろいろなアクセラレータが可能であり、アクセラレータの実装や、システムにどのように取り付けるのかもいろいろな選択肢がある。

重要なことは、アクセラレータの開発コスト、アクセラレータハードウェアのコストと運営コスト、プログラマから見た使い勝手などがバランスした解になっていることである。

次のグラフの横軸は特に意味は無く、エネルギー効率の低い方から順に並べたものである。左側のマイクロプロセサは、汎用性は高いが、エネルギー効率はせいぜい0.1MOps/mW程度である。DSPやFPGAは中央の領域でマイクロプロセサの10倍程度のMOps/mWとなっている。そして、専用に設計されたハードウェアはFPGA/DSPに比べて100倍のMOps/Wが得られるという。

なお、Microsoftのデータセンターに使われているCatapultはFPGAベースのアクセラレータである。FPGAベースのアクセラレータは、専用ロジックと比べると性能は低いのであるが、処理ごとにFPGAを再構成して別の処理に使えるようにできるというメリットがある。可変性のあるFPGAが良いか、特定の処理にフォーカスしてカスタムLSIを作り、その処理だけを大幅に高速化する方が良いかは、データセンターの処理負荷に依存し、一概には言えない。

どこにどのようにアクセラレータを接続するかは、アクセラレータをアクセスするレイテンシやデータ移動のやり方、プロセサとアクセラレータの処理分担などに影響を与える。

その点で、ソフトの開発者やアクセラレータ使うシステムを運用する人たちは、密結合のアクセラレータを好む傾向がある。しかし、システム構成の自由度などの点から、緩やかな結合の方が望まれる。

●2017年後半に登場予定のPOWER9
○POWER9プロセサの概要

POWER9は、今年の後半に登場が予定されているIBMの次期プロセサである。14nmプロセスで作られ、コアやチップのアーキテクチャは将来のワークロードの処理も適するように作られており、認知コンピューティングの時代向けのプロセサであると銘打っている。POWER9はスケールアップ(大規模ノード)用のチップとスケールアウト(小規模ノードのクラスタ構成)用のチップが作られ、アクセラレータの接続機構も装備している。

POWER9はPOWER IS 3.0準拠の命令アーキテクチャを持ち、スレッド性能を強化したマイクロアーキテクチャのプロセサである。14nm FinFETプロセスを使い、配線は17層で、8.0Bトランジスタを集積している。そして、24個のプロセサコアと120MiBという巨大なNUCA(Non Uniform Cache Architecture)のL3キャッシュを搭載している。

また、NVIDIAのNVLink2.0、CAPI 2.0、OpenCAPIというアクセラレータ接続用のインタフェースを備えている。POWER8もアクセラレータ接続用にCAPI(Coherent Accelerator Processor Interface)を備えていたが、POWER8では、この機能が大幅に強化されている。

POWER9ファミリには、並列スレッド数が4のSMT4コアと、並列スレッド数が8のSMT8コアがあり、SMT4コアの場合は24コア、SMT8コアの場合は12コア搭載という仕様になっている。SMT4コアはLinux用であり、SMT8コアはPowerVM向けである。

しかし、どちらのコアを使ってもチップ全体での並列実行スレッド数は96スレッドで同じである。

さらに、POWER9プロセサには、2ソケット構成のスケールアウト用に最適化したバリエーションと96本の25Gbit/sリンクを使ってマルチソケットのシステムを作るスケールアップ型のバリエーションがある。スケールアウト型のチップは16枚のDDR4 DIMMを直結するようになっているが、スケールアップ型のチップはバッファチップを使ってDRAMを接続する構成になっており、スケールアウト型の2倍のメモリバンド幅と2倍の記憶容量を持たせることができる。

ということで、SMT4とSMT8それぞれにスケールアウト型とスケールアップ型があり、全体ではPOWER9チップには4種のバリエーションが存在することになる。

次の図の左端は、POWER8のSMT8コアのチップ写真である。POWER8の場合は8スレッドの実行資源は渾然一体に作られていたが、中央の写真に示すPOWER9のSMT8コアは4つのExecスライスと1つの命令処理部(ISUとIFU)で作られている。

そしてSMT4コアは2つのExecスライスと半分幅の命令処理部で作られており、POWER9の設計はモジュラーになっており、バリエーションが比較的容易に作れるようになっている。

そして、左の図のように、スケールアウト型のチップでは16枚のDDR4 DIMMを直結するようになっており、メモリバンド幅は120GB/sとなる。また、DIMMを直結しているのでアクセス時間が短いという特徴がある。

一方、スケールアップ型のチップではバッファチップを経由して、全体では2倍のメモリを接続できるようになっている。このため、メモリバンド幅は230GB/sとなり、CPUチップあたりの最大メモリ容量も8TBに達する。また、バッファチップにはRAS機能が組み込まれており、DRAMチップが1個故障しても動作を続けられるChipKillや、メモリチャネルが1ビット故障すると代替のレーンに切り替えるレーンスペアなどの機能がサポートされる。

なお、スケールアップ型のメモリは、バッファチップと多数のDRAMチップを1枚の基板に搭載したIBMカスタムのサイズの大きいDIMMとなっている。

スケールアウト型で言えば、2コアあたりに20way 10MiBのL3キャッシュスライスが付いている。このL3キャッシュは、IBM得意のeDRAMで作られており、通常のSRAMで作るよりも密度が高い。

12個のL3キャッシュスライスを合わせると3.072TB/sというバンド幅になる。12個のスライスは1つのキャッシュとして動作するが、スライス間の距離が長いので、アクセスする場所によってアクセス時間が異なるNon Uniformなキャッシュとなる。そして、7TB/s以上のバンド幅を持つスイッチでL3キャッシュと、メモリ、PCIe、アクセラレータ用のインタフェース、他のPOWER9チップの接続インタフェースなどに接続している。

右側のポンチ絵は17層の配線を示すもので、1〜5層は細い配線で配線密度を稼いでいるが、上層の配線は抵抗の低い太い配線で、電源線やクロック配線、長い信号線などに使われていると考えられる。

●POWER9の性能はどの程度のものなのか?
○POWER9プロセサの性能

次の棒グラフはPOWER8とのソケットあたりの性能比較で、浮動小数点演算アプリでは1.6倍弱であるが、グラフ処理アプリでは2.3倍程度、平均的には1.7〜1.8倍程度の性能となっている。

POWER9ではエネルギー管理も改善されている。コアがアイドル状態に移行するのに必要な時間は1/10に短縮されている。また、チップ上に作られたコントローラの制御でコアのクロックと電源電圧を制御することにより、50%の電力で80%の性能を出すことができるようになったとのことである。

また、各コアの電力消費を計算して、余裕がある場合は、その電力を優先度の高い処理を行っているコアにつぎ込んで、最大30%クロックを上げることが出来る。

○POWER9のアクセラレータ接続

POWOR9では、アクセラレータのサポートが大幅に強化されている。PCI Express 4.0を48レーン持ち、この部分のバンド幅は192GB/sとなっている。また、25Gbpsのレーンを48レーン持ち、この部分のバンド幅は300GB/sである。NVLink2.0やOpenCAPI 3.0のアクセラレータ接続は、この25Gpsリンクを使用する。また、NVLink2.0やOpenCAPI 3.0では、CPUのキャッシュとアクセラレータのCAPIメモリがコヒーレントになりデータ転送が自動的に行われるので、アクセラレータの使い勝手が向上する。

アクセラレータメモリをコヒーレントに制御するCAPIの制御機構はPOWER9チップに搭載される。CAPI 2.0はPCI Express 4.0を使うことにより、POWER8の4倍のバンド幅となる。OpenCAPIはコンソーシアムを作って他社にも採用を働きかけているオープン仕様のインタフェースである。

なお、この図では25Gリンクを使うOpenCAPI 3.0は200GB/s、PCIe4.0を使うCAPI 2.0は128GB/sと書かれており、前の図の300GB/s、192GB/sと異なる数字となっている。前のページの数字は、それぞれのリンクの最大転送速度で、このページの値は、CAPI 2.0やOpenCAPI 3.0のプロトコルオーバヘッドを考慮して、実質的に得られる転送速度を示していると思われる。

○まとめ

認知コンピューティングをサポートする能力の実現のためにはそれに特化したコンポーネントやアーキテクチャが必要である。

POWER9のコアやアーキテクチャは、これからのワークロードを考えて設計されている。そのため、アクセラレータを接続して使うヘテロジニアスなコンピューティングがやり易いように作られている。さらに、大量のデータを扱うためのバンド幅や能力を持っているなどの点で、認知コンピューティング用に開発されたCPUである。

認知コンピューティングのワークフローやアプリケーションは、今後、急速に進歩すると予想されるので、システムの柔軟性が重要である。専用のシステムは変更を行うのが大変であったり、変更を行うのに時間が掛かったりする。プログラマの使い勝手、アクセラレータの構造や接続ポイントを良く考える必要がある。と述べて、Burns氏は基調講演を締めくくった。

(Hisa Ando)