Back

Virtual Machine Setup

Background

開発や実験をするマシンとして一番は手元の macbook を使うことが多いが、昨今の DNN 系の手法など試す場合はどうしても spot でスペックの大きい GPU インスタンスを立てて実験をしたくなるケースが多い。ここでは GCE を利用したマシンの setup 方法について記述する。

Setup

インスタンスの作成

コンソールから Compute Engine のインスタンスを作成する。作成時には以下の点を留意。

  • GCP から公式の DNN 向けのイメージが提供されているので、これを利用することで cuda 関係の toolchain のセットアップをする手間が省ける。
  • デフォルトのディスクサイズは小さめなのであらかじめ増設しておいてもよい
  • 費用コストを節約したい場合は、

TODO: インスタンステンプレートを作成する

ローカルマシンのセットアップ

作成したインスタンスへ ssh 接続するための設定

Terminal window
gcloud compute config-ssh --project PROJECT_NAME

以降ローカルマシンから以下のように ssh 接続できる

Terminal window
ssh INSTANCE_NAME.REGION.PROJECT_NAME

VM のセットアップ

まずは pytorch から cuda が利用可能かどうかを確認。

Terminal window
pip install torch
...
ipython
In [1]: import torch
In [2]: torch.cuda.is_available()
Out[2]: True

git の設定とレポジトリの clone

Terminal window
# install gh
(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
gh auth login
# setup
git config --global user.name "mana-ysh"
git config --global user.email "int.toshi13@gmail.com"
git clone git@github.com:mana-ysh/repo.git

zsh 系の設定

Terminal window
sudo apt install zsh
sudo chsh -s /bin/zsh "$USER"
# install oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# install starship
curl -sS https://starship.rs/install.sh | sh
# (optional) install forgit
git clone https://github.com/wfxr/forgit ~/.forgit
cd /path/to/repo/dotfiles
make install

cli 系のツールの install

Terminal window
# install aqua
curl -sSfL https://raw.githubusercontent.com/aquaproj/aqua-installer/v3.0.1/aqua-installer | bash
cd /path/to/repo
aqua i

言語周りのツールチェーンの設定

Terminal window
# Install poetry before activating mise
curl -sSL https://install.python-poetry.org | python3 -
# Use mise
curl https://mise.run | sh
# note: 事前に~/.config/mise/config.tomlをinstallしておく
mise install
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Others
npm install -g yarn

Troubleshooting

nvidia-smiが失敗する

以下のレポジトリでGCE向けのGCUセットアップスクリプトが同梱されているのでこれを実行する。 https://github.com/GoogleCloudPlatform/compute-gpu-installation