ABCIでDeep learningを動かしたいmemo (2019.10.25, 11.05更新)
ssh 環境の準備
windowsならMicrosoft storeからUbuntu 18.04LTS or 20.04LTSをインストールする
ABCIへのsshアクセスでは秘密鍵・公開鍵というものを用いた「鍵認証」を行う。
秘密鍵・公開鍵はカギとカギ穴の関係と同じ。
公開鍵がカギ穴で、秘密鍵がカギのイメージ。
WindowsでLinuxを扱えるように下準備をしておく(WSLの機能を有効にする)ことに注意。Win 10 homeでもproでも同様。
http://my-web-site.iobb.net/~yuki/2018-03/soft-tool/wsl-ubuntu/
(Mac, Linux環境であれば標準で機能が付属しているはず, sshのバージョンが7.3以上であることには注意)
踏み台マシンを通してフロントエンドマシンにアクセス
.sshフォルダに(なければ)"config"という名前のファイルを作成、さらにconfigファイルを編集し、下記おまじないコマンドを二つ打つ
$ ssh-agent /bin/bash
$ ssh-add .ssh/{秘密鍵のファイル名}
(パスフレーズ入力)
をする。設定がうまくできていれば
$ ssh abci
でabciにログインできる。
ABCIで仮想環境を設定し、pytorchを実行するまで
調査の結果、pyenvではなくvenvを使った方がよい (2019.10.31)。
計算機にジョブファイルを投入する方式については後日まとめる。
<< インタラクティブモードを使う場合の流れ >>
作業は下記のような流れで行う
===
1. venvを使って仮想環境を作る
2. 仮想環境をアクティベートする
3. 仮想環境下でpytorchをインストール
4. pytorchのexamplesをダウンロードする
5. インタラクティブモードに入る(ホームディレクトリに戻る)
6. 再度仮想環境をアクティベートする
7. サンプルを実行する
===
1. venvを使って仮想環境作る
https://docs.abci.ai/ja/06/#python-virtual-environments
を参考に、まずホームディレクトリに移動して
$ cd ~/
python3が使えるよう、python3をモジュールとしてロードする
$ module load python/3.10
python3がベースとなる仮想環境を作る
$ python3 -m venv my-project_3.10
ホームディレクトリにmy-project_3.10というディレクトリが作られ
その中に必要なパッケージが準備される(my-project_3.10部分は好きな文字に変更可能)
2. 仮想環境をアクティベートする
下記コマンドを打つ
$ source ~/my-project_3.10/bin/activate
ユーザ名のところが(my-project_3.10)[ユーザ名]などと変化する
その後、忘れずにpythonをロードする(毎回必要)
$ module load python/3.10
pipというコマンドを最新のものにする
$ pip install --upgrade pip
3. 仮想環境下でpytorchをインストール
pytorchがgpuを利用できるように専用ライブラリをmodule load
$ module load cuda/11.8
その後
$ pip install torch torchvision
類似したpip3というコマンドもあるが、こちらはエラーが出る
4. pytorchのexampleをダウンロードする
pytorch用のディレクトリを準備しておいて
$ mkdir pytorch
$ cd pytorch
examplesをダウンロードするgitというコマンドを打つ
$ git clone https://github.com/pytorch/examples
examplesというディレクトリが作られるはず
5. インタラクティブモードに入る(ホームディレクトリに戻る)
下記コマンドを打つ。https://docs.abci.ai/ja/03/#interactive-jobs 参考
$ qrsh -g gab50304 -l rt_G.small=1 -l h_rt=12:00:00
rt_G.small=1というのはGPUを一つもつ計算機を一つ借りる、というオプション。お安い。当面はこれで足りるのでは。gab50304のところは自分の所属するグループ名にする。
慣れてきてGPUを4つ使いたいときはrt_F=4とする。このコマンドを打った後はホームディレクトリに戻されて、各種モジュールロードなどもリセットされる。インタラクティブモードから抜けたいときは
$ exit
と打てばよい 。
6. 再度仮想環境をアクティベートする
2の手順を繰り返す感じで
まず仮想環境アクティベート
$ source ~/my-project_3.10/bin/activate
pythonを使えるようにmodule load
$ module load python/3.10
pytorchがgpuを利用できるように専用ライブラリをmodule load
$ module load cuda/11.8
7. サンプルを実行する (mnistのクラス分け)
pytorchのexamplesディレクトリまで移動
$ cd pytorch/examples
$ ls
examplesに含まれるフォルダが表示される。今回はmnistを試す。
$ cd mnist
$ python main.py
ここまで上手くいっていれば計算が走るはず
注意:インタラクティブモードに入ると文章を編集したときに保存ができない様子(ハングする)
===
(job投入によるプログラム実行について書く)
===
(ここから参考情報)
ABCIインタラクティブモードに入って
(例えば) $ qrsh -g gab{グループ番号} -l rt_G.small=1 -l h_rt=12:00:00
$ cd ~/{exampleを置いたディレクトリ}/example/mnist
$ module purge
$ module load cuda/10.1
$ CUDA_VISIBLE_DEVICES=0
$ python main.py --batch-size=64
Kerasのインストールメモ
最新のtensorflow-gpuは2.0。これをABCIで使いたい場合は
module load cuda/10.0
module load cudnn/7.6/7.6.0
CUDA_VISIBLE_DEVIDE=0
とし、下記を実行。バージョンによってはpytorchとはcudaバージョンが違うことに注意
$ pip install setuptools --upgrade
$ pip install tensorflow-gpu
pip install tensorflowではcpu版のtensorflowがインストールされてしまうので注意。インストールしてしまった場合には上書き不可なので一度
$ pip uninstall tensorflow
する必要。
旧計算機環境との整合性のため、tensorflowのversion 1.13を導入する場合
pip install tensorflow-gpu==1.13.2
pip install keras
実行時に下記を指定する
module load cuda/10.0
module load cudnn/7.4
CUDA_VISIBLE_DEVIDE=0
python ***.py
ABCI インタラクティブモードへの入り方 (参考)
$ qrsh -g [group_id] -l rt_F=1 -l h_rt=12:00:00
$ source /etc/profile.d/modules.sh
$ module load python/3.6/3.6.5
$ module avail
$ python3 -m venv test
$ source test/bin/activate
$ source /etc/profile.d/modules.shmodule load python/3.6/3.6.5
$ source ~/venv/test/bin/activate