Deep Learning研究のためのGPU環境構築

注意:GPU環境構築は、環境(ハード構成等)によっては、Linuxの専門的な知識を要する場合があります。

Deep Learning研究において、GPUを利用した計算ができることはほぼ必須だと言っても過言ではありません。これは、GPUを使う場合と使わない場合では数倍から10倍程度、計算時間に差がでるためです。大量のデータを訓練データとして利用することが多いDeep Learningの研究においてこの差は致命的になることが多いです。

GPUの計算環境といっても、いくつかの実装があります。代表的なGPGPU用のライブラリとしては、OpenCLやCUDAが挙げられます。Torch7やPylearn2、Caffeといったメジャーな実装ではCUDAがデフォルトでサポートされていますが、OpenCLがサポートされている場合は限られています。そのため、Deep Learningで利用できるGPU環境を整えるということは、CUDA環境を整えることと同義になる場合が多いです。

ただ、このCUDA環境を整えることがわりと大変なことになることが多いです。そもそもCUDAというのはNvidia社製のGPU上で計算処理を行うためのフレームワークですが、NvidiaのGPUはWindows用のゲームやCADでの実績は多いものの、研究者がよく使う環境であるLinux上での利用はそれほどメジャーではありません。そのため、自然と対応ドライバなどの制約が発生し、場合によっては非常に専門的な知識を要する作業が必要になることがあります。

以下、Torch7やTheano、CaffeといったライブラリをGPU上で実行するために必要となるCUDA環境の構築について基本的な情報と、よくひっかかる点やその解決方法を示します。

  • 準備
    • Ubuntu14.04 LTSを利用する
    • 注意:LTSはLong Term Supportの略で、安定版です。LTSに合わせてCUDAがリリースされることが多いので、LTSを使うのが良い場合が多いです
  • CUDAのインストール
    • Uubuntu 14.04用のdebファイルかrunファイルをダウンロードして使う
    • Readmeにしたがってインストールする
    • 注意:debファイルは実行するタイミングによってはリポジトリとのPGPキーが異なるというエラーが発生します。
    • 注意:CUDA用のドライバのインストールがうまくいく場合は良いのですが、うまくいかない場合があります(わりと多くの場合)。その場合は、以下の参考情報のURLなどの情報を参照に解決することが必要になります。よくひっかかる点は、以下のとおりです。
      1)nouveauとのバッティング
      2)GRUB
      3)CUDAインストール後にX Windowがクラッシュする
  • 動作確認
    • nvidia-smiを実行し、エラーが発生しないことを確認する
    • サンプルコードをコンパイル(make)して実行する
  • 参考情報
    http://tleyden.github.io/blog/2014/10/25/cuda-6-dot-5-on-aws-gpu-instance-running-ubuntu-14-dot-04/

CUDAがインストールされたことをしっかり確認してからPylearn2、Torch7、Caffeといったライブラリをインストールします。これらのライブラリでは設定ファイルを変更するだけでGPUが使えたり、参照するライブラリを少し変更するだけでGPUを利用した高速な計算ができるようになりますので、大変便利です。

続きを読む

pylearn2 torch7 AWS Image (AMI)

Pylearn2とTorch7の環境を整備したAmazon AWSのイメージを作成しました。以下の要領で自分の環境として利用できます。


注意)AWSの無料枠で動作したという報告もありますが、問題が発生することが多いので有料枠に切り替えておくことを勧めします。その他、よく発生する問題をQAページにまとめましたので、ご確認ください。

  1. AWS コンソールにログインする

  2. 以下のURLにアクセスすると、AWSイメージを自分のコンソールで起動するための画面が表示される

https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#LaunchInstanceWizard:ami=ami-28e04e28

  1. インスタンスのタイプはc3.largeを選択して起動する

* microではサンプル程度の規模のコードでもメモリ不足になります
* c3.largeはMicroに比べると利用料が高いので、気をつけてください

  1. 起動途中に出るキーペアの設定では、ログインするためのキーペアを新しく作る xxx.pemファイルができるので、ダウンロードして無くさないようにする。

  2. 起動済みインスタンスの一覧画面で、先ほど起動したインスタンスを見つけ、Public DNSに表示されているドメイン名を調べる。(Public DNSはインスタンスをStop/Startする度に変わるので気をつけてください)

  3. SSHでログインする

例えば、MacやLinuxからsshコマンドでログインする場合、ステップ5で確認したDNS名(例えば「ec2-000-00-0-000.ap-northeast-1.compute.amazonaws.com」)を利用し、以下のようなSSHコマンドでログインする。(xxx.pemのパーミッションは600にしておいてください。)

% ssh -i xxx.pem ubuntu@ec2-000-00-0-000.ap-northeast-1.compute.amazonaws.com

(WindowsユーザはPuttyなどを使う方法があると思います)

  1. 確認:カレントディレクトリにpylearn2やtorchというディレクトリがあればOK。

続きを読む

東京大学 Deep Learning基礎講座 受け付け開始

Deep Learning基礎講座を以下のとおり開催します。

 

  1. Introduction
    日付:2015/11/  2
    場所:工学部3号館3階33号講義室
  2. k-NN, Logistic Regression, Softmax, train/dev/test development
    日付:2015/11/  9
    場所:工学部3号館3階33号講義室
  3. Perceptron + Feed Forward Network
    日付:2015/11/16
    場所:TBA
  4. Gradient Descent, Stochastic Gradient Descent
    日付:2015/11/23
    場所:TBA
  5. Autoencoders – RBM
    日付:2015/11/30
    場所:TBA
  6. Convolutional Neural Networks
    日付:2015/12/  7
    場所:TBA
  7. Recurrent Neural Networks
    日付:2015/12/14
    場所:TBA
  8. Deep Learning and Language Models
    日付:2015/12/21
    場所:TBA
  9. Advanced Topics
    日付:2016/  1/14
    場所:TBA
  10. 発表
    日付:2016/  1/21
    場所:東京某所(調整中)

ご興味のある方は奮ってご参加いただければと思います。

http://ail.tokyo/ja/education/

続きを読む

Deep Learning研究環境の構築

今からDeep Learningに関する研究を始めようと思っている人のために、Pylearn2とTorch7の環境構築の方法を以下に示します。

  1. Pylearn2
    • Githubページからダウンロードし、インストール手順を確認する
    • 必要なパッケージをインストールする
    • Githubページにしたがってインストールする
    • or 拙作pylearn2_easy_installerを使う
    • その他の方法:AnacondaやVagrantを使う
  2. Torch7
    •  公式サイトの情報にしたがってインストールする
    • luarocksで、images、unsup、dpなどのパッケージをインストールする
    • その他の方法:Amazon AWSの構築済み計算環境を使う

補足説明

  • Pylearn2とそのベースとなっているTheanoは依存関係が複雑で、多くのパッケージをインストールする必要があります。Deeplearning.jpでは、どのパッケージをどの順番でインストールするかをまとめたpylearn2_easy_installerを提供しています。
  • Anacondaという数値解析に特化した環境構築ソリューションがあります。Anacondaを使うことで、簡単にTheanoやPylearn2の環境構築ができるという報告もいくつかあります。
  • 最近では、Deep Learningの計算環境についても、環境構築済みの仮想環境を配布するスタイルが少しずつ浸透してきている印象を受けます。pylearn2に関しては、Vagrantの環境が配布されているようです。また、Torch7については、Amazon AWSで利用できるAMIという仕組みで仮想化環境が提供されています。

See Also: GPU環境の構築

続きを読む