[Triton] AMD CI에 pip 캐시 디렉토리 도입 — 네트워크 장애 대응
PR 링크: triton-lang/triton#8768 상태: Merged | 변경: +5 / -0
들어가며
CI/CD 파이프라인에서 패키지 다운로드는 네트워크 상태에 의존적이다. Triton의 AMD GPU 통합 테스트는 OSSCI(Open Source CI) 인프라에서 실행되는데, 간헐적인 네트워크 지연으로 pip install이 타임아웃되는 문제가 있었다. 이 PR은 로컬 캐시 디렉토리를 활용하여 이 문제를 해결한다.
핵심 코드 분석
Before: 캐시 없이 매번 네트워크 다운로드
# .github/workflows/integration-tests-amd.yml
# 매 CI 실행마다 pip install이 네트워크에서 직접 다운로드
- name: Install dependencies
run: |
pip uninstall -y triton pytorch-triton-rocm
ccache --zero-stats
make dev-install
After: 볼륨 마운트 + 조건부 캐시 사용
# Docker 컨테이너에 캐시 볼륨 마운트
options: >-
--volume /triton-data:/triton-data
# gfx950 러너에서만 캐시 디렉토리 사용
- name: Install dependencies
run: |
pip uninstall -y triton pytorch-triton-rocm
ccache --zero-stats
if [ "${{ matrix.runner[0] }}" = "amd-gfx950" ]; then
pip install --cache-dir /triton-data/pip-cache \
-r python/requirements.txt
pip install --cache-dir /triton-data/pip-cache \
-r python/test-requirements.txt
fi
make dev-install
핵심은 두 가지다:
- 볼륨 마운트:
/triton-data를 호스트에서 컨테이너로 마운트하여 CI 실행 간 캐시가 유지된다. - 조건부 적용: 캐시가 준비된 gfx950 러너에서만 적용하여 점진적 롤아웃한다.
왜 이게 좋은가
- CI 안정성: 네트워크 지연에 의한 빌드 실패가 크게 줄어든다. 캐시에 패키지가 있으면 네트워크가 불안정해도 설치가 성공한다.
- 빌드 속도: 캐시 히트 시 다운로드 시간이 거의 0이 되어 CI 사이클이 빨라진다.
- 점진적 도입: gfx950에서 먼저 검증한 뒤 다른 러너로 확장할 수 있는 안전한 롤아웃 전략이다.
정리
이 PR은 AMD CI 워크플로우에 pip 캐시 볼륨을 추가하여 네트워크 의존성을 줄인다. Docker 볼륨 마운트와 조건부 캐시 적용으로 CI 안정성을 높이는 간단하고 효과적인 변경이다.
참고 자료
이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 핵심 코드와 explaination은 실제 PR diff를 기반으로 합니다.
관련 포스트
PR Analysis 의 다른글
- 이전글 [Triton] AMD gfx1250 tt.LoadOp에 multicast 지원 추가
- 현재글 : [Triton] AMD CI에 pip 캐시 디렉토리 도입 — 네트워크 장애 대응
- 다음글 [ultralytics] Ultralytics 8.3.229: COCO Segmentation 평가 300% 가속화 분석
댓글