Open4

HuggingFace Space Zero GPUの環境

PlatPlat

CUDAバージョンを知りたいがドキュメント?全然載ってないので調査する

https://huggingface.co/zero-gpu-explorers

Dev モードでWeb版VSCodeが使えるので、そこからいろいろ操作できるので調べてみる

PlatPlat
$ uname -a
Linux r-{USERNAME}-{SPACE_NAME}-lq2a212t-2fd99-h8y9u 5.10.223-211.872.amzn2.x86_64 #1 SMP Mon Jul 29 19:52:29 UTC 2024 x86_64 GNU/Linux

{USERNAME}{SPACE_NAME}はそれぞれユーザー名とSpaceの名前。どうやら AWS の Amazom Linux 2 らしい?

PlatPlat
$ nvidia-smi
Failed to initialize NVML: Unknown Error

通常時はGPU割り当てがないからか、nvidia-smi が動作しない

なので、こんな感じでSpaceのGPUを割り当てて見てみる

test.py
import spaces
import os

@spaces.GPU(duration=5)
def check():
    print(os.system("nvidia-smi"))

check()

こんな感じ。

$ python ./test.py 
Waiting for a GPU to become available
Successfully acquired a GPU
/usr/local/lib/python3.10/site-packages/spaces/zero/wrappers.py:82: UserWarning: Using a ZeroGPU function outside of Gradio caching or request might block the app
  warnings.warn("Using a ZeroGPU function outside of Gradio caching or request might block the app")
Sat Aug 31 16:12:50 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.06             Driver Version: 535.183.06   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| 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 A100-SXM4-80GB          On  | 00000000:10:1D.0 Off |                   On |
| N/A   43C    P0              72W / 400W |                  N/A |     N/A      Default |
|                                         |                      |              Enabled |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| MIG devices:                                                                          |
+------------------+--------------------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |                   Memory-Usage |        Vol|      Shared           |
|      ID  ID  Dev |                     BAR1-Usage | SM     Unc| CE ENC DEC OFA JPG    |
|                  |                                |        ECC|                       |
|==================+================================+===========+=======================|
|  0    1   0   0  |             222MiB / 40192MiB  | 42      0 |  3   0    2    0    0 |
|                  |               2MiB / 32767MiB  |           |                       |
+------------------+--------------------------------+-----------+-----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A     13074      C   python                                        0MiB |
+---------------------------------------------------------------------------------------+

ちゃんと A100 が見える。

nvidia-smi の CUDA Version は現在のバージョンではなく、対応してる最大バージョンなのでほかの方法で確認する。

nvcc コマンドは存在しなかった。

PlatPlat

nvcc 以外のまともな方法がわからなかったので、適当にPyTorchを入れてそこから確認した。

test.py
test.py
import spaces
import os
import torch

@spaces.GPU(duration=5)
def check():
    print(torch.version.cuda)

check()
$ python ./test.py 
/usr/local/lib/python3.10/site-packages/spaces/zero/wrappers.py:82: UserWarning: Using a ZeroGPU function outside of Gradio caching or request might block the app
  warnings.warn("Using a ZeroGPU function outside of Gradio caching or request might block the app")
12.1

12.1 らしい。(2024/8/31)