본문으로 건너뛰기

[Triton] AMD TDM 기능 활성화 및 ConvertToTensorOps 패스 추가

PR 링크: triton-lang/triton#9283 상태: Merged | 변경: +239 / -44

들어가며

AMD의 최신 GPU 아키텍처(gfx1250)에서 TDM(Tensor Descriptor Memory)은 tensor descriptor를 통한 비동기 메모리 복사를 지원한다. 이 PR은 여러 내부 PR을 upstream하여 TDM 기능을 활성화하고, ConvertToTensorOps 패스를 추가하며, 테스트를 통해 matmul E2E 실행을 검증한다.

핵심 코드 분석

TDM async copy의 predicate 타입 변경

// Before: bool 타입 predicate
%true = arith.constant true
%2 = amdg.async_tdm_copy_global_to_local %0[...] into %1, %true

// After: i32 타입 predicate (하드웨어 인터페이스와 일치)
%c1_i32 = arith.constant 1 : i32
%2 = amdg.async_tdm_copy_global_to_local %0[...] into %1, %c1_i32

ConvertToTensorOps 패스 등록

// RegisterTritonDialects.h
mlir::registerTritonAMDGPUConvertToTensorOps();

이 패스는 일반적인 메모리 연산을 tensor descriptor 기반 연산으로 변환한다.

왜 이게 좋은가

  • E2E 검증: 공개 Triton 코드베이스에서 내부 LLVM과 함께 matmul unit test가 실행 가능해졌다.
  • 하드웨어 정합: predicate 타입을 bool에서 i32로 변경하여 실제 하드웨어 인터페이스와 일치시켰다.
  • 패스 파이프라인 확장: ConvertToTensorOps 패스가 AMD 백엔드의 컴파일 파이프라인에 등록되어, tensor descriptor 기반 최적화의 기반을 마련한다.

정리

이 PR은 AMD의 최신 GPU에서 tensor descriptor 기반 메모리 접근을 활성화하는 upstream 작업이다. 여러 내부 패치를 하나로 묶어 TDM E2E 지원의 기반을 마련한다.

참고 자료


이 글은 AI 도구의 도움을 받아 작성되었습니다.

댓글

관련 포스트

PR Analysis 의 다른글