12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Cloud Platform + GPU設定 備忘録

Last updated at Posted at 2020-06-30

#概要
Google Cloud PlatformにGPU付きのTensorFlow環境を設定する手順を備忘録として残す。

  • 実施期間: 2020年7月
  • 環境:GCP
  • Python3 + TF2.2.0
  • GPU: NVIDIA Tesla T4

##背景
Google ColaboratoryのGPUを使わせていただきDNNモデルをいじくっているが、やはり無料ということもあって、連続でTraining させるにはつらいシーンもある。
GCPは初めの$300分まで無料利用できるので、どんな感じか試してみたのだが、GPUの割付に手間取った。それがこの備忘録を残す理由である。
GCPの手順書をくまなく読めば理解できるのであろうが、とても分かりづらく読む気が起きない。
いくつかサイトを見つけたが、基本がわかっていないせいなのか、その通りにやってもうまくいかない。

##ユーザ登録と最初のプロジェクト作成
まず、使っているOSがWin10の場合、デフォルトブラウザをIEからChromeに変更しておくこと。
GCPのサイトに行きユーザ登録する。$300を超過した分が自動的に徴収されるので、登録にはクレジットカードが必須。
自分のトップページから「新しいプロジェクト」を作成しておく(キャプチャをとった時点ではすでに"GPU-VM-test01"というプロジェクトを作成済み)。

pict1.png
詳細は忘れたがここまでは戸惑うところはなかった。

##GPUの申請
GCPはAWSと違いデフォルトでGPUはついていない。そのため以下の手順でGPUを申請する必要あり。
GCPの手順書をよ~っく読むとそれらしいことが書いてあるが、よほど根気強くなければその手順書まで辿り着けないと思う。

「Compute Engine システムとユーザーを保護するため、新しいプロジェクトにはグローバル GPU 割り当てが設定されます。この割り当ては、サポート対象のすべてのゾーンで作成できる GPU の総数を制限するものです。GPU 割り当てをリクエストするときは、各リージョンで作成する GPU モデルに対する割り当てに加え、すべてのゾーンにおけるすべてのタイプの GPU の総数に対するグローバル割り当てもリクエストする必要があります。

[IAMと管理]→[割り当て]を選択する。割り当て画面で「場所」に”asia-northeast1”と”グローバル”の2つを選択、「指標」に”GPUs (all regions)”、”NVIDIA T4 GPUs”の2つを選択する。
asia-northeast1(Tokyo)/2(Osaka)ではTesla T4しか選択できない。米国のどこかにするとGPU全種が選択可能となるが、大きなファイルのUploadがあるため近場を選択する。T4が一番安いし。
東京か大阪かは各位の住まいによる。

pict2.png

初期状態では、上図右端の「上限」はどちらも”0”となっている。左2つのチェックボックスにチェックを入れて「割り当てを編集」を押すと、「2件の割り当てを選択」ペインが現れる。

pict3.png

左上図で名前とメアドはデフォルトのまま、電話番号(+81はなくてもOK)のみ記入し「次へ」を押す。
右上図で”GPUs (all regions)”と”NVIDIA T4 GPUs - asia-northeast1”にそれぞれ”1”と入力し、リクエストの説明を簡単に(例えば、”Need this for DNN training.”くらい)記入して「完了」→「リクエストを送信」を押す。
2営業日ほどで申請時のメアドに下記のような返信が来る。

pict4.png

このメールにもあるようにGPUは申請したプロジェクトに対し割り付けられる。
プロジェクト内で作成されるVMインスタンすべてでシェアすることが可能。
ここまでが今回キモであった前準備

##環境の作成
承認を待っている間、GCPを弄っていると3つくらいの方法がありそう。

  1. VMインスタンスを作成し、そこにCUDAやTFやAnacondaを入れる。
  2. Marketplaceにある設定済みVMからVMインスタンスを作成する。
  3. ノートブック専用のVMインスタンスを作成する。

おいらの用途で使えるのは3のみ。
1,2はそもそも環境構築後、どのように使うかイメージできない。VMインスタンスの操作はローカルPCのCUIからだけで、それでTF開発はきつい。
VMインスタンスには外部IPアドレスが割り振られ、ゲートウェイを設定するとVMにインストールしたAnacondaのJupyterにローカルからアクセスできることは確認したが、GCPの手順通りにCUDAをインストールしても入ってくれず諦めた。たとえできたとしても、それって結局3のことだもの。

ノートブック用GPU付きVMインスタンスを作成する。
[AI Platform]→[ノートブック]を選択する。「新しいインスタンス」を押し、「TensorFlow 2.2」→「With 1 NVIDIA Tesla T4」を選択する。
TFのバージョンは所望のものを選択する。

pict5.png

「新しいノートブック インスタンス」画面でノートブック用VMインスタンスの設定を行う。
インスタンス名は適当に、「リージョン」にリクエストした時の”asia-northeast1 (Tokyo)”、「ゾーン」に” asia-northeast1-a”か、”…-c”を選択する。今現在”…-b”にはGPUが割り当たらない。
ML後進国の日本人にはGPUはそんなに必要ないのだろうと…

pict6.png

2,3分待つとVMインスタンスが作成されるので一旦ホッとして、目的のGPUが割りついていることを確認し、”JUPYTERLABを開く”を押すとブラウザの別タブでJupyterが起動する。

pict7.png

##Jupyter動作確認
最初のセルでGPUが認識されているか確認する。

pict8.png

import tensorflow as tf
print(tf.__version__)		        #2.2.0が表示されること
tf.config.list_physical_devices(GPU)	#'/physical_device:GPU:0'的なことが表示されること

“File”から”Shut Down”を選択しブラウザのこのタブを閉じる。
VMインスタンスが停止するわけではないので、インスタンスが選択されている状態で「停止」を押す。
「停止」を押さなければずっと課金されるので注意。

pict10.png

以上

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?