GPU VM 문제 해결


이 페이지에서는 GPU가 연결된 Compute Engine에서 실행되는 VM의 문제를 해결하는 방법을 설명합니다.

GPU가 연결된 VM을 만들려고 할 때 오류가 발생하면 리소스 가용성 오류 문제 해결VM 만들기 및 업데이트 문제 해결을 검토하세요.

NVIDIA DCGM을 사용하여 GPU VM 문제 해결

NVIDIA Data Center GPU Manager(DCGM)는 클러스터 환경에서 NVIDIA 데이터 센터 GPU를 관리하고 모니터링하기 위한 도구 모음입니다.

DCGM을 사용하여 GPU 환경의 문제를 해결하려면 다음을 완료합니다.

  • VM에 연결된 GPU 모델에 최신 권장 NVIDIA 드라이버를 사용하고 있는지 확인합니다. 드라이버 버전을 검토하려면 권장되는 NVIDIA 드라이버 버전을 참조하세요.
  • 최신 버전의 DCGM이 설치되어 있는지 확인합니다. 최신 버전을 설치하려면 DCGM 설치를 참조하세요.

문제 진단

dcgmi 진단 명령어를 실행하면 진단 도구에서 보고된 문제에는 문제에 대한 조치를 취하는 다음 단계가 포함됩니다. 다음 예시에서는 dcgmi diag -r memory -j 명령어의 실행 가능한 출력을 보여줍니다.

{
  ........
   "category":"Hardware",
   "tests":[
      {
         "name":"GPU Memory",
         "results":[
            {
               "gpu_id":"0",
               "info":"GPU 0 Allocated 23376170169
bytes (98.3%)",
               "status":"Fail",
               ""warnings":[
                  {
                     "warning":"Pending page
retirements together with a DBE were detected on GPU 0. Drain the GPU and reset it or reboot the node to resolve this issue.",
                     "error_id":83,
                     "error_category":10,
                     "error_severity":6
                  }
               ]
            }
  .........

앞의 출력 스니펫에서, 복구할 수 없는 오류로 인해 GPU 0에 대기 중인 페이지 중단이 있음을 알 수 있습니다. 출력은 고유한 error_id와 문제 디버깅에 대한 조언을 제공했습니다. 이 출력 예시에서는 GPU를 드레이닝하고 VM을 재부팅하는 것이 좋습니다. 대부분의 경우 이 출력 섹션에 있는 안내를 따르면 문제를 해결하는 데 도움이 될 수 있습니다.

지원 사례 접수하기

dcgmi 진단 실행 출력에서 제공하는 안내에 따라 문제를 해결할 수 없으면 지원 케이스를 열 수 있습니다. 지원 케이스를 제출할 때는 다음 정보를 제공해야 합니다.

  1. 실행된 명령어와 반환된 출력
  2. 호스트 엔진 및 진단 로그와 같은 관련 로그 파일 필요한 로그 파일을 수집하려면 gather-dcgm-logs.sh 스크립트를 실행하면 됩니다.

    Debian 및 RPM 기반 시스템이 기본 설치된 경우 이 스크립트는 /usr/local/dcgm/scripts에 있습니다.

  3. dcgmi diag 실패의 경우 실패한 플러그인의 통계 파일을 제공합니다. 통계 파일은 다음 이름 지정 규칙 stats_PLUGIN_NAME.json을 사용합니다.

    예를 들어 pcie 플러그인이 실패하면 stats_pcie.json이라는 파일을 포함합니다.

  4. NVIDIA 시스템 정보 및 드라이버 상태 이 정보를 수집하려면 nvidia-bug-report.sh 스크립트를 실행하면 됩니다.

    또한 이 스크립트를 실행하면 문제가 DCGM 자체의 버그가 아니라 다른 NVIDIA 종속 항목으로 인해 발생한 경우 추가 디버깅에 도움이 됩니다.

  5. 오류 발생 전 사용자 환경에 적용된 최근 변경사항에 대한 세부정보입니다.

Xid 메시지

GPU가 연결된 VM을 만든 후에는 애플리케이션에서 GPU에 액세스할 수 있도록 GPU VM에 NVIDIA 기기 드라이버를 설치해야 합니다. 하지만 이러한 드라이버에서 오류 메시지를 반환하는 경우가 있습니다.

Xid 메시지는 Linux VM의 운영체제 커널 로그나 이벤트 로그에 출력되는 NVIDIA 드라이버의 오류 보고서입니다. 이러한 메시지는 /var/log/messages 파일에 저장됩니다.

가능한 원인을 포함한 Xid 메시지에 대한 자세한 내용은 NVIDIA 문서를 참조하세요.

다음 섹션에서는 GPU 메모리 오류, GPU 시스템 프로세서(GSP) 오류, 잘못된 메모리 액세스 오류와 같은 가장 일반적인 유형으로 그룹화된 일부 Xid 메시지를 처리하는 방법을 안내합니다.

GPU 메모리 오류

GPU 메모리는 데이터의 임시 저장에 사용할 수 있는 GPU에서 사용 가능한 메모리입니다. GPU 메모리는 단일 비트 오류(SBE)를 감지 및 수정하고 이중 비트 오류(DBE)를 감지 및 보고하는 오류 정정 코드(ECC)로 보호됩니다.

NVIDIA A100 GPU 출시 이전에는 동적 페이지 중단이 지원되었습니다. NVIDIA A100 이후 GPU 출시 버전(예: NVIDIA H100)에는 행 다시 매핑 오류 복구가 도입되었습니다. ECC는 기본적으로 사용 설정되어 있습니다. ECC를 사용 설정 상태로 유지하는 것이 좋습니다.

일반적인 GPU 메모리 오류와 권장 해결 방법은 다음과 같습니다.

Xid 오류 메시지 해결 방법
Xid 48: Double Bit ECC
  1. 워크로드를 중지합니다.
  2. 삭제하고 VM을 다시 만듭니다. 오류가 계속되면 Cloud Customer Care에 케이스를 제출합니다.
Xid 63: ECC page retirement or row remapping recording event
  1. 워크로드를 중지합니다.
  2. GPU를 재설정합니다.
Xid 64: ECC page retirement or row remapper recording failure

그러면 메시지에 다음 정보가 포함됩니다.

Xid 64: All reserved rows for bank are remapped
  1. 워크로드를 중지합니다.
  2. 삭제하고 VM을 다시 만듭니다. 오류가 계속되면 Cloud Customer Care에 케이스를 제출합니다.

다음 Xid 메시지 중 최소 2개 이상이 함께 표시되는 경우:

  • Xid 48
  • Xid 63
  • Xid 64

그러면 메시지에 다음 정보가 포함됩니다.

Xid XX: row remap pending
  1. 워크로드를 중지합니다.
  2. GPU를 재설정합니다. GPU를 재설정하면 행 다시 매핑 및 페이지 중단 프로세스에서 GPU를 완료하고 복구할 수 있습니다.
Xid 92: High single-bit ECC error rate 이 Xid 메시지는 GPU 드라이버에서 수정 가능한 오류를 수정한 후에 반환되며 워크로드에 영향을 미치지 않습니다. 이 Xid 메시지는 정보 제공용입니다. 이와 관련해 별도의 조치를 취할 필요는 없습니다.
Xid 94: Contained ECC error
  1. 워크로드를 중지합니다.
  2. GPU를 재설정합니다.
Xid 95: Uncontained ECC error
  1. 워크로드를 중지합니다.
  2. GPU를 재설정합니다.

GSP 오류

GPU 시스템 프로세서(GSP)는 GPU에서 실행되며 일부 하위 수준의 하드웨어 관리 기능을 처리하는 마이크로 컨트롤러입니다.

Xid 오류 메시지 해결 방법
Xid 119: GSP RPC timeout
  1. 워크로드를 중지합니다.
  2. 삭제하고 VM을 다시 만듭니다. 오류가 계속되면 NVIDIA 버그 신고를 수집하고 Cloud Customer Care에 케이스를 제출합니다.
Xid 120: GSP error

잘못된 메모리 액세스 오류

애플리케이션에서 잘못된 메모리 액세스 문제가 발생하면 다음 Xid가 반환됩니다.

  • Xid 13: Graphics Engine Exception
  • Xid 31: GPU memory page fault

잘못된 메모리 액세스 오류는 일반적으로 워크로드가 이미 해제되었거나 범위를 벗어난 메모리에 액세스하려고 할 때 발생합니다. 이 문제는 잘못된 포인터 역참조나 범위를 벗어난 배열과 같은 문제로 인해 발생할 수 있습니다.

이 문제를 해결하려면 애플리케이션을 디버깅해야 합니다. 애플리케이션을 디버깅하려면 cuda-memcheckCUDA-GDB를 사용하면 됩니다.

매우 드물게 하드웨어 성능 저하로 인해 잘못된 메모리 액세스 오류가 반환될 수 있습니다. 하드웨어 문제인지 확인하려면 NVIDIA Data Center GPU Manager(DCGM)를 사용합니다. dcgmi diag -r 3 또는 dcgmi diag -r 4를 실행하여 서로 다른 수준의 테스트 범위와 기간을 실행할 수 있습니다. 하드웨어 문제인 경우 Cloud Customer Care에 케이스를 제출합니다.

기타 일반적인 Xid 오류 메시지

Xid 오류 메시지 해결 방법
Xid 74: NVLINK error
  1. 워크로드를 중지합니다.
  2. GPU를 재설정합니다.
Xid 79: GPU has fallen off the bus

즉, 드라이버가 GPU와 통신할 수 없습니다.

VM을 재부팅합니다.

GPU 재설정

일부 문제에서는 GPU를 재설정해야 할 수 있습니다. GPU를 재설정하려면 다음 단계를 완료합니다.

  • N1, G2, A2 VM의 경우 sudo reboot를 실행하여 VM을 재부팅합니다.
  • A3 VM의 경우 nvidia-smi reset GPU를 실행합니다.

GPU를 재설정한 후에도 오류가 지속되면 VM을 삭제하고 다시 만들어야 합니다.

삭제하고 다시 만든 후에도 오류가 지속되면 Cloud Customer Care에 케이스를 제출하여 VM을 복구 단계로 이동합니다.