🙆

NVIDIA Brev上でGPUインスタンスを立ち上げる方法

に公開

今回はNVIDIA Brev(以下、Brev)を利用してGPUインスタンスを立ち上げる方法をご紹介します。ディープラーニングモデルの開発をはじめ、様々な用途でGPUインスタンスを利用したい場合があるかと思います。そのような場合に取りうる選択肢の一つとして、Brevを利用することができ、その利用方法を紹介できればと思います。

NVIDIA Brevとは?

NVIDIA Brevは、一般的なクラウドプラットフォーム上のNVIDIA GPUインスタンスへの効率的なアクセスをはじめとして自動環境セットアップ、柔軟な展開オプションを提供し、開発者がすぐに実験を開始できるようにしてくれるサービスとなります。例えばインスタンスを作成すればJupyter環境をあらかじめ設定しておいたり、セットアップスクリプトを指定することで環境を構築したりできます。GPUインスタンスの利用料は従量課金となっており、時間あたりの金額がインスタンスごとに記載されています。

利用可能なGPUインスタンスですが、執筆時点では以下が利用可能となっています。

  • B200
  • RTX PRO 6000/RTX 6000 Ada
  • H200/H100
  • A100
  • L40S/L40
  • A10/A10G
  • L4
  • T4
  • A40
  • P40
  • V100
  • A6000/A5000/A4000
  • A16
  • M60

また、GPUも一つだけでなく同じGPUを複数割り当てることもできます。

https://developer.nvidia.com/brev

早速使ってみる

以降ではBrevの使い方を紹介しようと思います。登録方法についてですが、以下のアドレスを開いていただき、登録をしてもらえればと思います。

https://login.brev.nvidia.com/signin

GPUインスタンスの起動

ログインが完了すると以下のようなトップページが表示されます。

それでは早速Create New Instanceを選択してGPUインスタンスを作成します。Create New Instanceを選択するとまずはGPUインスタンスタイプを選択する画面が表示されます。

選択画面に行くとデフォルトではL40Sインスタンスの選択がされており、今回はL40Sの一番上のインスタンスを選択してみます。プロバイダーはMASSEDCOMPUTEであり、VRAMは48ギガバイト、ディスクストレージは625ギガバイトとなります。インスタンスを選択すると以下のように確認画面が表示されます。

この画面ではディスク容量が変更できる場合は変更でき、インスタンスの名前も変更できます。また、VM Mode w/ Jupyterを選択すると、以下のようにインスタンスの詳細設定ができます。

例えばFeatured ContainersをみるとPyTorchやTensorflow2の環境をあらかじめ用意したコンテナを選択できたりと、あらかじめ豊富な環境が用意されています。今回はデフォルト設定で起動しますが、用途に合わせてこの辺りもぜひ利用してみてください。

設定が終わったらDeployを押すと以下のような画面に遷移します。この画面ではBrevに関するCLIのインストールやSSHの設定などをするためのコマンドであったり、ポート解放(プロバイダーによってはできません)ができるようになっています。インスタンスの準備が整うとRunningステータスに切り替わります。

macbookをご利用の方は、まずBrevのCLIを以下のコマンドでインストールしてください。

brew install brevdev/homebrew-brev/brev

インスタンスの準備ができたらまずはログインを処理を実行するために以下を実行します。なお、画面上のこのコマンドをクリックするとトークンが入った状態のコマンドを利用できます。

brev login --token *****

起動状況についてはbrev lsコマンドを用いると確認できます。

brev ls

# 結果
You have 1 instances in Org ...
 NAME              STATUS    BUILD     SHELL      ID         MACHINE
 awesome-gpu-name  STARTING  BUILDING  NOT READY  8zsr56c8j  massedcompute_L40S (gpu)

ログインが完了したらインスタンス名を指定して以下のコマンドでSSHアクセスできます。

brev shell awesome-gpu-name

ログインに成功すると、例えば今回のプロバイダーの場合以下のような結果になります。

GPUインスタンスということで、nvidia-smiコマンドでGPUインスタンスについて確認してみます。結果をみるとL40Sを使っており、GPUメモリも4606MiBと確認できます。

shadeform@shadecloud:~$ nvidia-smi

# 結果
Sun Nov  2 07:34:13 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.64.03              Driver Version: 575.64.03      CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA L40S                    On  |   00000000:01:00.0 Off |                    0 |
| N/A   29C    P8             23W /  350W |       0MiB /  46068MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

GPUが使えるかどうかをチェックするため、PyTorchをインストールしてCUDAメモリ上にテンソルを用意した時の結果をみてみると、以下のようにGPUメモリが利用されていることが確認できました。

scpによるファイルのコピー

SSHアクセスができるということは、もちろんscpによりGPUインスタンスに対してファイルをコピーすることができます。GPUインスタンス名(今回であればawesome-gpu-name)を利用することでファイルをコピーすることができます。

scp local_file awesome-gpu-name:<remote file path>  # GPUインスタンスへコピー
scp awesome-gpu-name:<remote file path> local_file  # ローカルへコピー

インスタンスの停止

GPUインスタンスを利用しない場合は停止または削除をすることで対応できます。プロバイダによっては停止することができないのですが、対応しているプロバイダでは停止することができ、その場合は作業内容など状態を維持することができます。そのため、次に再開した場合に前回の続きから作業を再開することができます。なお、停止している間もストレージを占有する必要があるため、少額ですが従量課金が発生します。

まとめ

今回はNVIDIA BrevでGPUインスタンスを確保する方法を紹介しました。今回紹介した内容はBrevが提供しているごく一部の機能でしたが、GPUを自分で買うことなく必要な時に必要な分だけ利用できるので、ぜひ選択肢の一つとして考えていただければと思います。

Discussion