TL;DR
- 딥러닝의 텐서 프로그램에서 무작위 차등 테스트가 놓치는 버그를 찾기 위해, 입력 하나를 검사하는 대신 모든 입력에 대해 출력 텐서의 단일 위치를 검사하는 동등성 검증 기법을 제안함.
- 기존 최적화 검증은 무작위 입력에 대한 차등 테스트에서 버그가 발견되지 않으면 정확하다고 가정하지만, 버그를 드러내는 입력은 값 사이의 정밀한 관계를 요구해 발생 가능성이 매우 낮을 수 있음.
- 제안 기법은 양화사의 순서를 뒤집어 출력 위치 하나의 동등성을 모든 입력에 대해 확인하며, 이를 상징적 실행 전략을 사용하는 시스템
dirigo로 구현함. - 차등 테스트에서 모두 정확한 것으로 표시된 공개 데이터셋의 AI 작성 CUDA 커널 6,988개를 평가함.
dirigo는 실제로 버그가 있는 커널 600개를 찾아냈으며, 이 버그 중 97.3%를 2분 이내에 발견함.
초록
- 딥러닝 모델에 사용되는 텐서 프로그램은 작은 성능 개선도 학습이나 추론 워크로드 전반에 큰 영향을 미칠 수 있어 최적화의 주요 대상임. 그러나 최적화는 복잡하고 미묘한 버그를 일으킬 수 있음.
- 기존에는 무작위 입력을 기준 구현과 비교하는 차등 테스트에서 버그가 드러나지 않으면 프로그램이 올바르다고 가정함. 하지만 프로그램 입력은 거대한 텐서이며, 버그를 찾으려면 값 사이에 정밀한 관계가 있는 매우 낮은 확률의 입력을 생성해야 할 수 있음.
- 버그를 더 일관되게 찾는 새로운 방법으로 양화사의 순서를 뒤집는 방식을 제안함. 입력 하나를 생성해 모든 출력 텐서 위치의 동등성을 검사하는 대신, 출력 텐서 위치 하나의 동등성을 모든 입력에 대해 검사함.
- 새로운 상징적 실행 전략을 사용하는 시스템
dirigo로 이 방법을 구현함. - 차등 테스트에서 모두 정확한 것으로 표시된 AI 작성 CUDA 커널 6,988개의 공개 데이터셋에서
dirigo가 버그를 효과적으로 찾음을 보임. 실제 버그가 있는 커널 600개를 발견했으며, 그중 97.3%를 2분 이내에 찾음.
분류
- 프로그래밍 언어(cs.PL), 머신러닝(cs.LG), 소프트웨어 공학(cs.SE)
인용 정보
- arXiv:2609.19611 [cs.PL]
- 이 버전: arXiv:2609.19611v1 [cs.PL]
- DOI: https://doi.org/10.48550/arXiv.2609.19611
제출 이력
- 제출자: Paul Biberstein
- 버전: v1
- 제출 시각: 2026년 9월 17일 02:54:30 UTC
- 파일 크기: 109KB
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요