torch.compile이 복소 텐서를 실수 분해로 받아 신호·복소 신경망 경로를 컴파일 실행에 올립니다 | DAKER 커뮤니티
한 줄 요약
PyTorch 2.14에서 torch.compile이 복소 텐서 프로그램을 실험적으로 받습니다. 지원되는 복소 연산은 실수 연산으로 분해되어 컴파일러 백엔드가 최적화할 수 있고, 신호 처리·복소 신경망처럼 복소 경로가 있는 워크로드를 컴파일 실행에 올려 볼 수 있습니다. 아직 모든 복소 연산이 지원되지는 않습니다.
복소 FFT·필터·복소 가중치 층을 eager로만 돌리던 참가자는, 오늘은 지원되는 연산만 남긴 작은 그래프부터 torch.compile로 감싸 보십시오. 실패하면 어느 연산에서 막혔는지 한 줄로 남기고, 성공하면 eager 대비 스텝 시간만 비교합니다. “전부 된다”보다 “어느 연산까지 통과하는지”가 재현에 도움이 됩니다.
재현해 볼 실험 조건
- 작은 복소 텐서 입력으로, 지원이 기대되는 기본 산술·간단한 변환만 포함한 함수를 만듭니다.
- 같은 함수를 eager와
torch.compile로 각각 실행해 출력 dtype·shape가 맞는지 확인합니다. - 지원되지 않는 연산이 있으면 오류 지점을 기록하고, 해당 연산을 빼거나 eager로 남긴 뒤 다시 컴파일합니다.
동적 shape 선언(@dynamic_spec)이나 AOTInductor 상수 공유와는 다른 축입니다. 이번 글은 복소 텐서가 컴파일 경로에 들어가는지입니다. 실험이 끝나면 버전·사용한 복소 연산 목록·성공/실패를 고정해 두십시오.
실무에서 바로 볼 포인트
- 복소 워크로드는 작은 부분 그래프부터 컴파일하고, 미지원 연산은 분리합니다.
- 학습 노트에 통과한 연산과 막힌 연산을 구분해 남깁니다.
- 실수 전용 모델 컴파일 실험과 섞지 말고, 이번엔 복소 경로만 확인하십시오.
관련 DAKER 학습
설명용 생성 이미지입니다. 동작은 로컬에서 복소 텐서 torch.compile 통과 여부로 확인하십시오.