기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
디버거 프로파일링 보고서 안내
이 섹션에서는 디버거 프로파일링 보고서를 섹션별로 살펴봅니다. 프로파일링 보고서는 모니터링 및 프로파일링을 위한 기본 제공 규칙을 기반으로 생성됩니다. 보고서에는 문제가 발견된 규칙에 대한 결과 플롯만 표시됩니다.
중요
보고서에서 플롯과 권장 사항은 정보 제공 목적으로 제공되며 확정적이지는 않습니다. 사용자는 정보를 독립적으로 평가할 책임이 있습니다.
주제
훈련 작업 요약
디버거는 보고서를 시작할 때 훈련 작업에 대한 요약을 제공합니다. 이 섹션에서는 다양한 훈련 단계의 기간과 타임스탬프를 개괄적으로 살펴볼 수 있습니다.
요약 표에는 다음 정보가 포함되어 있습니다.
-
시작_시간 - 훈련 작업이 시작된 정확한 시간입니다.
-
종료_시간 - 훈련 작업이 끝난 정확한 시간입니다.
-
작업_기간_초 - 시작_시간부터 종료_시간까지의 총 훈련 시간입니다.
-
훈련_루프_시작 - 첫 번째 에포크의 첫 번째 단계가 시작된 정확한 시간입니다.
-
훈련_루프_종료 - 마지막 에포크의 마지막 단계가 끝난 정확한 시간입니다.
-
훈련_루프_기간_초 - 훈련 루프 시작 시간과 훈련 루프 종료 시간 사이의 총 시간입니다.
-
초기화_초 - 훈련 작업을 초기화하는 데 소요된 시간입니다. 초기화 단계는 시작_시간부터 훈련_루프_시작 시간까지의 기간을 포함합니다. 초기화 시간은 훈련 스크립트 컴파일, 훈련 스크립트 시작, 모델 생성 및 초기화, EC2 인스턴스 시작 및 훈련 데이터 다운로드에 사용됩니다.
-
finalization_in_seconds - 모델 훈련 완료, 모델 아티팩트 업데이트, EC2 인스턴스 종료와 같은 훈련 작업 완료에 소요되는 시간입니다. 초기화 단계는 훈련_루프_종료 시간부터 종료_시간까지의 기간을 포함합니다.
-
초기화(%) - 전체 작업_기간_초 동안 초기화에 소요된 시간의 비율입니다.
-
트레이닝 루프(%) - 총 작업_기간_초 대비 훈련 작업에 소요된 시간의 비율입니다.
-
마무리(%) - 총 작업_기간_초 대비 마무리 작업에 소요된 시간의 비율입니다.
시스템 사용 통계
이 섹션에서는 시스템 사용률 통계의 개요를 볼 수 있습니다.
디버거 프로파일링 보고서에는 다음 정보가 포함됩니다.
-
노드 - 노드 이름을 나열합니다. 다중 노드(복수 EC2 인스턴스)에서 분산 훈련을 사용하는 경우 노드 이름은 형식입니다
algo-n
. -
지표 - Debugger에서 수집한 시스템 지표: CPU, GPU, CPU 메모리, GPU 메모리, I/O 및 네트워크 지표.
-
단위 - 시스템 지표의 단위.
-
최대 - 각 시스템 지표의 최대값입니다.
-
p99 - 각 시스템 사용률의 99번째 백분위수.
-
p95 - 각 시스템 사용률의 95번째 백분위수.
-
p50 - 각 시스템 사용률의 50번째 백분위수(중앙값).
-
최소 - 각 시스템 지표의 최소값입니다.
프레임워크 지표 요약
이 섹션에서는 다음 원형 차트에 CPUs 및 의 프레임워크 작업 내역이 나와 있습니다GPUs.
각 파이 차트는 수집된 프레임워크 지표를 다음과 같이 다양한 측면에서 분석합니다.
-
TRAIN/EVAL 단계와 다른 단계 간의 비율 - 서로 다른 훈련 단계에 소요된 기간 간의 비율을 표시합니다.
-
정방 전달과 역방 전달 간의 비율 - 훈련 루프에서 정방 전달과 역방 전달에 소요된 시간 간의 비율을 보여줍니다.
-
CPU/GPU 연산자 간의 비율 - 합성곱 연산자와 GPU같이 CPU 또는 에서 실행되는 연산자에 소요된 시간 간의 비율을 표시합니다.
-
프레임워크에 기록된 일반 지표 - 데이터 로드, 정방 전달 및 역방 전달과 같은 주요 프레임워크 지표에 소요된 시간 간의 비율을 보여줍니다.
개요: CPU 연산자
이 섹션에서는 CPU 연산자에 대한 자세한 정보를 제공합니다. 이 표에는 가장 자주 호출되는 CPU 연산자에 소요된 시간 백분율과 절대 누적 시간이 표시됩니다.
개요: GPU 연산자
이 섹션에서는 GPU 연산자에 대한 세부 정보를 제공합니다. 이 표에는 가장 자주 호출되는 GPU 연산자에 소요된 시간 백분율과 절대 누적 시간이 표시됩니다.
규칙 요약
이 섹션에서 디버거는 모든 규칙 평가 결과, 분석, 규칙 설명 및 제안을 집계합니다.
훈련 루프 분석 - 스텝 기간
이 섹션에서는 각 노드의 각 GPU 코어에 대한 단계 지속 시간에 대한 자세한 통계를 확인할 수 있습니다. 디버거는 스텝 기간의 평균, 최대값, p99, p95, p50 및 최소값을 평가하고 스텝 이상값을 평가합니다. 다음 히스토그램은 서로 다른 작업자 노드 및 에서 캡처된 단계 지속 시간을 보여줍니다GPUs. 오른쪽에 있는 범례를 선택하여 각 작업자의 히스토그램을 활성화하거나 비활성화할 수 있습니다. 단계 지속 시간 이상치를 GPU 유발하는 특정 이 있는지 확인할 수 있습니다.
GPU 사용률 분석
이 섹션에서는 L owGPUUtilization 규칙을 기반으로 한 GPU 코어 사용률에 대한 자세한 통계를 보여줍니다. 또한 GPU 사용률 통계, 평균, p95 및 p5를 요약하여 훈련 작업이 를 덜 사용하고 있는지 확인합니다GPUs.
배치 크기
이 섹션에서는 총 CPU 사용률, 개별 GPU 사용률 및 GPU 메모리 풋프린트에 대한 자세한 통계를 보여줍니다. BatchSize 규칙은 를 더 잘 활용하기 위해 배치 크기를 변경해야 하는지 여부를 결정합니다GPUs. 배치 크기가 너무 작아서 사용률이 낮은지, 너무 커서 과다 사용 및 메모리 부족 문제가 발생하는지 확인할 수 있습니다. 도표의 상자에는 중앙값(p50)에서 각각 진한 보라색과 밝은 노란색으로 채워진 p25 및 p75 백분위수 범위가 표시되며, 오차 막대에는 하한에 대한 5번째 백분위수와 상한에 대한 95번째 백분위수가 표시됩니다.
CPU 병목 현상
이 섹션에서는 CPUBottleneck 규칙이 훈련 작업에서 감지한 CPU 병목 현상을 심층 분석할 수 있습니다. 규칙은 CPU 사용률이 초과cpu_threshold
(기본적으로 90%)인지, GPU 사용률이 미만gpu_threshold
(기본적으로 10%)인지 확인합니다.
파이 차트에는 다음 정보가 표시됩니다.
-
CPU 병목 현상으로 GPU 인한 사용량 감소 - GPU 사용률이 임계값을 초과하거나 미만인 데이터와 CPU 병목 현상 기준과 일치하는 데이터 포인트 간의 비율을 표시합니다.
-
TRAIN/EVAL 단계와 다른 단계 간의 비율 - 서로 다른 훈련 단계에 소요된 기간 간의 비율을 표시합니다.
-
정방 전달과 역방 전달 간의 비율 - 훈련 루프에서 정방 전달과 역방 전달에 소요된 시간 간의 비율을 보여줍니다.
-
CPU/GPU 연산자 간 비율 - 데이터 로더 프로세스, 정방향 GPUs 및 역방향 패스 연산자와 같은 Python 연산자에 소요된 기간과 Python 연산자에 CPUs 의해 소요된 기간 간의 비율을 표시합니다.
-
프레임워크에 기록된 일반 지표 - 주요 프레임워크 지표와 메트릭에 소요된 기간 간의 비율을 보여줍니다.
I/O 병목 현상
이 섹션에서는 I/O 병목 현상의 요약을 확인할 수 있습니다. 규칙은 I/O 대기 시간 및 GPU 사용률을 평가하고 I/O 요청에 소요된 시간이 총 훈련 시간의 임계값 백분율을 초과하는지 모니터링합니다. 가 스토리지에서 데이터가 도착할 때까지 기다리GPUs는 I/O 병목 현상을 나타낼 수 있습니다.
다중GPU 훈련의 로드 밸런싱
이 섹션에서는 에서 워크로드 밸런싱 문제를 식별할 수 있습니다GPUs.
GPU 메모리 분석
이 섹션에서는 GPUMemoryIncrease 규칙에 의해 수집된 GPU 메모리 사용률을 분석할 수 있습니다. 도표의 상자에는 중앙값(p50)에서 각각 진한 보라색과 밝은 노란색으로 채워진 p25 및 p75 백분위수 범위가 표시되며, 오차 막대에는 하한에 대한 5번째 백분위수와 상한에 대한 95번째 백분위수가 표시됩니다.