「NVSwitch」「DGX-2」「TensorRT 4」「ARM社との提携」といったAI関連の発表内容を中心に、GTC 2018の注目ポイントを紹介。そこから垣間見える、NVIDIA社の「AI戦略」を考える。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「deepinsider.jp」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
NVIDIA社は、2018年3月18日から22日まで、米国カリフォルニア州サンノゼ市で、同社の年次イベントであるGTC 2018を開催した。GTCは、GPU Technology Conferenceの略だが、最近では、「AI & Deep Learning Conference」と併記されるようになった。かつては、GPUによるグラフィックス技術などが中心だったが、NVIDIA社がAI技術に積極的に取り組むようになってから大きく変化している。参加者はここ数年、年々増加しており、今年は、のべ9000人を越える参加者があったという。
GTCの期間中に発表されたもののうち、直接的にAIと関係するのは、
などである。
また、間接的にAIと関連するものとして「自動運転関連製品」「ロボティクス関連」「HealthCare関連」「データセンター向けGPU仮想化ソフトウェア」などの発表もあった。
本稿では、上記に挙げたAI関連の発表内容を中心にGTC 2018の注目ポイントを簡単に紹介するとともに、GTC 2018の期間中に行われた同社の発表内容や基調講演などから、NVIDIA社の「AI戦略」を考えてみる。
GTCでは、ここ数年、新しいGPUアーキテクチャが発表されてきた。しかし、今回は、新しいGPUアーキテクチャの発表はなかった。その代わり、既存のVoltaアーキテクチャのGPUであるTesla V100を最大16台接続するNVSwitchが発表されている(図1)。
NVSwitchは、完全なファブリックスイッチで、Tesla V100の持つNVLink(双方向で50GB/秒。1つのV100は、6組のNVLinkを持つ)を接続できる。
また、メモリ32GBのTesla V100も発表されている。
Tesla V100は、デバイスのパッケージ上に高速なHBM(High Band width Memory)を搭載している。2017年までは、16GBのメモリが1つのTesla V100 GPUに搭載されていた。今回は、搭載チップを変更し、容量を2倍にした。
このメモリは、GPUが動作するときに必要なデータを格納しておくものだ。イメージ的には、ビデオメモリなのだが、GPUを汎用演算に使う場合には、演算対象となるデータを格納することになる。
このメモリに置かれるデータは、通常メインCPU側から提供される。その接続には、x86/x64アーキテクチャのCPUであれば、PCI Expressが使われるが、このデータ転送が計算処理によっては、ネックになっていた。
つまり、Tesla V100のメモリ容量の増強によって、まとめて演算対象とするデータを従来の2倍格納でき、PCI Expressによる転送回数を減らすことが可能になるというわけだ。
今回、32GB版Tesla V100やNVSwitchを実際に搭載した製品として、DGX-2も発表されている(図2)。
DGX-2は、最大16個のTesla V100をNVLinkで接続したAI向けのコンピュータだ。
基調講演では触れられなかったが、GTCの初日、英国ARM社との提携が発表されている。
ARM社は、同社のプロセッサ向けにAI用デバイスを開発する「Project Trillium」を2018年発表している。ARM社は、NVIDIA社のNVDLA(NVIDIA Deep Learning Accelerator)を採用する。NVDLAは、Deep Learningの推論専用のハードウェアで、Convolution Core、Single/Planar/Channelの3つのデータプロセッサと、専用メモリ、Data Reshapeエンジンなどのモジュールから成り、これらを組み合わせて推論処理を行う。
GTC 2018では、ディープラーニングの推論処理の最適化処理とその実行環境であるTensorRTをバージョンアップしたTensorRT 4も発表されている(図3)。
TensorRTは、学習済みのネットワークモデルをノードを縮約するなどして最適化し、演算精度を8bit整数や16bit浮動小数点に変換するなどして高速化するためのソフトウェアである。前述のNVDLA用のネットワークモデルを出力することもできる。
TensorRT 4は、RNN、多層パーセプトロン(Multilayer perceptrons:MLP)に対応し、Tesla V100(Volta)のTensor Coreを利用することで半精度浮動小数点(FP16)による推論速度を従来の3倍高速化した。
Googleの深層学習(DL)フレームワークであるTensorFlow 1.7に統合されていることに加えて、TensorRT 4には、専用のONNX(Open Neural Network Exchange)形式のパーサーが含まれている。なお、ONNXとは、Chainer/PyTorch/Caffe2/CNTK(Microsoft Cognitive Toolkit)/MXNetなどの各種DLフレームワーク間でモデルを共有するためのフォーマットのことである。このため、TensorFlow以外の各種DLフレームワークでも、学習したモデルをONNX形式で出力することで、TensorRTでのオプティマイズや実行が可能になる。
以上がGTC 2018で発表されたAI関連の注目ポイントである。これらを踏まえて、NVIDAがAI/深層学習を中心にどのような方向性で戦略を立てているのか、現地で取材して筆者が感じたことをまとめよう。
2017年まで、NVIDIAは、毎年のように新しいGPUアーキテクチャを開発してきたが、アーキテクチャによるGPUの改良には限界がある。NVIDA系のGPUでは、Streaming Multiprocessor(SM)と呼ばれる演算ユニットの性能自体と、SMの数を増やすことで性能を向上させてきた。簡単にいえば、製造プロセスが進化することで集積するトランジスターが小さくなり、より多くのトランジスターを搭載でき、それによって性能を向上させてきたわけだ。しかし、ここにきて、製造プロセス進化の速度が鈍化しているため、同じ手法では、性能向上も鈍化してしまう。
そこで、NVIDIAが投入したのがNVSwitchだ。簡単にいうと、GPU同士をNVLinkで接続することで、複数のGPUデバイス(パッケージ。汎用プロセッサーでいうソケット)を単一のGPUとして動作させることができるようになる。NVSwitchは、NVLink間を接続する高速なファブリックスイッチだ。汎用CPUでいうマルチプロセッサ構成を可能にすることで、並列演算が可能な場合に性能を向上させることが可能になるわけだ。
そのメリットは、ソフトウェア側のプログラミングモデルが変わらない点にある。汎用CPUでいえば、合計のコア数やメモリ量などは同じだが、1つのシステムになっているか、複数のシステムになっているかという違いだ。前者では、複数のコアがメモリを共有するため、並列度は違うが、同じプログラミングモデルが利用できる。後者の場合には、クラスター構成されたHPCシステムのように独立したシステムを連携させるようなプログラミングモデルを使う必要がある。
Tesla V100のNVLinkは、双方向で50GB/秒という転送速度を持つNVLinkを6リンク持つ。NVSwitch登場前は、このNVLinkを直接使って、最大8つのVolta GPU(Tesla V100)を接続していた。しかし、この方法では、接続方法にもよるが最大4〜8つ程度が限界になること、NVLinkが6本しかないことから、接続数が多いと直接接続できないGPUがでてしまうこと、1リンクでは転送速度が50GB/秒に限定されることといった問題があった(図4)。
これに対してNVSwitchを使うことで、最大16個のGPUを同時接続でき、また2つのGPU間の接続に最大6リンクを利用できることから、最大300GB/秒でのデータ転送が可能になる。ちなみにTesla V100でパッケージ内にあるHBMのアクセスは最大900GB/秒で行われる。
NVIDIAは今回新しいGPUアーキテクチャは発表しなかったが、NVSwitchを使うことで、GPU性能を向上させる方法を提供した。これを同社CEOのJen-Hsun Huang(ジェン・スン・ファン)氏は「世界最大のGPU」と呼ぶ。
もう1つの重要ポイントは、ディープラーニングの推論処理にある。
Copyright© Digital Advantage Corp. All Rights Reserved.