FlightRecorderHook으로 ProcessGroup 훅에 올리면 NCCL 밖 백엔드에서도 집단통신 행을 추적합니다 | DAKER 커뮤니티

행 추적 공용화
설명용 생성 이미지입니다.

한 줄 요약
PyTorch 2.14의 FlightRecorderHook은 집단통신 행·불일치 진단을 위한 Flight Recorder를 ProcessGroup 훅으로 올려, NCCL에만 묶이던 추적을 백엔드 공용으로 만듭니다. Gloo처럼 NCCL이 아닌 백엔드에서도 DebugMode로 휴대 가능한 콜렉티브 트레이스를 남길 수 있습니다.

예전에 Flight Recorder가 NCCL 전용이면, Gloo 잡에서 행이 났을 때 “추적 버퍼가 없다”로 끝나기 쉬웠습니다. 오늘은 작은 월드에서 백엔드를 Gloo(또는 NCCL이 아닌 경로)로 두고, 훅이 ProcessGroup에 걸린 뒤 의도적으로 어긋난 콜렉티브를 한 번 만들어 보십시오. 참가자 노트에는 백엔드 이름, 훅 등록 여부, DebugMode 로그에 트레이스가 남았는지를 적습니다. “행이 풀렸다”보다 “어떤 백엔드에서 추적이 됐는지”가 재현에 도움이 됩니다.

재현해 볼 실험 조건

  1. NCCL이 아닌 백엔드(예: Gloo)로 ProcessGroup을 열고, 예전 NCCL 전용 Recorder만으로는 추적이 비었던 조건을 재현합니다.
  2. FlightRecorderHook을 ProcessGroup 훅 경로로 등록한 뒤, 행 또는 불일치 콜렉티브를 짧게 유도하고 DebugMode 직렬화 로그에 콜렉티브 트레이스가 남는지 확인합니다.
  3. 같은 진단 절차를 NCCL 백엔드에서도 한 번 돌려, 백엔드가 달라도 같은 훅·로그 경로를 쓰는지 비교합니다.

로그 직렬화가 DebugMode를 통해 휴대 가능해진 점이 핵심입니다. 백엔드를 바꿔도 “추적 도구가 없다”로 끝나지 않는지부터 보십시오. 실험이 끝나면 사용한 백엔드 문자열·월드 사이즈·훅 등록 코드를 한 줄로 고정해 두면, 다음 참가자가 같은 조건을 바로 따라올 수 있습니다.

실무에서 바로 볼 포인트

관련 DAKER 학습

설명용 생성 이미지입니다. 추적 동작은 로컬 ProcessGroup·DebugMode 로그로 확인하십시오.