本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 ディープラーニング(深層学習)の研究開発を加速する手段の1つは、ディープニューラルネットワーク(DNN)の学習の高速化である。学習が速く進めば、研究に必要な試行錯誤がそれだけ捗るためだ。学習を短時間で済ませる手段の定番がGPUの利用であり、今や深層学習研究に欠かせないツールになった。

 GPUを使う場合は、ライブラリ用のソフトウエアを介して使うことになる。このため、同じGPUを使う場合でも、ライブラリ側のソフトウエアの実装を工夫すると高速化できる。東京工業大学とスイスETH Zurichが共同開発した、CNN(Convolutional Neural Network)の畳み込み処理を対象にしたソフトウエアライブラリ「μ-cuDNN」もその1つである注1)、1)

 特徴は、このライブラリを追加し、元のコードを数行書き換えるだけで畳み込み処理が速くなることだ。東工大らの計測によれば、畳み込み処理の部分だけで見ると最大で4.54倍、代表的なCNNであるAlexNetの学習は1.45倍、ResNet-50では1.05倍高速化できた例がある。

注1)現在は東京工業大学情報理工学院 松岡研究室で博士課程に在籍する開発者の大山洋介氏が、2017年にスイスETH Zurichに留学した際、Associate ProfessorのTorsten Hoefler氏らの研究グループと共同研究した成果に基づく。

 高速化の程度はDNNの構造や利用できるハードウエア環境、学習時のバッチサイズなどに依存し、必ずしも全ての場合で速くなるわけではない。それでも、実行が遅くなることはないため、組み込んで損はないツールといえる。

 μ-cuDNNが前提にするのは米NVIDIA社のGPUである。同社の深層学習用ライブラリ「cuDNN」2)の一部の機能を置き換えて実行するラッパーライブラリとして実装した(図1)。深層学習フレームワークとしてはTensorFlowとCaffeから利用でき、他のフレームワークへの対応も容易という。オープンソースソフトとしてGitHubでコードを公開3)した。

この先は日経Robotics購読者限定です。