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

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

注意: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を利用した高速な計算ができるようになりますので、大変便利です。