Megascale 통계 도구
Megascale 통계 도구를 사용하여 데이터 센터 네트워크 (DCN)를 통해 통신하는 여러 TPU 슬라이스에 걸쳐 있는 워크로드의 슬라이스 간 통신 성능을 분석할 수 있습니다.
Megascale 통계 도구에 표시되는 모든 측정항목은 TPU별로 생성됩니다.
지원되는 플랫폼
Megascale 통계 도구는 TPU에서만 지원됩니다.
콜렉티브 관련 용어
이 도구는 다음 작업을 포함하는 TPU 슬라이스 간 통신과 관련된 측정항목을 표시합니다.
send: 호스트를 중단하여 직접 메모리 액세스 (DMA)를 시작하고 호스트에 채워진 버퍼를 제공하여 데이터 전송을 시작합니다.send-done: 데이터 전송이 완료됐음을 호스트에 알립니다.recv: 호스트가 전송된 데이터로 채울 수 있도록 빈 버퍼를 제공합니다.recv-done: 데이터가 수신되었음을 호스트에 알립니다.
수집은 send 작업에 의해 시작되고 일치하는 recv-done 작업에 의해 완료됩니다. 실제 데이터 전송은 전송 작업이 완료된 후에 수행됩니다. send-done 작업은 데이터가 전송된 후에 수행됩니다. 마찬가지로 recv 작업이 완료된 후에 데이터가 수신됩니다. recv-done 작업은 데이터가 수신된 후에 수행됩니다.
인터페이스 구성요소
이 도구는 프로파일링된 각 집단 연산에 대해 하나의 행이 있는 다음 열이 포함된 표를 표시합니다.
- DCN 수집 이름: XLA에 의해 할당됩니다.
- Recv op name: TPU
recv-done작업 이름입니다. 이를 통해 Trace Viewer에서 해당 집단 TPU 작업을 쉽게 검색할 수 있습니다. - 전송 작업 이름: TPU
send작업 이름입니다. - 여유 시간: 수집기가 데이터를 전송해야 하는 네트워크 독립적인 시간으로 정의됩니다.
send,send-done,recv또는recv-done작업을 제외하고 수집에서 데이터를 전송 및 수신할 수 있는 시간 측정값입니다. Slack 시간을 늘리면 수집에 사용되는 TPU가 중단될 가능성이 줄어듭니다. 예를 들어 다음 타임라인을 가정해 보겠습니다.

Slack time is calculated in this example as:
Slack time = t<sub>1</sub> + t<sub>2</sub> + t<sub>3</sub>
- 관찰된 기간: 각 집단에 대해 관찰된 기간입니다. 데이터 전송 및 수신 시간을 포함하여
send작업 시작부터 해당recv-done작업 종료까지의 간격으로 계산됩니다. 예를 들어 다음 타임라인을 가정해 보겠습니다.

Observed duration is calculated as:
Observed duration = t<sub>send</sub> + t<sub>1</sub> + t<sub>send-done</sub> + t<sub>2</sub> + t<sub>recv</sub> + t<sub>3</sub> + t<sub>recv-done</sub>
- 정지 기간: 수집이 TPU를 정지한 시간입니다. 이는 데이터 전송에 소요된 시간을 제외하고 집단이
send,send-done,recv,recv-done작업에 소요한 총 시간입니다. 예를 들어 다음 타임라인을 가정해 보겠습니다.

Stall duration is calculated in this example as:
Stall duration = t<sub>send</sub> + t<sub>send-done</sub> + t<sub>recv</sub> + t<sub>recv-done</sub>
- 발생 횟수: 프로필 기간 동안 수집이 시작되고 완료된 총횟수입니다.
send작업과 해당recv-done작업이 이 측정항목에 포함되려면 프로필 기간 내에 발생해야 합니다. - 집계된 총 정지: 수집이 프로필 기간 동안 TPU를 정지한 시간 합계입니다. 집계된 중단 합계는 다음과 같이 계산됩니다.
- 집계된 총 중단 = 중단 기간 * 발생 횟수
- 전송된 데이터 크기: XLA 작업 모양을 기반으로 계산된 수집을 위해 네트워크를 통해 전송된 데이터 양입니다.
- 필요한 대역폭: 제공된 슬랙 내에서 데이터를 전송하는 데 필요한 대역폭입니다. 이 측정항목을 사용하면 프로필 기간 동안 네트워크 대역폭을 두고 경쟁하는 수집의 수를 확인할 수 있습니다. 필요한 대역폭은 다음과 같이 계산됩니다.
- 필요한 대역폭 = 전송된 데이터 크기 / slack 시간
Megascale 통계 도구 데이터 분석
도구에 표시된 데이터를 분석하려면 다음 단계를 따르세요.
Aggregated Total Stall를 기준으로 표를 내림차순으로 정렬합니다.Aggregated Total Stall이 가장 높은 DCN 수집 이름을 식별합니다. 다른 값에 비해 값이 크게 높으면 병목 현상이 있을 수 있습니다.- DCN 수집의
Required Bandwidth에 코어 수를 곱합니다 (예: v4 TPU 호스트당 8개) 이 값이 TPU의 최대 네트워크 대역폭보다 크면 네트워크 혼잡을 나타낼 수 있습니다. 샤딩 메커니즘을 변경하여 필요한 대역폭을 줄여 보세요. - HLO 덤프를 생성하여 컴파일러 문제를 확인합니다.
send및recv-done작업을 팬아웃하면 더 많은 HLO 작업을 겹쳐서 예약할 수 있고 TPU 중단 시간을 줄일 수 있습니다. - Trace 뷰어에서 최대로 집계된 중단 합계가 있는 수집에 대한
recv-done작업 기간을 확인합니다. 전송 기간이 길면 일반적으로 네트워크에서recv-done작업이 차단되므로 대역폭 병목 현상이 발생할 수 있습니다. recv-done작업 기간이 slack 시간에 비해 너무 높지 않은 경우 이는 하드웨어 문제를 나타낼 수 있습니다.