はじめに
実は最近、初めてAWSで深層学習環境を構築しました。その時の対応メモとして一部残しておきたいと思います。
Tips
AMIの選択
UbuntuでPyTorch環境が使える環境が欲しかったのですが、はじめからPyTorchなりTensorFlowなりが動かせるAMIがあるので、うまく探すと楽です。
EC2→イメージ→AMIカタログ→クイックスタートAMI、と辿ったのち適応に絞り込むとひっかかります。
インスタンスタイプの選択
ざっと調べた感じだと、最も安価にNVIDIAのGPUが使えるインスタンスタイプはg4dn.xlargeかなと思われます。
このg4dn.xlargeはNVIDIA T4 GPUが1つ使える環境ですが、Colab無料版と同じGPUのようです。
なので、colabで動かせるレベルのものをAWSで動かしたい場合、まずはこのインスタンスタイプを選ぶと良いかもしれません。
インスタンスタイプの一時変更について
GPUインスタンスはCPUのものに比べて時間単価が高めです。
深層学習の実行時にはGPU環境は必要なものの、その他の環境構築やコーディング時など一時的にGPU環境が無くても良い場合も多いです。
こういった時に、一時的にCPUインスタンスに切り替えてしまうことで、使用コストを抑えることができます。
今回の場合だと、t2.mediumやt2.largeなど一時的に切替して問題なく使用できました。(ただし、あまりに小さいリソースのインスタンス環境にすると立ち上がらないので注意)
・切替方法
インスタンス→構築したインスタンスを選んで、アクション→インスタンスの設定→インスタンスタイプを変更
環境のアクティベート
pytorch環境はcondaで構築されています。sshログイン時にその環境のアクティベート方法が書かれていますが、次のようにします。
$ source activate pytorch
condaでpytorchという名前の仮想環境ができています。
なので、下記のリンクのように新たに仮想環境を作ったり、複製したりもできます。便利。。
もちろん既存環境に追加でpip installなどもできます。
VSCodeでのリモート開発の対応
特別なことはなく、SSH構成ファイルを開いてHost情報を入力して接続すると、自分の端末上のVSCodeでAWS環境へのリモート開発も簡単にできます。
Host hogehoge
HostName ${インスタンスのIP}
User ${linuxのユーザ名。今回のデフォルト名だとubuntu}
...
(その他、port指定やIdenityFile等があるなら適宜設定)
開発したpythonコードのリモートデバッグ時は、conda環境(デフォルトでpytorch)ももちろん指定できます。
最後に
基本的なことをただ箇条書きしただけで恐縮です。。
それにしてもAWSは簡単に環境ができるので楽で良いですね。
機会があれば、何か追記するかもしれません。
おしまい。