0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GCPでGPU対応Docker環境の構築手順

Posted at

この記事は生成AIによって作成されています。

GCPでGPU対応Docker環境の構築手順

GCPでGPUを利用可能なDocker実行環境を構築する手順を詳しく解説します。

1. プロジェクトとGPUリソースの準備

プロジェクトの作成

  1. Google Cloud Consoleにアクセスし、新規プロジェクトを作成
  2. 請求先アカウントの設定(クレジットカード情報の登録が必要)
  3. Compute Engine APIの有効化

GPUリソースの割り当て申請

  1. IAMと管理 → 割り当てを選択
  2. フィルタに「GPUs (all regions)」と入力
  3. 必要なGPUタイプ(例:NVIDIA T4)の割り当て数を申請[1]

2. VMインスタンスの作成

基本設定

# インスタンス作成コマンド例
gcloud compute instances create "gpu-docker-instance" \
  --zone "asia-northeast1-a" \
  --machine-type "n1-standard-8" \
  --accelerator type=nvidia-tesla-t4,count=1 \
  --image-family "ubuntu-2004-lts" \
  --image-project "ubuntu-os-cloud" \
  --boot-disk-size "50GB" \
  --boot-disk-type "pd-ssd"

SSH接続の設定

  1. ローカル環境でSSH鍵を生成:
ssh-keygen -t ed25519
  1. 生成された公開鍵(.pub)をGCPコンソールのメタデータに登録
  2. SSH configファイルの設定:
# ~/.ssh/configに追加
Host gpu-docker
    HostName [VMの外部IP]
    User [ユーザー名]
    IdentityFile ~/.ssh/id_ed25519

3. GPU環境のセットアップ

NVIDIAドライバのインストール

# NVIDIAリポジトリの設定
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update

# NVIDIA Driver 565のインストール
sudo apt install -y nvidia-driver-565
sudo reboot

環境変数の設定

# ~/.bashrcに追加
export PATH=/usr/local/cuda-12.7/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.7/lib64:$LD_LIBRARY_PATH

# 設定の反映
source ~/.bashrc

CUDA Toolkit 12.7のインストール

# CUDA Toolkitのインストール
sudo apt install -y cuda-toolkit-12-7

インストール確認

# ドライバーバージョンの確認
nvidia-smi

# CUDAバージョンの確認
nvcc --version

4. Dockerのセットアップ

Dockerのインストール

# 必要なパッケージのインストール
sudo apt update
sudo apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# Dockerの公式GPGキーを追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Dockerリポジトリの設定
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Dockerのインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# ユーザーをdockerグループに追加
sudo usermod -aG docker $USER

5. NVIDIA Container Toolkitのインストール

# リポジトリの設定
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# NVIDIA Container Toolkitのインストール
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart docker

6. 動作確認

GPUサポートの確認

# NVIDIA-SMIコンテナでの確認
sudo docker run --gpus all nvidia/cuda:12.7.0-base nvidia-smi

サンプルGPUワークロードの実行

# TensorFlow-GPUコンテナの実行
docker run --gpus all -it tensorflow/tensorflow:latest-gpu python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

7. セキュリティとベストプラクティス

ファイアウォールの設定

  1. 必要最小限のポートのみを開放
  2. SSH接続用のポート(デフォルト22)のセキュリティ強化

Dockerのベストプラクティス

  1. コンテナごとに1つのアプリケーションを実行[5]
  2. イメージのサイズを最小限に保つ
  3. マルチステージビルドの活用
  4. 適切なタグ付けとバージョン管理

8. コスト管理

インスタンスの停止

  • 使用しない時間帯はインスタンスを停止
  • 永続ディスクのデータは保持される
  • GPUとCPUの課金を停止できる

コスト最適化

  1. プリエンプティブルインスタンスの利用検討
  2. 適切なディスクタイプの選択
  3. 自動シャットダウンスクリプトの活用

9. まとめ

このセットアップにより、GPUを活用したコンテナ開発環境が構築され、機械学習やディープラーニングのワークロードを効率的に実行できます。セキュリティとコスト管理を適切に行うことで、安全で効率的な開発環境として活用できます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?