LoginSignup
12
9

More than 5 years have passed since last update.

GCPでGPU+JupyterでDNN学習環境の構築 (CUDA8.0)

Last updated at Posted at 2018-02-24

Google Cloud Platform (GCP)
https://cloud.google.com/?hl=ja

はじめに

GCPでGPUありDeepLearning学習環境を構築し、
ローカルでJupterからGPUに接続をしたときの手順メモです。
GPUを使うための設定が少し面倒でした。

※注記

以下は Ubuntu14.04 + CUDA 8.0のインストール方法です。
CUDA 9.1バージョン向けは以下が参考になります。
https://qiita.com/yukoba/items/3692f1cb677b2383c983

前提条件

GCPの無料トライアルから有料アカウントに切換えが必要となります。
クレジットカードの登録が必要ですが、切換え時に300ドルのクレジットがつくので、GPUありで使用していてもしばらくの間はタダで使えます。
ただしGPUの請求個数は1個まで、それ以上は別請求されました。

GPU割り当て申請

GCPのGoogle Compute Engine(GCE)もしくはDatalabでGPUを使うには、初回にGPU割り当て申請を行います。

  • GCPのコンソール画面を開く

  • メニュ⇒[IAMと管理]を開く

  • メニューバーから[割り当て]を選択

  • 指標フィルタの[なし]を選択してフィルタをクリアし、NVIDIA P100またはK80を選択。GPU割り当ての一覧が絞り込み表示される。

  • リージョンを選択。以下ではasia-east1を選択し、割り当てを編集をクリック。

  • 変更の部分に使用したいGPU数の上限を指定。ここでは「1個」と選択

  • 電話番号と理由を記入して申請する。数分で承認のメールが届く。

Google Cloud SDKのインストール

GCP上でCloud Datalabを実行すると、ローカルPCとの時間のかかるデータやり取りなしに、グラフィカルに結果を見ることができる。

  • 右上のボタンから[Google Cloud Shell]を起動

  • 環境変数を作成

export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
  • Cloud SDK の配布 URI をパッケージ ソースとして追加
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
  • Google Cloud の公開鍵をインポート
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
  • Cloud SDK を更新してインストール
sudo apt-get update && sudo apt-get install google-cloud-sdk
  • Datalabのインストール
sudo apt-get install google-cloud-sdk-datalab
  • gcloud初期化
gcloud init

1⇒1⇒yを選択

  • インストールできたか確認
gcloud components list
  • プロジェクトリストを確認
gcloud projects list

詳細手順は以下を参照
https://cloud.google.com/sdk/downloads?hl=ja

インスタンスを作成

  • [VMインスタンス]でインスタンスを作成

  • ゾーンを先ほどGPU割り当てを行ったゾーンに設定。こここでは[asia-east1-a]を指定。GPUがないゾーンもあるので注意。

  • ブートディスクを指定。ここでは[Ubuntu 16.06 LTS]を指定。

  • IDとAPIへのアクセスは[すべてのCloud APIに完全アクセス権を許可]を選択

  • ファイアウォールの許可は両方ともチェックON

  • [管理]を選択して詳細を表示し、プリエンプティブを[オン]に設定。これは必須ではないが低コストとなる

  • VMインスタンスが作成される

インスタンスにログイン

  • GCPの右上のボタンから[Google Cloud Shell]を有効にする
  • 以下コマンドで作成したインスタンスにログインする
    例えば、プロジェクトIDがthematic-mapper-190607、ゾーンがasia-east1-aでインスタンス名がinstance-1の場合は以下のようになる。
gcloud compute --project "thematic-mapper-190607" ssh --zone "asia-east1-a" "instance-1"

*** インスタンスを停止

$ gcloud compute instances stop instance-4 --zone asia-east1-a

NVIDIAドライバインストール

事前にNVIDIA Develpperの登録を済ませて置く。
https://developer.nvidia.com/developer-program

  • 古いドライバの削除
dpkg -l | grep nvidia
dpkg -l | grep cuda
sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove cuda-*
  • NVIDIAドライバーをインストール
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
apt-cache search 'nvidia-[0-9]+$'
sudo apt install nvidia-384
reboot
  • CUDA 8.0を入れる

CUDA Toolkit Archive から CUDA Toolkit 8.0 をダウンロードする。install では cuda-8.0 を指定。

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda-8-0
  • cuDNN Download から Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0 をダウンロードする
tar xfvz cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64/
sudo chmod a+r /usr/local/cuda-8.0/lib64/libcudnn*
  • .bashrc でパスの設定を行う
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

必要ライブラリインストール

  • Anaconda環境インストール
wget http://repo.continuum.io/archive/Anaconda3-4.0.0-Linux-x86_64.sh
bash Anaconda3-4.0.0-Linux-x86_64.sh
source ~/.bashrc
  • Anacondaバージョン確認
conda -V
  • 仮想環境作成
conda create -n py36 python=3.6
source activate py36
  • cupyのインストール(必ずNVIDIAドライバの後に実行)
pip install cupy
  • 必要ライブラリのインストール

chainerインストールの一例

pip install chainer
conda install -c https://conda.anaconda.org/menpo opencv3
pip install -U numpy
pip install matplotlib
pip install pillow
sudo apt-get install zip unzip
sudo apt-get -y install imagemagick

データをGoogle Cloud Storageとやり取りする

ローカルPCとインスタンスとの間でデータのやり取りを行いたいときは、Google Cloud Storage経由で行う。

  • メニューから[Storage]⇒[ブラウザ]を選択

  • バケットがなければ作成。Multi-Regionalで場所はどこでもよい。

  • バケットを選択するとファイル一覧が見られる。ファイル名をクリックするとダウンロード可能。

  • ファイルをインスタンスからStorageへコピー

gsutil cp ./filepath gs://thematic-mapper-190607/download
  • ファイルをStorageからインスタンスへコピー
gsutil cp gs://thematic-mapper-190607/filepath ~/download

ローカルのJupyterでGCPに接続

以下を参考にしたらできました。
http://bfin.sakura.ne.jp/?p=923

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9