HLO 작업 통계 도구

HLO 작업 통계를 사용하여 프로파일링 세션 중에 실행된 상위 수준 최적화 도구 (HLO) 작업의 성능 통계를 확인할 수 있습니다. 이 도구는 프로파일링된 기간 동안 HLO 그래프 내에서 가장 시간이 많이 소요되는 작업을 강조 표시하여 성능 최적화를 위한 잠재적 타겟을 식별하는 데 유용합니다.

지원되는 플랫폼

TPU: 지원됨

GPU: 지원됨

GPU의 경우 HLO 연산은 실제로 실행되는 커널과 N:M 관계를 갖습니다. 커널 수준의 통계는 GPU 커널 통계 도구를 참고하세요.

HLO Op 통계 도구 구성요소

HLO Op Stats 도구에는 다음과 같은 주요 구성요소가 있습니다.

  • HLO 작업 통계 표: 프로파일링 세션 중에 실행된 모든 HLO 작업의 세부 내역을 표 형식으로 보여주는 기본 구성요소입니다. 고유한 HLO 작업마다 행이 하나씩 있고 해당 작업과 관련된 다양한 세부정보를 캡처하는 열이 있습니다.
    • 드롭다운 선택기를 사용하면 모든 HLO 작업에 대해 시각화할 열을 결정할 수 있습니다.
    • 두 번째 드롭다운 선택기를 통해 HLO Op 카테고리별로 행을 필터링할 수도 있습니다.
    • 검색창을 사용하면 특정 프로그램 ID, HLO 연산, HLO 연산 텍스트 또는 프레임워크 연산 이름을 기준으로 필터링할 수 있습니다. 필터는 각 열 내 어디서나 제공된 문자열을 선택합니다.
  • 요약 차트 섹션: 이 섹션에는 다음과 같은 방식으로 세부적인 작업별 표를 요약하는 차트가 있습니다.
    • HLO 작업의 다양한 카테고리에서 소비된 시간의 비율을 보여주는 원형 차트입니다.
    • 다양한 개별 HLO 연산에 소비된 시간의 비율을 보여주는 원형 차트입니다 (가독성을 높이기 위해 상위 N개 연산으로 자르고 나머지는 '기타'로 분류됨).
    • 재구체화의 일부인 작업에 소비된 총 시간의 비율을 보여주는 원형 차트입니다. XProf는 프로필과 연결된 컴파일러 메타데이터에서 이 정보를 수신합니다.
    • 재물리화 시간이 발생하는 HLO 작업 카테고리를 보여주는 원형 차트입니다 (있는 경우).
    • 외부 컴파일에 소요된 시간: 외부 컴파일은 XLA 계산 내의 특정 작업이 액셀러레이터 기기가 아닌 호스트 CPU에서 투명하게 실행되도록 하는 TensorFlow 기능입니다(예: 기기에서 보유하지 않은 I/O 액세스가 필요한 tf.summary 또는 tf.print).
    • 총 자체 시간순으로 정렬된 모든 HLO 작업의 GFLOPS/s를 표시하는 차트입니다.
    • TPU만 해당, 복제 그룹별 HLO당 시간: 드롭다운을 사용하면 프로파일링 세션 중에 실행된 다양한 집합 작업 중에서 선택할 수 있습니다. 이 집합 연산의 여러 인스턴스가 여러 복제 그룹 (예: AllGather)를 보여줍니다. 원형 차트는 이러한 여러 인스턴스 간의 시간 분포를 보여줍니다.

HLO 작업 통계 표 세부정보

열 헤더를 클릭하여 HLO 작업 통계 표를 정렬할 수 있습니다. 기본 순서는 연산의 총 자체 시간을 기준으로 합니다 (표에 '순위'로 표시됨).

이 표에는 각 HLO 작업에 관한 다음 정보가 포함됩니다.

  • 작업 이름: XLA 컴파일러가 HLO 작업에 할당한 고유한 이름입니다.
  • 프로그램 ID: 이 연산이 연결된 HLO 모듈의 식별자입니다.
  • HLO Op 카테고리: 이는 대부분 XLA 컴파일러에 의해 정의됩니다. XProf는 또한 휴리스틱을 사용하여 특정 작업 (예: 컨볼루션 융합)을 식별하고 분류합니다.
  • HLO Op 텍스트: XLA 컴파일러에서 제공하며 입력/매개변수의 유형 및 모양과 같은 세부정보를 포함합니다.
  • 프레임워크 작업 이름: 프레임워크 수준의 작업입니다 (예: JAX)를 확인합니다. 이로 인해 이 HLO 연산이 생성되었습니다.
  • 발생 횟수: 프로파일링 기간 동안 이 특정 HLO 작업이 실행된 총 횟수입니다.
  • 총 시간 (μs): 이 작업이 발생할 때마다 누적된 실행 시간입니다. 이 작업에 하위 작업이 있는 경우 (예: 융합 내) 이러한 하위 작업에 소비된 시간이 여기에 포함됩니다.
  • 평균 시간(μs): 이 HLO 작업의 실행당 평균 시간으로, 하위 작업에 소요된 시간(있는 경우)을 포함합니다.
  • 총 자체 시간 (μs): 이 HLO 작업의 본문 내에만 소요된 누적 시간으로, 하위 작업에 소요된 시간은 제외됩니다.
  • 평균 자체 시간 (μs): 이 HLO 작업의 실행당 평균 시간으로, 하위 작업에 소요된 시간은 제외됩니다.
  • Total Self Time(총 자체 소요 시간, %): 모든 작업에서 기기의 총 시간에 대한 작업의 자체 소요 시간 비율입니다.
  • 누적 총 자체 시간 (%): '순위' 순서에 앞서 표시되는 모든 작업의 총 자체 시간 (%)의 누적 합계입니다.
  • DMA 중단 (%): 직접 메모리 액세스 (DMA) 작업으로 인해 작업이 중단된 총 시간의 백분율입니다.
  • 사용 가능한 경우 FLOP, HBM, 내부 TPU 메모리의 대역폭 소비량 (사용량/초)(예: CMEM은 TPU v4에만 있습니다. 이는 모두 컴파일러의 정적 비용 분석 (분자)과 프로파일링된 실행 시간 (분모)을 사용하여 계산됩니다.
  • 모델 GFLOPS/s: GFLOPs 비용은 XLA 컴파일러에서 계산되고 시간은 프로필에서 측정됩니다.
  • 정규화된 GFLOPS/s: 수치 정밀도에 따라 연산당 컴파일러에서 계산한 FLOP과 기기에서 다양한 정밀도에 대해 지원하는 최대 FLOP을 정규화합니다. 예를 들어 TPU v6e는 bf16에서보다 int8에서 최대 FLOP을 두 배 더 지원합니다. XProf는 기본적으로 bf16으로 정규화합니다.
  • 메모리 BW: 모든 메모리 (예: 온칩 TPU VMEM 및 HBM)에서 작업이 소비한 바이트/초입니다. XLA 컴파일러는 '바이트' 수를 제공하고 프로필에서 기간을 측정합니다.
  • HBM BW: HBM에서 구체적으로 소비된 바이트/초 수입니다.
  • 작동 강도: 루프라인 분석에 정의된 대로 바이트당 FLOPS의 비율로 계산됩니다.
  • 컴퓨팅/메모리 제약 조건: 이 열은 루프라인 모델을 기반으로 연산의 성능이 주로 컴퓨팅 기능 또는 메모리 대역폭에 의해 제한되는지 여부를 나타냅니다.
  • 재물리화: 연산이 재물리화의 일부인지 나타냅니다.
  • 외부 컴파일: TensorFlow의 외부 컴파일 설정을 사용하여 호스트 CPU에서 연산이 실행되었는지 나타냅니다.
  • Autotuned: XLA에 의해 연산이 자동으로 조정되었는지 여부를 나타냅니다. 자세한 내용은 자동 조정유지되는 자동 조정을 참고하세요.