WirelessWire News Technology to implement the future

by Category

マシンの処理速度は、プログラマーの生産性に直結する

The monster machine accelarate hackers' thinking

2016.06.24

Updated by Ryo Shimizu on June 24, 2016, 08:08 am JST

 来週、有明の東京ビッグサイトで開催される「コンテンツ東京2016」の中に、「AI・人工知能ワールド」という特設展示が開催されることになりました。

 おそらくディープラーニングブーム以降では、日本で初めての本格的なAI製品の展示会となるのではないでしょうか。これまではNVIDIAが主催してきたDeep Learning Dayや、GPU Technology Conferenceの中で、小規模なブース展示はあったものの、本格的なトレードショウは初めてだと思います。

 Deep Learning Dayの展示は主に玄人向けというか、自分でプログラミングができる人向けの製品がメインなので、ハードウェアメーカーやツールベンダーが主でした。

 「AI・人工知能ワールド」という、人工知能以前に人間の知性のほうがどうかなってしまっているのではないかというやや頭痛が痛いタイトルではありますが、初めて一般のビジネスマンを対象としたAI関連製品のトレードショウが開催されるということで、我々もまずは一度は展示してみなければなるまい、ということで出展の準備を急ピッチで始めています(7月1日に人が足りません。アルバイトで立ってもいいよ、という学生さんがいたらuei.co.jpまでお問い合わせ下さい)。

 ソニーCSLとの共同研究で生まれた、深層学習GUI環境のDEEPstationの展示はもちろん行う予定ですが、これでもまだちょっと玄人向けすぎます。

 NVidia DigitsやDEEPstationといった今ある深層学習GUI環境は、GUIから手軽に画像の分類ができます。ところが普通のビジネスマンは「あなたの手元の画像を分類しますよ」と言われても、ピンと来ない人が大半のハズです。

 「そんなに大量の画像なんか持ってないよ」というのがオチなわけです。

 そこでどんなデータでも特徴量を教師なし学習で自動的に学習し、その分類を可視化するというデモを行おうと考えました。

 いわゆるオートエンコーダというやつです。

 この開発には、サードウェーブデジノス様と共同開発したDEEPstation DK-1の最上位モデルExpert Editionを使用しました。

スクリーンショット 2016-06-24 7.08.26

 最新のXeonプロセッサが2基、現在発売されている中では最も高性能な深層学習向けGPUであるGeForece TITAN Xを4基、さらに1.6TBのSSDを二基で合計3.2TBのSSD、と4TBのHDDが2基で計8TB、そしてメインメモリーは怒涛の512GB。さすがにこれだけのモンスターマシンを起動するには2キロワットもの電源が必要となります。

 これ、秋葉原のパーツ屋さんで部品の正しい組み合わせを見つけるだけで丸一日掛かりますし、実際に組み立ててみても上手く動かないことがしばしばです。

 これだけのマシンとなると、BIOSの微妙な設定が必要で、部品の相性、電源の入る順番、などなど、ノウハウの塊になっています。

 通常のように電源ボタンを押してすぐに全ての部品に電流が流れるわけではありません。
 宇宙船のように順番に適切なタイミングでそれぞれの部品に電源が投入されていき、それからOSが立ち上がります。絶妙なタイミング設定で、ここはやはり秋葉原のDOS/Vショップの老舗のなせる技と唸りました。

 電源が入ってしまえば、OSの立ち上がりは、ほぼ一瞬です。
 しかしこの「ゆっくりと各部署に電源が入っていく」という感じが、いかにもロケットの打ち上げを彷彿とさせて心躍るものがありました。

 筆者でもこれだけの規模のスペックのマシンを直接触るのは初めてです。
 ドワンゴが昨年設置した、世界最大級の深層学習GPUファーム、紅莉栖(くりす)は、同じく1ノードあたり4基のTITAN Xを搭載していますが、メモリは128GB程度ですし、なにより起動する場面はクラウドの向こう側にある遠くはなれた北海道のデータセンターにあるわけで、しかも一度電源を投入したらずっと可動しているわけですから、全く、この目でモンスターマシンが起動するのをみるのは初めてなわけです。

 サードウェーブデジノスさんからは、展示用ということでお借りしたのですが、セットアップをしようとすると、あらゆる動作があまりにも速くてビックリしました。

 筆者は普段、たいていの作業をMacBookAir上で行います。それこそパンフレットのデザインから原稿のデザイン、Photoshopによるポスターや写真の修正作業、もちろんプログラミングまで。

 基本的にGPUが使えない以外はMacBookAirで充分だなあと思っていたのですが、やはり本物のモンスターマシンは速い。

 何が速いって、おそらくCPUが無茶苦茶速いんです。
 もちろん、SSDも速いし、ネットワークも速い。ギガビットイーサネットポートが2つも付いているので、ちょっとしたサーバーもできます。

 とにかく、普通なら昼ごはんに行って帰ってこようかなと思うくらい時間の掛かる様々なソフトウェアのコンパイルやインストールといった作業があまりにも一瞬で終わってしまうので我が目を疑うほどでした。これは完璧に調律されたピアノのように、あまりにも完璧にチューニングされたワークステーションはコンピュータを扱うという体験をこうも劇的に変えるものかと感動しました。

 最近、といってもここ10年くらいですが、あんまりコンピュータを触って「これは速い!」と感じたことがなくなってきました。

 それもそのはず、実際の所、CPUの計算速度というのは2006年くらいに頭打ちになって以来、さほど上がっていないのです。かわりに上がった性能が、消費電力あたり計算量とか、まあそのあたりです。だからMacBookAirでも充分なスピードが出てるわけです。

 ところがやはりIntelが本気を出して作ったホンマモンの最高級品であるXeonは少し事情が違うようです。

 E5-2687は少し古くて、去年発売されたばかりのE7-8890あたりと比べると、キャッシュは20MB(E7-8890は45MB)ではあるものの、そもそも7000ドル(約74万円!)するCPUと2000ドル(21万円)だとすると、コストパフォーマンス的にはいまのところベストの選択ではないかと思います。デュアルにすると価格差はもっと開きますし(E7-8890x2で148万円、E5-2687x2で42万円、価格差はなんと106万円!)、それだけの価格差で単純に性能だけ見ると単純なCPU性能では1.5倍しか差がない(それでもでかいけど)ので、まあバランス的にはこんなもんかなという気もします。

 ちなみにE7はTSXという機能を使うと従来の6倍になるという話もあるのですが、実際にはTSXに対応したプログラムを書かなければならず、今のところ主要な深層学習フレームワークがTSXに対応したとは聞いてないので(なにしろCPUだけで70万円もするわけだから検証環境もそうそうない)、深層学習用途にはあまり関係ないと思います。TSXそのものの恩恵による性能向上は2.2倍程度とのこと。

 まあこれはサーバー用なので、普通はそもそもワークステーションには使いません。
 ちなみに筆者が普段使っているMacBookAirはIntel Core i7の1.7 GHz。むしろそんな高性能なCPUだったのかといまごろ驚きましたが、それでも天と地ほどの体感速度の差です。

 最初は、展示用マシンにソフトをセットアップしていたのですが

 「これ、せっかくだったら実際にデモ用人工知能の学習に使ったらいけるんじゃないか」

 と考え、社内のDEEPstation DK-1 Basic Edition(これはこれで非常にコンパクトで可愛くていいマシンです)で動かしていたオートエンコーダをDK-1 Expert Editionで再度実行すると・・・なんということでしょう。それまで気の遠くなるような時間がかかっていた学習が、一瞬・・・は無理にせよ、みるみる進んでいきます。

 イメージ的には、これまでは「ダッ・・・・・(数分経過)・・・・ダッ・・・・」と進んでいた学習が「ダダダダダダダダダ・・・・」と進むようになった感じ。

 しかも当たり前ですがGPUを4つも搭載しているので、似て非なる仮説を同時にいくつも試せます。

 実は深層学習のプログラミングや利用で一番大事なのは、いくつの仮説を試すか。
 ニューラルネットワークは設定するハイパーパラメータが非常に沢山あるので、ある組み合わせでは上手く行っても、別の組み合わせではうまくいかない、なんていうことはよくあります。

 実際にどのハイパーパラメータが最適かということをグリッドサーチという手法で探したりしますが、そのためにはとにかく沢山のGPUが必要です。これにはChainerが最適

 「えー、TensorFlowのほうがいいんじゃないのー?Googleだし」と思いがちですが、ぜんぜん違います。

 なぜならTensorFlowは、起動するやいなや全GPUリソースを独占してしまうからです。
 その割には効率がよくありません。GPUを独占するだけで効率的に使ってくれるわけじゃないんです。

 実際、全く同じ学習でも、TensorFlowのほうが速いということはあまりありません。
 プログラミングも面倒くさいし、TensorFlowを使うメリットを探すほうが難しい。特にこれだけの大容量のマシンとなれば、TensorFlowを使うのは資源の無駄です。いわばTensorFlowは無駄に燃料をバカバカ食らうV型12気筒のアメ車です。パワーはあるけど使いドコロが難しい。

 その点、Chainerは日本製らしく、おそろしくコンパクトに、最小限のGPUメモリで動きます。最小限しかGPUを使わないため、たとえGPUが1基しかなくても、複数のニューラルネットワークを同時に走らせることができます。これがChainerの凄いところです。まさに机上の戦闘機。往年のホンダF1の高回転ターボエンジンのようではないですか。その上、クイックで扱いやすい。プログラムも書きやすい。いいことづくめです。

 かつてスーパーハッカーであり、マイクロソフト株式会社の社長、会長を歴任された古川享さん(現慶應義塾大学教授)が、「プログラマーの能力は、使用するマシンの速度に比例する」という名言を残されていました。

 これは21世紀の現代でもまさしく当てはまる、ということを今回はまざまざと実感しました。
 というかメモリとかいろいろ足りてないんだと思いますが、さすがにMacBookAirだと、8GBもメモリを積んでいてもObjective-Cのコンパイルが遅くてストレスが溜まります。

 最新のモンスターマシンをちょっと使っただけで、仕事がものすごく速く終わりました。
 なんだ、マシンの問題だったのか。

 ところで2キロワットという電源は、一般家庭で使用される電気機器の中では破格の負荷です。業務用電子レンジ並の電力ですから、「うちにはとてもとても・・・」という人のためにDEEPstation Cloudもございますのでこちらもご検討ください。

 というのは冗談ですが、マシンが速くなると仕事が捗るのはどうも事実っぽいですね。それにしてもXeonとECCの組み合わせがこれほど速いとは。いやはや。

WirelessWire Weekly

おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)

登録はこちら

清水 亮(しみず・りょう)

新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。

RELATED TAG