[Rocky] nvidia-smi 실행이 느릴 때 해결 방법 : Persistence 설정하기






1. 개요

  • NVIDIA Persistence 관련 설정을 합니다.



2. 버전

  • Rocky 8.10



3. 내용




3-1. 증상 소개

  • nvidai-smi를 실행할 때 몇 초동안 응답이 지연되는 경우가 발생합니다.
  • 특히 다중 GPU 환경 또는 일정 시간이 지나 GPU가 저전력 모드로 전환될 때 이런 형상이 자주 발생합니다.



3-2. 원인

  • NVIDIA GPU는 사용하지 않을 때 전력을 절약하기 위해 AutoBoost 및 Power Management 기능을 활용합니다.
  • nvidia-smi 실행 시 GPU 상태를 확인하는 과정에서 장치 초기화로 인해 지연이 발생할 수 있습니다.
  • 이를 해결하기 위해 nvidia-persistenced 서비스를 활용하면 GPU 상태 유지를 통해 초기화 지연을 장지할 수 있습니다.



3-3. Persistence Mode(nvidia-smi -pm 1)

  • 영구 모드(Persistence Mode)를 활성화하는 명령어입니다.
  • GPU가 사용되지 않을 때도 상태를 유지하여, 다시 사용할 때 초기화 과정을 줄여줍니다.
  • 하지만 재부팅 후에는 기본적으로 비활성화되므로, 다시 실행해야 합니다.



3-4. NVIDIA Persistence Daemon(nvidia-persistenced)

  • 백그라운드에서 GPU 상태를 유지하는 데몬(서비스)입니다.
  • nvidia-smi -pm 1과 비슷한 역할을 하지만, 데몬이 실행된 동안 GPU 상태를 지속적으로 유지합니다.
  • nvidia-smi -pm 1보다 더 강력한 GPU 상태 유지 기능을 제공할 수 있습니다.
  • 재부팅하면 실행되지 않으므로 systemd로 설정해야 합니다.



3-5. Persistence Mode, NVIDIA Persistence Daemon 차이점

명령어기능설명재부팅 후 유지 여부
nvidia-smi -pm 1영구 모드(Persistence Mode) 설정GPU가 사용되지 않아도 전원을 유지하여 nvidia-smi실행 속도를 빠르게 함❌ (재부팅하면 해제됨)
nvidia-persistencedGPU 상태 유지 서비스nvidia-smi -pm 1과 유사하지만, 데몬 프로세스로 GPU 상태를 유지❌ (재부팅하면 해제됨)
둘 다 설정 (systemd 사용)영구 모드 + GPU 상태 유지nvidia-persistenced를 실행하고 nvidia-smi -pm 1도 활성화하면 GPU 초기화 지연 최소화✅ (자동 실행 설정하면 유지됨)



4. NVIDIA Persistence Mode




4-1. 증상 확인

# nvidia-smi
===========================================================================================
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.127.08             Driver Version: 550.127.08     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| 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 80GB PCIe          Off |   00000000:1B:00.0 Off |                    0 |
| N/A   58C    P0             95W /  300W |       1MiB /  81920MiB |      3%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+

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



4-2. 설정

# nvidia-smi -pm 1
==================================================
Enabled persistence mode for GPU 00000000:1B:00.0.
All done.
==================================================



4-3. 설정 확인

# nvidia-smi
===========================================================================================
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.127.08             Driver Version: 550.127.08     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| 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 80GB PCIe          On  |   00000000:1B:00.0 Off |                    0 |
| N/A   58C    P0             86W /  300W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+

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



5. NVIDIA Persistence Daemon




5-1. 실행

# nvidia-persistenced



5-2. 실행 확인

# nvidia-smi
===========================================================================================
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.127.08             Driver Version: 550.127.08     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| 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 80GB PCIe          On  |   00000000:1B:00.0 Off |                    0 |
| N/A   58C    P0             86W /  300W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+

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


# ps aux | grep nvidia-persistenced
=======================================================================================
root       10103  0.0  0.0  18536  1912 ?        Ss   20:57   0:00 nvidia-persistenced
root       10231  0.0  0.0 222016  1092 pts/1    S+   20:57   0:00 grep --color=auto nvidia-persistenced
=======================================================================================



5-3. systemd 서비스 설정

# vim /etc/systemd/system/nvidia-persistenced.service
=====================================================
[Unit]
Description=NVIDIA Persistence Daemon
After=multi-user.target

[Service]
Type=forking
ExecStart=/usr/bin/nvidia-persistenced
ExecStop=/usr/bin/nvidia-persistenced --stop
Restart=always

[Install]
WantedBy=multi-user.target
=====================================================



5-4. 서비스 활성화 및 실행

# systemctl daemon-reload
# systemctl enable nvidia-persistenced
# systemctl start nvidia-persistenced



5-5. 확인

# reboot


# systemctl status nvidia-persistenced
===============================================================================================
 nvidia-persistenced.service - NVIDIA Persistence Daemon
   Loaded: loaded (/etc/systemd/system/nvidia-persistenced.service; enabled; vendor preset: di>
   Active: active (running) since Fri 2024-12-27 21:02:06 KST; 14s ago
  Process: 6671 ExecStart=/usr/bin/nvidia-persistenced (code=exited, status=0/SUCCESS)
 Main PID: 6672 (nvidia-persiste)
    Tasks: 1 (limit: 3355442)
   Memory: 952.0K
   CGroup: /system.slice/nvidia-persistenced.service
           └─6672 /usr/bin/nvidia-persistenced

Dec 27 21:02:05 node01 systemd[1]: Starting NVIDIA Persistence Daemon...
Dec 27 21:02:05 node01 nvidia-persistenced[6672]: Started (6672)
Dec 27 21:02:06 node01 systemd[1]: Started NVIDIA Persistence Daemon.
===============================================================================================


# nvidia-smi
===========================================================================================
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.127.08             Driver Version: 550.127.08     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| 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 80GB PCIe          On  |   00000000:1B:00.0 Off |                    0 |
| N/A   50C    P0             53W /  300W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+

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



Leave a Comment