[triton] AMD ReorderInstructions에서 효과 없는 sinkSecondLoad 최적화 제거
PR 링크: triton-lang/triton#9119 상태: Merged | 변경: +0 / -522
들어가며
AMD의 ReorderInstructions 패스는 GEMM 커널 성능 향상을 위한 여러 명령어 재배치 최적화를 포함합니다. 그 중 sinkSecondLoad는 두 번째 load를 dot 연산 직전으로 이동시키는 최적화였지만, 매우 제한적인 케이스에서만 트리거되었고, 성능에 가시적인 영향이 없었습니다.
핵심 코드 분석
제거된 코드의 핵심 로직 (522줄): 큰 타일 크기(256x256x128 등)에서 dot의 두 번째 load를 dot 연산 직전으로 sink하여, 첫 번째 load와 두 번째 load 사이에 다른 연산이 실행될 수 있도록 하는 것이었습니다. 그러나 이는 특정 타일 크기 조건에서만 동작했고, 실측 성능 차이가 없었습니다.
After: 해당 코드 전체 삭제, 관련 테스트 케이스도 제거.
왜 이게 좋은가
522줄 삭제는 ReorderInstructions 패스의 복잡성을 크게 줄입니다. 이 PR은 #9139(sinkDotConversion 제거), #9204(moveUpTranspose 제거)와 함께 ReorderInstructions를 단계적으로 간소화하는 시리즈의 일부입니다. 최종적으로 #9328에서 MoveUpPrologueLoads라는 새로운 패스로 완전히 대체되었습니다.
정리
- 효과 없는 sinkSecondLoad 최적화 522줄 전체 제거
- ReorderInstructions 간소화 시리즈의 일부
- 이전 테스트도 제거하여 오래된 가정 정리
참고 자료
이 분석은 AI가 실제 코드 diff를 기반으로 작성했습니다.
관련 포스트
PR Analysis 의 다른글
- 이전글 [triton] AMD: WMMA layout의 CTA 필드를 LinearLayout으로 일반화하여 swizzled warp 레이아웃 지원
- 현재글 : [triton] AMD ReorderInstructions에서 효과 없는 sinkSecondLoad 최적화 제거
- 다음글 [Open WebUI] mammoth 라이브러리 동적 로딩으로 페이지 초기 로드 301KB 절감
댓글