GPUベースのソフトウェアを開発する新興ベンダー数社が、データベース、アナリティクス、機械学習を同一のGPUメモリで動かすことで、データ移動をしなくて済むような基盤を生み出すための活動「GOAI」を始めた。この取り組みについて取材した。
英国のIT専門媒体、「The Register」とも提携し、エンタープライズITのグローバルトレンドを先取りしている「The Next Platform」から、@IT編集部が独自の視点で“読むべき記事”をピックアップ。プラットフォーム3へのシフトが急速に進む今、IT担当者は何を見据え、何を考えるべきか、バリエーション豊かな記事を通じて、目指すべきゴールを考えるための指標を提供していきます。
データの移動は、コンピューティングにおける最大の課題だ。おそらくデータ処理が行われるようになって以来、ずっとそうだった。
データベースや、多様なデータに機械学習アルゴリズムを適用するモダンなアプリケーションでは、さまざまな段階で情報処理を行うのに、帯域幅、レイテンシ、電力、ハードウェアのコストがかかる。そうしたコストを考えると、単一のデバイスセットのメモリを使って全てのコンピュテーションを実行したくなる。
「GPU Open Analytics Initiative(GOAI)」は、GPUアクセラレーテッドコンピューティングの一環として、まさにそのための基盤を作ろうとしている。GOAIは2017年5月に創設を発表をしたが、NVIDIAのさまざまな発表とタイミングが重なったことから、あまり注目されなかった。
GOAIの創設メンバーにはMapD Technologies、Continuum Analytics、H2O.aiが名を連ねている。MapDは新興のGPUデータベースの1つを開発した企業で、GOAIの創設発表に合わせて「MapD Core」データベースをオープンソース化した。Continuum AnalyticsはGPU向けPythonツールの開発元で、H2O.aiはGPUで動作する機械学習アルゴリズムを提供している。
これら3社に加え、GPUデータベースメーカーのBlazingDB、ビジュアルアナリティクスツールを提供するGraphistry、カリフォルニア大学デービス校のグラフ処理ライブラリプロジェクトであるGunrockも、GOAIのメンバーとして技術ノウハウを持ち寄っている。
ご想像の通り、GOAIは「Go AI」と発音される。MapDが行ったGPUデータベースのオープンソース化は、GOAIの創設に一役買った。MapDの創業者でCEOのトッド・モスタク氏は、The Next Platformの取材に対し「Continuum Analytics、H2O.aiとの話し合いが始まったとき、両社はMapDに疑いの目を向けていたようだった」と話している。MapDのGPUデータベースがオープンコードではなかったからだ。
だが、モスタク氏が「データベースは以前からオープンソース化するつもりだった。MapD 3.0のリリースを機に、われわれの会社のプログラマーが、以前の“アカデミックな”形態からコードをクリーンアップし公開できるようにした」と説明したところ、話が進み出したという。
Intelにとってはしゃくに障るだろうが、GOAIはGPU上のエンドツーエンドコンピューティングを推進し、できるだけ多くの処理をCPUから切り離すことを目指している。これは「機械学習とGPUデータベースワークロードを1つのハードウェアセットに集約することが理にかなっている」という、われわれの考え方と共通している。われわれは、GOAIの創設が発表される以前からこの考え方を考察してきた。
GOAIが最初に取り組んでいるプロジェクトは「GPU Data Frame」だ。モスタク氏によると、これはApache Arrowプロジェクトにある程度基づいている。Apache Sparkにはデータフレームの考え方があり、アナリティクスで広く使われているPythonのNumPyアナリティクスルーティンも同様だ。
データフレームはデータベース、アナリティクス、機械学習を組み合わせたコンポジットアプリケーションのさまざまな部分が、GPUのメモリ内にある同じデータにアクセスできるようにする共通データフォーマットだ。変換やデータ移動は不要で、そのままアクセスできる。
モスタク氏はこう説明する。「データセットを取り込み、それに対してクエリを実行して、分析やトレーニングに適したサブセットを取得し、この結果をCPUに渡して、さらにバッファーに移動することで、AnacondaのPythonフレームワークやH2Oといったツールで利用できるようにするのと比べて、データフレームを使うアプローチの方がはるかに効率的だ」
モスタク氏は、このアプローチが機能するのはプロセス間通信機能がCUDAに組み込まれているからだと説明する。内部的な仕組みまで理解しなくても、ハンドルを渡すことでGPU内のデータをプロセス間で共有できるという。
2017年5月に開催されたNVIDIAの年次GPU開発者向けカンファレンス「GPU Technology Conference」では、このGPUパイプラインのワーキングデモが披露された。このデモでは、MapDデータベースがデータセットに対してクエリを100回程度続けて実行し、MapDが抽出したデータがAnacondaツールを使って操作および前処理され、それがH2Oの機械学習アルゴリズムにフィードされた。従来の方法では、SparkのインメモリクラスタがH2Oにデータを直接フィードしていたので、このGOAIのセットアップの方が、パイプライン全体で格段に高く答えが得られる。
他にも興味深いことがある。GPUデータベース自体の中にさまざまな機械学習フレームワークを統合できることだ。これは、MapDとKineticaが取り組みを進めている。
さらなる統合の1つの可能性として、GOAIメンバーがTensorFrameのデータフレームを利用して、MapDからTensorデータフォーマットを、Googleが開発した機械学習フレームワーク「TensorFlow」に直接出力することが挙げられる。同様のアプローチにより、コネクタを介してデータを他のフレームワーク(「Torch」「Caffe」「Theano」「CNTK」など)に出力できる可能性もある。Hadoopは数年前、こうしたコネクタを活用するアプローチによって、さまざまなデータウェアハウスのスタックと統合された。
モスタク氏は、MapDは長期的には、機械学習フレームワークで使われるTensorフォーマットをデータベース自体に直接プッシュすることに関心を持っていると語る。
Continuum AnalyticsのAnacondaスタックは多数のツールを含むオープンソースプラットフォームだが、中でも最も重要なのが、GPUで並列に実行されるようにPythonアナリティクスアプリケーションをビルドするNumPyコンパイラや、アプリケーションをGPU向けにパックするCondaインストーラだ。同社は、Hadoop Distributed File System(HDFS)からデータをシームレスに取り込むためのHadoopクラスタ用コネクタも開発済みだ。
Continuum Analyticsの共同創業者で社長のトラビス・オリファント氏は、「GOAIの目標の1つは統合されたパイプラインを用意するだけでなく、複数のアナリティクススタックを使っていることすら、ユーザーには分からないくらいシームレスなツール間統合を実現することだ」と説明する。
Pythonフロントエンドはデータサイエンティストになじみがあり、Pythonは彼らの間で広く採用されているが、統計言語のRを使っている人もまだ多い。「われわれは、このインフラをプラグ&プレイにしたい。そうして一緒に使えれば非常に強力だ」(オリファント氏)
オリファント氏によると、GOAIのパートナー3社は統合されたスタックのプレビューリリースを用意し、実用に耐えるバージョンを2017年9月から提供したいと考えているという。
H2O.aiの共同創業者でCEOのスリサティシュ・アンバティ氏は、H2O.aiは当初、CPUで動作する機械学習アルゴリズムをコンパイルしていたが、現在はこのコードをGPUで動作させることに集中していると語る。ハイパースケールデータセンターを運営している企業も、ほぼGPUのみを使って機械学習モデルを訓練しており、それと同様だとしている。ただし、パートナー3社のコードにはCPUを要求する要素も含まれるが、それらはIBMのPOWERチップや、AMDが開発中のNaples Opteron、ARMプロセッサーでも動作する。
なお、アンバティ氏は他のGPUデータベースベンダーもGOAIに加わるだろうと述べ、有力なメンバー候補としてKineticaを挙げた。だが、同社はGOAIへの加入をまだ表明していない。
Copyright © ITmedia, Inc. All Rights Reserved.