[triton] 캐시 테스트를 Device Agnostic하게 개선
PR 링크: triton-lang/triton#9528 상태: Merged | 변경: +12 / -7
들어가며
Triton은 CUDA뿐 아니라 AMD HIP 등 다양한 GPU 백엔드를 지원합니다. 그러나 일부 캐시 관련 테스트에서 device_caches[0]처럼 device index를 하드코딩하여 CUDA 이외의 환경에서 테스트가 실패하는 문제가 있었습니다. 이 PR은 나머지 캐시 테스트들을 device agnostic하게 만들어 모든 백엔드에서 올바르게 동작하도록 수정합니다.
핵심 코드 분석
Before:
assert len(kernel.device_caches[0][0]) == 4
After:
device = getattr(torch, device).current_device()
assert len(kernel.device_caches[device][0]) == 4
test_module_load_unload 함수에서도 device fixture를 활용하도록 변경했습니다:
Before:
def test_module_load_unload(fresh_knobs):
# ...
out = torch.randn(1, dtype=torch.float32, device='cuda')
After:
def test_module_load_unload(device, fresh_knobs):
# ...
out = torch.randn(1, dtype=torch.float32, device=device)
왜 이게 좋은가
Device index 하드코딩은 단일 GPU 환경의 CUDA에서만 우연히 동작하는 취약한 코드입니다. getattr(torch, device).current_device()를 사용하면 실행 환경에 맞는 정확한 device ID를 가져올 수 있어 multi-GPU 환경이나 HIP 백엔드에서도 올바르게 동작합니다. 이런 작은 수정이 CI 파이프라인의 안정성을 크게 높입니다.
정리
캐시 테스트 5곳에서 하드코딩된 device_caches[0]을 device_caches[current_device()]로, 그리고 'cuda' 문자열을 device fixture로 교체하여 device agnostic하게 개선했습니다.
참고 자료
이 분석은 AI가 실제 코드 diff를 기반으로 작성했습니다.
관련 포스트
PR Analysis 의 다른글
- 이전글 [Grafana Loki] 블룸 필터 캐시를 맵으로 교체하여 운영 복잡도 제거
- 현재글 : [triton] 캐시 테스트를 Device Agnostic하게 개선
- 다음글 [Triton] 2CTA Block Scale MMA with tcgen05.cp — 두 CTA 협력 행렬 곱셈
댓글