GPU 문제점 판별 (Linux®, Windows 전용)
GPU(Graphics Processing Unit)에서 애플리케이션 처리 시 문제점이 발생하는 경우 상세 로깅을 사용하면 근본 원인을 식별하는 데 도움이 될 수 있습니다. 표준 SDK 추적 기능을 사용하여 애플리케이션 처리를 추적할 수도 있습니다.
애플리케이션 처리가 GPU로 오프로드되지 않는 여러 가지 이유가 있을 수 있습니다. 다음 영역을 확인하십시오.
- 시스템 설정
- GPU 시스템 요구사항 (Linux, Windows 전용)에 설명된 대로 시스템이 최소 하드웨어 및 소프트웨어 요구사항을 충족하는지 확인하십시오.
- 시스템 구성
- -Dcom.ibm.gpu.enable 시스템 특성으로 GPU 처리를 사용으로 설정한 경우, JVM (Java Virtual Machine) 은 CPU에서 해당 처리를 이동하는 오버헤드가 가치가 있는 경우에만 처리를 오프로드합니다. 예를 들어, sort 오퍼레이션을 오프로드하기 전에
배열이 약 20,000개 항목의 최소 크기를 충족해야 합니다. 시스템 구성의 유효성을 검증하기 위해
시스템 특성이 제공됩니다. 임계값 설정과 관계없이 GPU 처리를 강제 실행하려면 명령행에서 시스템 특성
-Dcom.ibm.gpu.enforce를 설정하십시오. 이 특성은 유효성 검증을 위해서만 제공되며
일반적인 상황에서는 설정되지 않아야 합니다. 그렇지 않으면 애플리케이션 성능이 저하될 수 있습니다.
JIT 컴파일러가 GPU에 처리 태스크를 오프로드하도록 설정한 경우, -Xjit:enableGPU={enforce|verbose} 옵션을 지정하여 시스템 구성의 유효성을 검증할 수 있습니다. 이 옵션이 설정되면 JIT에서 성능 휴리스틱에 의존하여 데이터 처리 태스크를 CPU 대신 GPU에서 처리할 경우 이점이 있는지 여부를 판별하지 않습니다. JIT에서 처리를 GPU로 이동했는지 여부를 확인하려면 상세 하위 옵션으로 생성된 시스템 출력을 확인하십시오. 자세한 정보는 JIT 컴파일러와 GPU간의 문제점 진단 (Linux, Windows 전용)을 참조하십시오.
- 애플리케이션 프로그램
- CUDA4J API(Application Programming Interface)에서 클래스를 지정하여 GPU를 직접 사용하는 애플리케이션을 개발 중인 경우 사용자 코드에 오류가 있는지 주의 깊게 확인하십시오.
- -Dcom.ibm.gpu.enable 시스템 특성을 사용하여 GPU 처리를 사용으로 설정한 경우 -Dcom.ibm.gpu.verbose (Linux, Windows 전용) 를 설정하여 상세 메시징을 켜서 자세한 레벨에서 GPU로 오퍼레이션을 추적할 수 있습니다. 메시지를 STDOUT에 인쇄하거나 추가 분석을 위해 파일에 파이프할 수 있습니다.
- 표준 SDK 추적 기능을 사용하여 애플리케이션 처리를 추적할 수 있습니다. 자세한 정보는 GPU 추적 옵션 (Linux, Windows 전용)을 참조하십시오.
- JIT 컴파일러와 GPU간의 오퍼레이션 문제점을 해결하려면 JIT 컴파일러와 GPU간의 문제점 진단 (Linux, Windows 전용)을 참조하십시오.
참고: GPU 사용과 관련하여 몇 가지 알려진 제한사항이 있습니다. 자세한 정보는 GPU 문제 및 제한사항을 참조하십시오.