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?

Colab x VSCode

Last updated at Posted at 2025-12-03

Colabを検索

スクリーンショット 2025-12-03 14.10.30.png

Kernel > Colab

スクリーンショット 2025-12-03 14.13.37.png

New Colab Server

スクリーンショット 2025-12-03 14.13.54.png

Login > Redirect

スクリーンショット 2025-12-03 14.14.38.png

New Colab Server > GPU > A100

スクリーンショット 2025-12-03 14.15.24.png

!nvidia-smi

スクリーンショット 2025-12-03 14.27.03.png

その他のGPU関連コマンド

nvidia-smi 詳細オプション

# 基本情報
$ nvidia-smi
$ nvidia-smi -l 1                    # 1秒間隔で更新
$ nvidia-smi -lms 500                # 500ms間隔

# プロセス詳細
$ nvidia-smi pmon                    # プロセスモニター
$ nvidia-smi pmon -s um              # メモリ使用量も表示

# 詳細情報
$ nvidia-smi -q                      # 全詳細情報
$ nvidia-smi -q -d MEMORY            # メモリ情報のみ
$ nvidia-smi -q -d UTILIZATION       # 使用率のみ
$ nvidia-smi -q -d TEMPERATURE       # 温度情報

# ユーザー別使用状況
$ nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv
$ fuser -v /dev/nvidia*              # GPUを使用中のユーザー確認

AMD GPU (ROCm)

$ rocm-smi
$ rocm-smi -l                        # ループモード
$ rocm-smi --showuse                 # 使用率
$ rocm-smi --showtemp                # 温度

CPU/メモリ監視

# システム概要
$ htop                               # インタラクティブなプロセスビューア
$ top                                # 標準プロセスモニター
$ btop                               # モダンなリソースモニター

# CPU情報
$ lscpu                              # CPU詳細情報
$ cat /proc/cpuinfo                  # CPU情報(生データ)
$ nproc                              # CPU数

# メモリ
$ free -h                            # メモリ使用量(人間が読みやすい形式)
$ vmstat 1                           # 仮想メモリ統計(1秒間隔)
$ cat /proc/meminfo                  # 詳細メモリ情報

# ユーザー別リソース使用
$ ps aux --sort=-%mem | head         # メモリ使用量でソート
$ ps aux --sort=-%cpu | head         # CPU使用量でソート
$ top -u username                    # 特定ユーザーのプロセス

ディスク・ストレージ

# ディスク使用量
$ df -h                              # ファイルシステム使用状況
$ du -sh /home/*                     # ホームディレクトリ別使用量
$ du -h --max-depth=1 /data | sort -h  # データディレクトリ容量

# I/O監視
$ iostat -x 1                        # I/O統計(1秒間隔)
$ iotop                              # プロセス別I/O使用量
$ dstat                              # 統合リソースモニター

ネットワーク

# ネットワーク使用量
$ iftop                              # リアルタイムネットワーク帯域
$ nethogs                            # プロセス別ネットワーク使用量
$ vnstat                             # 長期ネットワーク統計
$ ss -tuln                           # ソケット情報
$ netstat -tuln                      # ネットワーク接続

# 帯域幅テスト
$ iperf3 -s                          # サーバーモード
$ iperf3 -c server_ip                # クライアントモード

ユーザー・セッション管理

# ログイン中のユーザー
$ w                                  # ユーザーとその作業内容
$ who                                # ログイン中のユーザー
$ users                              # ユーザーリスト(簡易)
$ last                               # ログイン履歴

# リソース制限確認
$ ulimit -a                          # 現在のユーザーの制限
$ cat /etc/security/limits.conf      # システム全体の制限設定

システム情報

# OS情報
$ cat /etc/os-release                # OS詳細
$ uname -a                           # カーネル情報
$ hostnamectl                        # システム情報

# ハードウェア情報
$ lshw -short                        # ハードウェア概要
$ dmidecode                          # BIOS/ハードウェア詳細
$ inxi -F                            # システム情報まとめ

# 起動時間・負荷
$ uptime                             # 起動時間とロードアベレージ
$ cat /proc/loadavg                  # ロードアベレージ

統合監視ツール

# glances(オールインワン監視)
$ glances                            # 基本モード
$ glances -t 1                       # 1秒更新
$ glances --export-csv output.csv    # CSV出力

# nvtop(GPU版htop)
$ nvtop                              # NVIDIA GPU監視

# gpustat(シンプルなGPU監視)
$ gpustat                            # 一度だけ表示
$ gpustat -cp                        # CPU表示も追加
$ watch -n 1 gpustat                 # 1秒間隔で更新

リソース割り当て確認スクリプト例

# ユーザー別GPU使用状況
$ nvidia-smi --query-compute-apps=pid,used_memory --format=csv,noheader | \
  while IFS=',' read pid mem; do 
    user=$(ps -o user= -p $pid)
    echo "$user: $mem"
  done | sort | uniq

# ユーザー別メモリ使用量合計
$ ps aux | awk '{mem[$1]+=$6} END {for (u in mem) printf "%s: %.2f GB\n", u, mem[u]/1024/1024}' | sort -k2 -rn

# ユーザー別CPU使用率合計
$ ps aux | awk '{cpu[$1]+=$3} END {for (u in cpu) printf "%s: %.2f%%\n", u, cpu[u]}' | sort -k2 -rn

ログ・履歴

# システムログ
$ journalctl -f                      # リアルタイムログ
$ journalctl -u nvidia-smi           # 特定サービス
$ dmesg | tail                       # カーネルメッセージ

# GPUエラーログ
$ nvidia-smi -q -d ECC               # ECCエラー
$ dmesg | grep -i nvidia             # NVIDIA関連エラー

Jupiterで外部からアクセスする

1. 前提環境の準備

# システム更新
sudo apt update && sudo apt upgrade -y

# 基本パッケージ
sudo apt install -y python3 python3-pip python3-venv build-essential

2. NVIDIAドライバとCUDAのインストール

# NVIDIAドライバ確認
nvidia-smi

# 入ってない場合はインストール
sudo apt install -y nvidia-driver-535  # バージョンは環境に応じて

# CUDA Toolkit(PyTorchが必要とするバージョン)
# PyTorch 2.x系はCUDA 11.8 or 12.1が推奨
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install -y cuda-toolkit-12-1

# 環境変数設定
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# 再起動
sudo reboot

3. Jupyter Lab + PyTorchのインストール

# 仮想環境作成
python3 -m venv ~/jupyter_env
source ~/jupyter_env/bin/activate

# Jupyter Labインストール
pip install --upgrade pip
pip install jupyterlab

# PyTorch (CUDA 12.1版)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# よく使うライブラリ
pip install numpy pandas matplotlib scikit-learn transformers diffusers accelerate

# GPU確認用
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}'); print(f'GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else None}')"

4. Jupyterの設定

# 設定ファイル生成
jupyter lab --generate-config

# パスワード設定
jupyter lab password

5. ngrokのインストール

# ngrokインストール
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \
  sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \
  echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \
  sudo tee /etc/apt/sources.list.d/ngrok.list && \
  sudo apt update && sudo apt install ngrok

# または直接ダウンロード
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
tar xvzf ngrok-v3-stable-linux-amd64.tgz
sudo mv ngrok /usr/local/bin/

6. ngrok認証トークン設定

# https://dashboard.ngrok.com/get-started/setup でトークン取得
ngrok config add-authtoken YOUR_TOKEN_HERE

7. 起動

# 仮想環境アクティベート
source ~/jupyter_env/bin/activate

# Jupyter起動
jupyter lab --no-browser --port=8888

別のターミナルで:

# ngrokトンネル作成
ngrok http 8888

8. アクセス & GPU確認

ngrokが表示する https://xxxx.ngrok-free.app にアクセスし、Jupyterで以下を実行してGPU確認:

import torch

print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"CUDA version: {torch.version.cuda}")
print(f"GPU count: {torch.cuda.device_count()}")
if torch.cuda.is_available():
    print(f"GPU name: {torch.cuda.get_device_name(0)}")
    
# 簡単なテスト
x = torch.rand(5, 3).cuda()
print(f"\nTensor on GPU: {x.device}")

バックグラウンド実行(systemdサービス)

sudo nano /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter Lab
After=network.target

[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username
ExecStart=/home/your_username/jupyter_env/bin/jupyter lab --no-browser --port=8888
Restart=on-failure
Environment="PATH=/usr/local/cuda/bin:/home/your_username/jupyter_env/bin:/usr/bin"
Environment="LD_LIBRARY_PATH=/usr/local/cuda/lib64"

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable jupyter
sudo systemctl start jupyter
sudo systemctl status jupyter
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?