Roofline 분석 도구
Roofline 분석 도구는 프로그램 실적에 영향을 미치는 고유한 하드웨어 제한사항을 파악하는 데 사용할 수 있는 직관적인 시각적 성능 모델을 제공합니다. 특히 프로그램이 메모리 제약인지 컴퓨팅 제약인지, 프로그램의 성능이 '루프라인'으로 표시되는 하드웨어의 이론적 최대 성능에 얼마나 근접한지에 중점을 둡니다.
지원되는 플랫폼
TPU: 지원됨
GPU: 지원됨 (베타)
루프라인 차트란 무엇인가요?
지붕선 차트는 작업 강도(액세스된 바이트당 FLOPS)와 달성된 초당 FLOPS 간의 관계를 시각화합니다.
\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]
'지붕' 모양은 피크 FLOPS와 메모리 대역폭 및 작업 강도를 고려하여 달성할 수 있는 성능 중 더 낮은 값으로 형성됩니다. 능선 지점은 최대 FLOPS를 달성하는 데 필요한 최소 작업 강도를 나타냅니다.
루프라인 모델에 관한 자세한 내용은 루프라인: 부동 소수점 프로그램 및 멀티코어 아키텍처를 위한 유용한 시각적 성능 모델 또는 위키피디아의 루프라인 모델 주제를 참고하세요.
루프라인 차트 해석
루프라인 차트에 다양한 단계, 프로그램의 일부 또는 개별 HLO 작업의 작동 강도와 달성된 FLOPS를 표시하면 성능 병목 현상에 대한 유용한 정보를 얻을 수 있습니다.
- 데이터 포인트가 지붕선의 경사 부분에 있으면 성능이 메모리 대역폭 (메모리 제약)으로 제한될 가능성이 높습니다. 작업 강도 (액세스된 데이터 바이트당 더 많은 계산 실행)를 늘리면 성능이 향상될 수 있습니다.
- 데이터 포인트가 루프라인의 평평한 부분에 있으면 성능이 컴퓨팅 기능 (컴퓨팅 제약)에 의해 제한될 가능성이 큽니다. 이 경우 하드웨어의 최대 FLOPS를 더 잘 활용할 수 없다면 운영 강도를 더 늘려도 성능이 크게 향상되지 않을 수 있습니다.
- 데이터 포인트와 지붕선의 거리는 성능 개선의 가능성을 나타냅니다. 거리가 클수록 하드웨어 기능을 더 잘 활용하도록 프로그램을 최적화할 수 있는 기회가 있음을 나타냅니다.
인터페이스 구성요소
Roofline Analysis 도구 인터페이스에는 다음과 같은 몇 가지 주요 구성요소가 있습니다.
- 기기 정보 섹션에는 하드웨어 사양이 설명되어 있습니다. 이는 차트에 '루프라인'을 정적으로 그리는 데 사용됩니다.
- 다음에 해당하는 데이터 포인트가 포함된 프로그램 수준 루프라인 차트입니다.
- 총 프로필 기간입니다.
- 총 프로필 기간이지만 XLA 컴파일러에서 계산한 기본 비용 모델이 아닌 하드웨어 성능 카운터에서 파생된 FLOPS/s 데이터가 포함됩니다.
- 프로필 기간 동안 실행된 전체 단계의 평균입니다 (학습 작업의 경우. 추론 작업의 경우 단계 용어는 무시해도 됩니다).
- 프로필 기간 동안 실행된 각 완료 단계 (학습 작업의 경우. 추론 작업의 경우 단계 용어를 무시할 수 있음)
- 지붕선 차트에는 다음과 같은 기능도 있습니다.
- 제공된 드롭다운을 사용하여 인피드/아웃피드 작업을 포함하거나 제외할 수 있습니다.
- 차트의 데이터 포인트 위로 마우스를 가져가면 다양한 메모리의 대역폭 수, 총 소요 시간 등의 관련 정보가 추가로 표시됩니다.
- 최대 메모리 사용률(%), 최대 FLOP 비율(%) 등 각 데이터 포인트에 관한 추가 세부정보를 제공하는 프로그램 수준 통계 표입니다.
- 프로파일링 기간 동안 가장 많은 시간을 소요하는 상위 1, 000개 작업에 대한 데이터 포인트가 표시되어 더 세부적인 정보를 제공하는 두 번째 루프라인 차트:
- 프로그램 수준의 루프라인 차트와 마찬가지로 각 데이터 포인트 위로 마우스를 가져가면 해당 연산에 관한 추가 정보가 표시됩니다.
- 차트에 표시되는 데이터 포인트를 다음과 같은 방법으로 맞춤설정할 수 있습니다.
- 드롭다운을 통해 인피드 및 아웃피드 작업 포함/제외
- 특정 작업 카테고리 필터링
- 특정 리소스에 의해 바인딩된 작업 필터링
- 특정 이름이 지정된 작업을 필터링합니다.
- 프로그램 수준 테이블과 유사한 두 번째 통계 테이블로, 각 데이터 포인트에 관한 추가 세부정보를 제공합니다.
위에 설명된 모든 섹션에서 다음 메모리가 지원됩니다.
- TPU의 경우 HBM, VMEM, CMEM (TPU v4만 해당)
- GPU의 경우 HBM, L1/SharedMem
- 차트의 해당 선은 프로필 기간 내에 해당 메모리에 바인딩된 작업이 있는 경우에만 표시됩니다. 예를 들어 모든 작업이 HBM 또는 컴퓨팅에 종속된 경우 VMEM 또는 CMEM의 선이 표시되지 않습니다.