NVIDIA GPU 가속 EC2 Linux 인스턴스의 Xid 오류 문제를 해결하려면 어떻게 해야 하나요?
NVIDIA GPU 가속 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에서 애플리케이션을 실행할 때 애플리케이션이 충돌했고 시스템 로그에서 GPU 관련 Xid 오류를 발견했습니다. GPU에서 진단 정보를 검색하고 GPU 관련 Xid 오류를 해결하려고 합니다.
간략한 설명
AWS는 GPU 가속을 지원하는 여러 EC2 인스턴스 패밀리를 제공합니다. GPU는 모든 GPU 가속 EC2 인스턴스 패밀리의 게스트 인스턴스로 전달됩니다. 이를 통해 GPU 하드웨어의 모든 기능을 사용할 수 있습니다.
해결 방법
nvidia-smi 진단 읽기 및 해석
nvidia-smi 도구를 사용하여 인스턴스에 연결된 NVIDIA GPU의 상태 및 성능에 대한 통계 및 진단을 검색할 수 있습니다. NVIDIA GPU 드라이버는 딥 러닝 Amazon Machine Image(AMI) 의 모든 변형을 포함하여 이 도구를 자동으로 제공합니다. 모든 GPU 인스턴스 패밀리의 NVIDIA GPU 드라이버 설치에 대한 자세한 내용은 Linux 인스턴스에 NVIDIA 드라이버 설치를 참조하세요.
sudo nvidia-smi -q 명령을 실행하여 통계를 쿼리합니다.
메모리 통계 예제
ECC Errors Volatile # Errors counted since last GPU driver reload SRAM Correctable : 0 SRAM Uncorrectable : 0 DRAM Correctable : 0 DRAM Uncorrectable : 0 Aggregate # Errors counted for the life of the GPU SRAM Correctable : 0 SRAM Uncorrectable : 0 DRAM Correctable : 0 DRAM Uncorrectable : 0
모든 세대의 NVIDIA GPU는 GPU 하드웨어의 집계 및 휘발성 메모리 통계를 기록합니다. 전체 ECC 오류 카운터는 GPU의 수명 기간 동안 지속된다는 점에 유의하세요. 양수 값은 인스턴스에 하드웨어 문제나 결함이 있는 GPU가 발생했음을 의미하지 않습니다. 양수 값은 과거의 것일 수 있으므로 변동성이 큰 지표를 검토하는 것이 중요합니다.
하지만 휘발성 ECC 오류는 GPU 드라이버가 마지막으로 다시 로드된 시점을 기준으로 0부터 증가합니다. 수정할 수 없는 ECC 오류는 인스턴스의 수명 기간 동안 증가합니다. ECC 오류가 불안정할 경우 인스턴스를 재부팅하거나 GPU를 재설정해야 할 수 있습니다. 인스턴스 유형과 GPU 생성에 따라 재부팅하면 잘못된 메모리 페이지에 대한 페이지 만료 또는 행 재매핑이 시작됩니다.
P3, P3dn, G4dn 인스턴스
Retired Pages Single Bit ECC : 0 Double Bit ECC : 0 Pending Page Blacklist : No
초기 세대의 NVIDIA GPU는 동적 페이지 종료를 사용합니다. 단일 비트 오류는 일반적으로 무해하므로 무시해도 됩니다. GPU 펌웨어는 이중 비트 오류를 식별합니다.
GPU 펌웨어가 이중 비트 오류를 식별하면 GPU가 처리를 중지하고 애플리케이션이 갑자기 종료됩니다. 이중 비트 오류가 발생하면 운영 체제(OS) 로그에 Xid 오류가 기록되고 Pending Page Blacklist 상태가 Yes로 표시됩니다. 이러한 오류를 해결하려면 인스턴스를 재부팅하여 잘못된 메모리 위치를 사용 중지하세요. 재부팅하면 Pending Page Blacklist 상태가 No로 재설정됩니다.
**참고:**오류 카운터는 GPU의 수명 기간 동안 지속됩니다. 따라서 인스턴스 시작 시 0이 아닌 카운터는 활성 하드웨어 문제나 GPU 결함을 나타내지 않습니다.
P4d, P4de, G5 및 G5g 인스턴스
Remapped Rows Correctable Error : 0 # Can safely ignore. Uncorrectable Error : 0 # If > 0, review system logs for Xid errors Pending : No # If Yes, an instance reboot or GPU reset is required. Remapping Failure Occurred : No # Should always be No. If Yes, please stop/start the instance.
A100 및 A10G GPU를 사용하는 이후 인스턴스 패밀리는 행 재매핑을 통해 메모리 오류를 분리하고 억제합니다. 동적 페이지 사용 중지와 마찬가지로 행 재매핑은 성능이 저하된 것으로 알려진 메모리 위치의 재사용을 방지합니다. 행 재매핑은 이전 세대 GPU의 페이지 사용 중지 체계를 대체합니다.
수정 가능한 메모리 오류는 무시해도 됩니다. 수정할 수 없는 오류로 인해 오류가 발생하거나 애플리케이션이 갑자기 종료될 수 있습니다. 수정할 수 없는 오류는 OS 시스템 로그에 Xid 오류로 기록됩니다.
수정할 수 없는 오류가 발생한 후 다시 매핑된 보류 중인 행이 활성화되면 잘못된 메모리 위치를 사용 중지하려면 GPU를 재설정해야 합니다. 인스턴스를 재부팅하여 GPU를 재설정합니다. 또는 다음 명령을 실행하여 GPU를 수동으로 재설정합니다.
sudo nvidia-smi -i <GPU UUID> -r
재매핑 실패가 발생하면 인스턴스를 중지 및 시작합니다. 인스턴스를 중지 및 시작하면 GPU가 정상인 새 기본 호스트로 인스턴스가 마이그레이션됩니다.
비정상 GPU 탐지
AWS는 자동화를 사용하여 정기적으로 진단을 수행하고 비정상 GPU를 탐지합니다. 하드웨어 오류로 인해 비정상 상태에 있는 GPU는 결국 식별되어 자동으로 교체됩니다.
장애 모드
모든 세대의 NVIDIA GPU용 GPU 드라이버는 OS 시스템 로그에 오류를 Xid 오류로 기록합니다. 이러한 오류에 대한 분류 및 설명은 NVIDIA 웹 사이트의 Xid 오류를 참조하세요.
일반적인 Xid 오류의 다음 목록에는 문제 해결을 위한 모범 사례가 포함되어 있습니다.
GPU 개수가 잘못되었거나 GPU가 누락됨
다음 명령을 실행합니다.
nvidia-smi —list-gpus | wc -l
명령 출력에서 연결된 GPU 수가 인스턴스 유형의 예상 GPU 수와 일치하는지 확인합니다. GPU가 없는 경우 인스턴스를 중지 및 시작합니다.
Xid 48: DBE가 발생했습니다.
Xid 63: 페이지가 성공적으로 사용 중지되었습니다.
Xid 64: 오류로 인해 페이지가 사용 중지되지 않았습니다.
위의 오류는 ECC 오류가 발생했음을 나타냅니다. 이 문제를 해결하려면 잘못된 수의 GPU 또는 GPU가 누락됨 섹션의 단계를 완료하세요.
NVRM: Xid 79(PCI:0000:00:00): GPU가 버스에서 떨어졌습니다.
Xid 79 오류는 인스턴스가 기본 GPU와의 통신이 끊겼음을 나타냅니다. 이 문제를 해결하려면 인스턴스를 재부팅합니다. 재부팅 후에도 문제가 지속되면 인스턴스를 중지 및 시작하세요.
WARNING: infoROM is corrupted at gpu 0000:00:00.0
infoROM is corrupted 오류는 GPU 펌웨어의 일부가 손상되었음을 나타냅니다. 이 문제를 해결하려면 인스턴스를 재부팅하거나 GPU를 재설정합니다. 재부팅 후에도 문제가 지속되면 인스턴스를 중지 및 시작하세요.
NVRM: Xid 119(PCI: 00:00:00:00): Timeout waiting for RPC from GSP!
NVRM: Xid 120 PCI:0000:00:00): GSP Error: Task 1 raised error code ...
위의 오류는 GPU 시스템 프로세서(GSP) 가 켜져 있을 경우에 발생합니다. GPU 드라이버 또는 커널 모듈 내에서 GSP가 꺼짐 상태인지 확인합니다.
모범 사례
- 가능한 한 최신 드라이버와 CUDA 런타임을 사용하세요. 수정, 개선 및 최적화는 GPU 드라이버의 최신 릴리스에 자주 도입됩니다. 하지만 이러한 업데이트에는 기능 변경이 포함될 수 있습니다. 먼저 비프로덕션 GPU 인스턴스에서 드라이버 업데이트를 스테이징하고 테스트합니다.
- 터보 부스트 기능이 있는 일반적인 x86 CPU와 마찬가지로 GPU의 코어 및 메모리 클럭 속도는 부하에 따라 동적으로 변합니다. 최상의 성능을 위해 GPU 코어 및 메모리 클럭 속도를 최대 속도로 지속적으로 설정하세요. 자세한 내용은 GPU 설정 최적화를 참조하세요.
- GSP를 끄세요. 최근 세대 인스턴스에서 NVIDIA GPU에는 GSP 펌웨어 기능이 포함되어 있습니다. GSP는 GPU 초기화 및 기타 관리 작업을 오프로드하도록 설계되었습니다. 자세한 내용은 NVIDIA 웹 사이트에서 GSP 펌웨어 끄기를 참조하세요.
- Amazon CloudWatch 에이전트를 사용하여 GPU를 모니터링할 수 있습니다. CloudWatch 에이전트는 기본적으로 CloudWatch에서 수집하고 모니터링할 수 있는 NVIDIA GPU 지표를 지원합니다. 자세한 내용은 NVIDIA GPU 지표 수집을 참조하세요.
AWS 지원팀에 문의하기
지원 사례에 인스턴스 ID와 nvidia-smi -q 명령의 출력을 제공하세요.
또한 NVIDIA GPU 드라이버에 포함된 sudo nvidia-bug-report.sh 명령을 실행합니다. nvidia-bug-report.sh 스크립트는 키 로그와 기타 진단 정보를 캡처합니다. 이 스크립트는 현재 작업 디렉터리에 nvidia-bug-report.log.gz라는 압축 로그 파일을 생성합니다. 이 파일을 검색하여 AWS Support에 제공할 수 있습니다.
관련 콘텐츠
- 질문됨 2년 전lg...
- 질문됨 3달 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 2년 전