(前回記事はこちら

 GPUインフラの特性や使いこなしのノウハウを明らかにする特集。今回は、GPUインフラにおけるバスやネットワークの構成について、PFN チーフアーキテクトの奥田遼介氏と、さくらインターネット代表取締役社長の田中邦裕氏、同社で高火力コンピューティングを担当する須藤武文氏に聞いた。

(聞き手は浅川 直輝=日経コンピュータ


さくらインターネットがPFN向けに提供しているGPUインフラのネットワークには、一般的なEthernet(イーサネット)でなく、より高速なInfiniband(インフィニバンド)を採用していると聞きました。ディープラーニングにおいて、Infinibandのようなサーバー間接続のネットワークの性能はどれくらい重要なんですか。

写真●右から、PFN チーフアーキテクトの奥田遼介氏、さくらインターネット代表取締役社長の田中邦裕氏、さくらインターネットで高火力コンピューティングを担当する須藤武文氏
写真●右から、PFN チーフアーキテクトの奥田遼介氏、さくらインターネット代表取締役社長の田中邦裕氏、さくらインターネットで高火力コンピューティングを担当する須藤武文氏
[画像のクリックで拡大表示]

PFNの奥田氏 実は、本当にInfinibandを採用するかは、最後まで悩んだところなんですけどね。

 Infinibandがいい面は2つあります。1つは帯域、つまり通信速度の速さ。もう1つはレイテンシー、つまり遅延時間の短さです。ただ、我々が開発するディープラーニングのオープンソースソフト「Chainer」のユーザーの多くはInfinibandを使える環境にはなく、またInfinibandは使いこなしの難易度が高く、そこに最適化するわけにはいかないという悩ましさがありました。

さくらインターネットの田中氏 ディープラーニングのワークロードからみると、InfinibandはEthernetと比べて相当優位なんでしょうか?

 例えばEthernetの場合、帯域10G(ギガ)bpsの次は100Gbpsになりますが、100Gはまだ特殊で価格が高い。それと比べれば、Infinibandのほうがbps当たりの単価は安い。なので、そのワークロードが求めるネットワーク帯域が10Gbpsを超えるかどうか、に1つの境があるんじゃないかなと考えました。

奥田氏 うーん。相当優位かといわれると…実はディープラーニングの学習において、ネットワークの優位性はそれほど必要ではないのでは、という意見も出てきているなど、まだ議論は混沌としています。

 ディープラーニングにおけるハードウエアのボトルネックは、基本的には2つあります。1つはサーバー内部のバスとしてCPUとGPUなどをつなぐPCI Expressの帯域。ここにGPUボード1本当たり16Gバイト/秒、つまり128Gbpsという限界があります。第2段階はサーバー同士をつなぐネットワークの帯域です。Ethernetでは10Gbps、Infinibandでは56Gbpsの制約になります。ここで帯域の広いInfinibandを選ぶことは合理的です。

 ただこれはあくまで「基本」の話で、実態としてはもっと難しいことが起こっています。Infiniband、MPI(Message Passing Interface:並列コンピューティングに関わる共通規格)、CUDA(Compute Unified Device Architecture:米エヌビディアが提供するGPU向け開発環境)の3つを併せて使うと、先の基本的な理解では説明できない、奇妙な現象が発生してしまうことがあります。どこにボトルネックがあるか、実際に切り分けるのは難しいんです。

 最近では(米フェイスブックが「ニューラルネットワーク向けサーバー」としてハードウエアアーキテクチャーを公開した)「Big Sur」のような、GPUボードを8本挿せるサーバーも登場しています。PCI Expressが持つ40レーンを、GPUボードの各スロットやInfinibandにどう割り当てるか、(見かけ上のレーン数やスロットを増やせる)スイッチチップを置くか否か、といった構成の違いによって、伝送路のパフォーマンスが大きく変わってきてしまうんですね。

なるほど。どこがボトルネックなのか、一概には言いにくい状態になっていると。