😀
GCPでのKaggleコンテナ開始方法
はじめに
ディスク利用料削減のため、コンペのたびにコンテナを削除しているので、自分用メモとして記載する。
GCPに限らず、UbuntuでKaggleコンテナを動かす際には参考になると思われる。
想定環境
- クラウドサービス: GCP
- マシンタイプ: n1-highmem-2
- GPU: 1 x NVIDIA T4
- イメージ: ubuntu-2204-jammy-v20221018
- ディスク種類: 標準永続ディスク
- ディスク容量: 200GB
コンテナイメージが80GB程度?と非常に大きいため、ディスク容量はできるだけ大きめのものを使用した方がよい。
コンテナイメージの取得に4時間ほどかかるので注意する。
手順
コマンドはすべてadminで実行する。
$ sudo su
NVIDIAドライバのインストール
# wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
# dpkg -i cuda-keyring_1.0-1_all.deb
# apt-get update
# apt-get -y install cuda
Dockerのインストール
# apt-get remove docker docker-engine docker.io
# apt-get update
# apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# apt-get update
# apt-get install docker-ce
NVIDIA container toolkit
# distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# apt update
# apt install nvidia-docker2
コンテナイメージの取得
4時間ほどかかるので注意する。
# git clone https://github.com/Kaggle/docker-python.git
# cd docker-python
# ./build -g
コンテナ起動
マルチプロセス処理をすることを想定してshm-size
を大きめに設定している。
# docker run -itd \
--gpus all \
--shm-size 512m \
-p 8888:8888 \
-v /root/workspace:/home \
--name kaggle \
-h kaggle \
kaggle/python-gpu-build:latest \
jupyter lab --ip=0.0.0.0 --allow-root --no-browser --NotebookApp.token=''
起動時にKaggleコンテナが起動する設定
# crontab -e
開かれたファイルの最下部に以下を追加する。
@reboot docker start kaggle
SSHポートフォワーディング
GCP CLIセットアップ後、ローカルで以下のコマンドを実行する。
$ gcloud compute ssh <instancename> -- -N -f -L 8888:localhost:8888
ローカルのブラウザでhttp://localhost:8888
にアクセスするとJupyter labの画面が表示される。
Discussion