- LINUX

[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                                                             |
+-----------------------------------------------------------------------------------------+
===========================================================================================



seuheu

최근 게시물

[Linux] Rocky Linux 9.5 LVM 스냅샷 실습 ext4/XFS 스냅샷 생성·변경·병합(롤백) 가이드[Linux] Rocky Linux 9.5 LVM 스냅샷 실습 ext4/XFS 스냅샷 생성·변경·병합(롤백) 가이드

1. 개요 본 글은 LVM의 스냅샷(snapshot) 기능으로 복구 지점 생성 → 파일 변경 → 스냅샷 병합(rollback) 과정을 실습합니다. 동일한…

%일 전

[Linux] Rocky Linux 9.5 LVM PV/VG/LV 구축, 온라인 확장, ext4 오프라인 축소

https://youtu.be/ZcxB7akkDKs 1. 개요 두 개의 디스크(/dev/vdb, /dev/vdc)로 LVM을 구성하고, ext4·XFS 파일시스템 생성 → 마운트 → VG/LV 확장 → ext4 축소(오프라인)까지 전체…

%일 전

[Linux] Rocky Linux 9.5 Parted로 GPT 파티셔닝: ext4/XFS 포맷과 fstab 자동 마운트

https://youtu.be/XYBR1ZFrV9s 1. 개요 parted를 사용해 새 디스크에 GPT 라벨 생성 → 파티션 생성(ext4/XFS) → 포맷/마운트 →…

%일 전

[Linux] Rocky Linux 9.5 FDISK MBR 파티셔닝 : ext4/XFS 포맷과 fstab 자동 마운트

https://youtu.be/yYV8RQKCFzA 1. 개요 이 문서는 fdisk를 사용해 MBR(DOS) 디스크에 파티션을 생성하고, ext4/XFS 파일시스템을 포맷·마운트, /etc/fstab에 등록했다가, 안전하게 해제·삭제하는 전…

%일 전

[Linux] MBR vs GPT : 리눅스 파티션 방식 쉽게 비교

1. 개요 Linux에서 디스크 파티션 스타일은 MBR(Master Boot Record) 와 GPT(GUID Partition Table)에 대해 설명합니다. 2. MBR이란? 디스크…

%일 전

[WindowsServer] Windows Server 2025 설치

https://youtu.be/CNd1bJV4wGY 1. 개요 Windows Server를 새로 설치할 때의 설치 과정을 단계별로 정리하였습니다. Windows Server 설치…

%일 전