忍者ブログ

軽Lab

 Javaを中心とした、プログラミング関係のナレッジベース

Home > > Java DeepLearning4j GPUによる高速化

Java DeepLearning4j GPUによる高速化

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Home > > Java DeepLearning4j GPUによる高速化

- ランダム記事 -
- PR -

コメント

ただいまコメントを受けつけておりません。

Home > Javaで機械学習 - Deeplearning4j入門 > Java DeepLearning4j GPUによる高速化

Java DeepLearning4j GPUによる高速化

今回はDeepLearning 4jでGPUを利用する方法を確認する。DeepLearning 4jでは行列計算をND4Jライブラリで行っているが、GPUによってこの行列計算を高速化することになる。


■ GPUの利用方法

 DeepLearning 4jでのGPU利用は、現在のところCUDA(NVIDIA製のグラフィック・カードで利用可能な開発環境)のバージョン5.5以降にしか対応していない。グラフィック・カードを持っていてもCUDAが利用できない場合はGPU利用もできないため、注意が必要である。DeepLearning 4jでGPU利用するには、以下の手順を行う。

  1. CUDAのインストール
  2. POMファイルの編集

 手順1についてはCUDAのダウンロードサイトでインストーラをダウンロードし、インストールをする必要がある。インストールは特に難しいことはなく、「次へ」を選択して進んでいけばよい。手順2についてはDeepLearning 4jプロジェクトのPOMファイルに以下の依存性記述を追加するだけでよい。ただし、artifactIdタグは「nd4j-cuda-○○」(○○はインストールしたCUDAのバージョン)という値に変更する必要があり、以下の記述はCUDA 7.5の場合の記述である。
<dependency>
 <groupId>org.nd4j</groupId>
 <artifactId>nd4j-cuda-7.5</artifactId>
 <version>${nd4j.version}</version>
</dependency>

 特に本サイトの方法で環境を構築した場合(=『dl4j-0.4-examples/pom.xml』を利用して環境構築した場合)、すでにPOMファイル内に上記は記述されており、以下のように「nd4j.backend」タグの設定を修正するだけで計算にGPUが利用されるようになる。

<name>DeepLearning4j Examples</name>
<description>Examples of training different data sets</description>
<properties>
    <nd4j.backend>nd4j-native</nd4j.backend>
<name>DeepLearning4j Examples</name>
<description>Examples of training different data sets</description>
<properties>
    <nd4j.backend>nd4j-cuda-7.5</nd4j.backend>

■ 性能比較

 GPUを利用した場合の性能を計測するため、CPU利用時とGPU利用時の実行速度差を比較する。実行速度の計測には、公式サイトに掲載されている『LenetMnistExample』(LeNet:2014年度開催の画像認識コンテストILSVRCでGoogleが利用し、高い認識精度を示したニューラルネットワーク構成)を利用し、1世代分の学習(6万個の学習データで各1回学習)にかかる時間を比較した。結果は以下の通り。

◇実行環境
機能 内容
OS Windows7(64bit)
CPU Intel Core2 (1.86GHz)
…プロセッサ数=2
GPU GeForce GTX650
…プロセッサ数=384
Java 1.8.0_60
CUDA CUDA 7.5

◇実行結果
CPU/GPU 実行時間
CPU 820.489秒 (=13分40.489秒)
GPU 349.991秒 (=05分49.991秒)

 処理時間は2分の1以下となり、高速化できたことが確認できた。

■ 参照

  1. ND4J 公式 「JCublas Backend for GPUs」
Home > Javaで機械学習 - Deeplearning4j入門 > Java DeepLearning4j GPUによる高速化

- ランダム記事 -
- PR -

コメント

プロフィール

管理者:
 連絡はContactよりお願いします。

PR