Compute
PyTorch + CUDA
余計な主張のない選択肢です。公式の PyTorch イメージ、ビルドに合わせた CUDA、SSH 経由の root シェル、そのほかに邪魔をするものはありません。
手に入るもの
Section titled “手に入るもの”テンプレート一覧には、上流の 4 つのタグがあります。いずれも公式の pytorch/pytorch イメージで、プラットフォームの SSH レイヤー以外に手は加えていません。
| テンプレート | イメージ | PyTorch | CUDA |
|---|---|---|---|
| PyTorch 2.8 - Cuda 12.9 | pytorch/pytorch:2.8.0-cuda12.9-cudnn9-runtime | 2.8.0 | 12.9 |
| PyTorch | pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime | 2.5.1 | 12.4 |
| PyTorch 2.2 - Cuda 12.1 | pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime | 2.2.0 | 12.1 |
| PyTorch 2.1 - Cuda 11.8 | pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime | 2.1.0 | 11.8 |
古いものに固定される理由——古い CUDA でビルドされた依存関係や、PyTorch のメジャーバージョンに追いついていないリポジトリ——がなければ、最新を選んでください。
始める前に知っておくべきことが 2 つあります。
- Web UI はありません。 これらのテンプレートはポート 80 で何も動かさないため、
https://<your-slug>.instance.grafilab.aiは応答しません。作業は SSH で行い、ブラウザで見たいものは自分で起動して Web Access で公開します。 - これらは
develではなくruntimeイメージです。 CUDA のランタイムライブラリは入っていますが、ツールキットは入っていないためnvccがありません。インストール時に CUDA カーネルをコンパイルするパッケージは失敗します。トラブルシューティング を参照してください。
スクリプト向けのテンプレートです。起動して回しっぱなしにする学習ループ、評価のスイープ、独自の CLI を持つリポジトリなど。クリーンな環境と、それを完全に制御する権限が手に入ります。
ブラウザでセルごとに作業したいなら、JupyterLab が同じ考え方にノートブックサーバーを載せたものです。ブラウザ上の IDE でファイルを編集したいなら code-server を使ってください。
インスタンスをデプロイし、ステップ 2 の Template Selection で PyTorch のカードのいずれかを選びます。学習または推論に使うモデルに合わせて、カードの VRAM を選んでください。詳しい手順は GPU インスタンスをデプロイする にあります。
接続して CUDA を確認する
Section titled “接続して CUDA を確認する”-
In the console open My Instance (
https://app.grafilab.ai/orders) and find the card for your instance. Wait until its status reads Active. -
Click Connect. The Connect with SSH dialog shows an SSH Connect command and a Password.
-
Copy the command into a terminal, press Enter, and paste the password when prompted. You land in a root shell inside the container.
まず、ドライバがカードを認識しているか確認します。
nvidia-smi次に、PyTorch から見えているか確認します。
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0))"True と、レンタルしたカードの名前が出れば正常です。False になる場合は トラブルシューティング を参照してください。
コードとデータをマシンに載せる
Section titled “コードとデータをマシンに載せる”git clone https://github.com/<owner>/<repo>.gitcd <repo>pip install -r requirements.txtホストとポートは Connect ダイアログの SSH Connect コマンドから取得します。
scp -P <port> ./dataset.zip <your-slug>@<ssh-proxy-host>:/root/rsync -avP -e "ssh -p <port>" ./project/ <your-slug>@<ssh-proxy-host>:/root/project/インスタンスの回線はあなたの上り回線よりはるかに高速なので、公開データは直接取得してください。
wget https://example.com/dataset.tar.gzhuggingface-cli download <repo-id> --local-dir ./dataコーヒー休憩より長くかかるものは tmux の中で実行し、SSH が切れてもジョブが生き残るようにしてください。
tmux new -s trainpython train.pyCtrl-b に続けて d でデタッチ、tmux attach -t train で戻ります。出力をファイルに残せればよいだけなら、nohup python train.py > train.log 2>&1 & でも構いません。
サービスを公開する
Section titled “サービスを公開する”はじめからポート 80 で動くサービスはないので、ブラウザから触りたいものは自分で起動してプロキシ経由でマッピングします。localhost ではなく、すべてのインターフェースにバインドしてください。
pip install jupyterlabjupyter lab --ip 0.0.0.0 --port 8888 --allow-root続いてインスタンスカードの Web Access を開き、Service Name と Port に 8888 を指定してマッピングを追加し、生成されたプロキシ URL を使います。Gradio アプリなど、ほかのサーバーでも同じです。手順は インスタンスを管理する にあります。
永続性とバックアップ
Section titled “永続性とバックアップ”Nothing persists past the rental
Instances have no persistent volume. Anything you write at runtime — downloaded models, installed packages, notebooks, outputs — lives in the container for the lifetime of the rental and is gone when it expires. Before Expire at, back up the folders you care about to Grafilab storage and download the archive.
守るべきはチェックポイントです。書き出し先を意識して選び、実行が生成するそばからマシンの外——git リモート、オブジェクトストレージ、Hugging Face のリポジトリ——へ送り出し、インスタンス上にしかないものは Expire at の前にインスタンスカードの Backup で保存してください。
トラブルシューティング
Section titled “トラブルシューティング”- GPU ノードなのに
torch.cuda.is_available()がFalseを返す。 ノードの NVIDIA ドライバが、イメージのビルドに使われた CUDA より古いということです。より古い CUDA タグのテンプレート——2.5.1-cuda12.4や2.2.0-cuda12.1——で起動し直すか、別のノードを選んでください。 nvcc: command not found、またはパッケージが CUDA 拡張のビルドに失敗する。 これらは CUDA ツールキットのないruntimeイメージです。ビルド済みの wheel があればそれを入れるか、対応する-develのイメージタグからカスタムテンプレートを作ってください。カスタムテンプレート を参照してください。- 起動直後の
Connection refused。 コンテナがまだ起動中です。インスタンスカードが Active になるまで待ってください。 - DataLoader が共有メモリのエラーで落ちる。 コンテナの
/dev/shmは 2 GB です。num_workersを下げるか、torch.multiprocessing.set_sharing_strategy("file_system")を設定してください。

