콘텐츠로 이동

여러 트레이스를 하나의 타임라인에서 보기

모델을 여러 디바이스에 나누어 실행하면 트레이스가 랭크마다 하나씩 생성됩니다. RBLN 프로파일러를 켜면 워커마다 *.pb 파일이 하나씩 남습니다. 여기에 PyTorch 프로파일러를 함께 켜면 RBLN 프로파일러가 수집한 디바이스 실행 구간이 PyTorch 프로파일러의 chrometrace에 포함되어, 프레임워크 연산과 디바이스 실행을 함께 확인할 수 있습니다. 결과적으로 랭크마다 *.pb와 chrometrace가 하나씩 생깁니다.

RBLN 프로파일러의 *.pb가 각 디바이스가 자신의 시계로 측정한 시간을 담고 있는 반면, chrometrace는 PyTorch 프로파일러가 호스트의 시계를 기준으로 기록하고 디바이스에서 실행된 구간도 같은 시계에 맞추어 넣기 때문에 병합이 가능합니다. 랭크가 서로 다른 프로세스에서 실행되어도 시계는 같은 호스트의 것이므로, 파일들의 시간축이 이미 맞아 있습니다.

따라서 랭크 사이의 관계를 보려면 PyTorch 프로파일러를 함께 켜서 랭크별 chrometrace를 남긴 다음, 그 파일들을 Perfetto UI에서 하나의 타임라인으로 병합합니다.

1. MultiTraceOpen 플러그인 활성화

여러 트레이스를 함께 여는 기능은 플러그인으로 제공되며 기본값은 비활성입니다. Perfetto UI 플러그인 목록에서 dev.perfetto.MultiTraceOpen을 활성화해야 합니다. 사이드바의 Plugins로도 같은 화면에 갈 수 있습니다. 활성화하면 사이드바의 NEW TRACE에 Open multiple trace files 항목이 나타납니다.

Perfetto UI의 Plugins 화면에서 dev.perfetto.MultiTraceOpen을 활성화한 모습

2. 트레이스 파일 열기

사이드바의 NEW TRACE에서 Open multiple trace files를 선택합니다.

플러그인 활성화 후 사이드바의 NEW TRACE에 나타난 Open multiple trace files 항목

랭크별 트레이스 파일을 함께 지정하면 Open Multiple Traces 대화 상자가 열립니다. 파일마다 한 행으로 크기와 형식이 표시되고, 한 파일이 기준(baseline)이 되어 나머지가 여기에 맞춰집니다. 기본값인 Align: automatically와 Machine: Default를 그대로 두면 됩니다. 아래쪽에 All traces line up on the shared timeline.이 표시되면 모든 파일이 하나의 시간축에 맞추어진 것이므로, Open Traces로 엽니다.

파일마다 한 행으로 표시되고 아래에 모든 파일이 공유 타임라인에 맞추어졌다는 상태가 표시된 Open Multiple Traces 대화 상자

대화 상자에는 정렬과 머신 지정 옵션도 있습니다. 자세한 내용은 Perfetto 문서에서 확인할 수 있습니다.

3. 병합된 화면

랭크별 chrometrace를 하나의 타임라인에 병합한 화면. 디바이스가 각각의 그룹으로 구분되고 그 아래에 Device Workload, CCL, Chiplet 트랙이 놓임

랭크별 트랙이 REBEL™ 0, REBEL™ 1처럼 디바이스별 그룹으로 구분된 채 하나의 시간축을 공유하고, 각 그룹 아래에 그 디바이스의 Device Workload, CCL, Chiplet 트랙이 놓입니다. 각 랭크의 CCL Command 트랙에서 이름이 같은 슬라이스를 비교하면, 집합 통신처럼 여러 랭크가 함께 수행하는 연산을 한 화면에서 확인할 수 있습니다.