혼합 정밀도 연산 정확도 평가를 위한 듀얼‑델타 테스트
초록
본 논문은 혼합 정밀도 구현의 수치 정확성을 검증하기 위해 기존의 단일 오차 지표를 넘어서는 “듀얼‑델타 테스트” 방법론을 제시한다. 고정밀 오라클을 기준으로 커스텀 구현과 기준 구현 각각의 오차 분포를 별도로 측정·비교함으로써, 오류가 정밀도 한계에 기인한 것인지 구현 버그에 의한 것인지 명확히 구분한다. 수학적 정의, 알고리즘, 통계적 검정 및 행렬 곱셈 사례를 통해 방법의 실효성을 입증한다.
상세 분석
이 논문은 혼합 정밀도 컴퓨팅에서 수치 정확성을 평가할 때 흔히 발생하는 “단일‑델타” 접근의 한계를 체계적으로 분석한다. 단일‑델타는 커스텀 구현과 레퍼런스 구현 사이의 하나의 오차값만을 제공하므로, 관측된 오차가 하드웨어·포맷 자체의 제한인지, 혹은 구현상의 버그인지 구분하기 어렵다. 저자는 이를 해결하기 위해 고정밀 오라클(예: FP64 혹은 무한 정밀 MPFR)을 기준으로 두 구현 각각의 오차 분포 Δ₁, Δ₂를 독립적으로 수집한다. 이때 오차 메트릭 ϵ는 절대·상대 혼합, 노름 기반 등 상황에 맞게 선택 가능하도록 설계되었다.
수학적 프레임워크에서는 구현 f₁, f₂와 오라클 fΩ를 함수로 정의하고, 입력 분포 P(x)에서 N개의 샘플을 추출해 Δ₁ = {ϵ(f₁(xᵢ), fΩ(xᵢ))}, Δ₂ = {ϵ(f₂(xᵢ), fΩ(xᵢ))}를 만든다. 두 분포가 통계적으로 구별되지 않으면 두 구현이 동일한 정확도를 가진다고 결론짓고, 평균·분산 차이가 유의하면 정확도·안정성 우열을 판단한다. 여기서 제시된 명제 1‑3은 가설 검정과 직접 연결되며, 실제 구현에서는 Kolmogorov‑Smirnov, Wilcoxon signed‑rank, 혹은 정규성을 만족할 경우 paired t‑test 등을 활용한다.
알고리즘 1은 입력 생성, 두 구현 및 오라클 실행, 오차 계산을 반복하는 절차를 명확히 제시한다. 입력 생성 단계에서 무작위 샘플링뿐 아니라 도메인‑특화 엣지 케이스를 포함하도록 권고함으로써, 실제 워크로드에서 발생할 수 있는 최악 상황까지 포괄한다. 오라클 선택에 있어서는 “정밀도 격차” 조건 ϵ(fΩ, f_true) ≪ ϵ(fᵢ, f_true)를 만족해야 하며, 이는 FP16 대비 FP64, 혹은 FP8 대비 FP64/FP32 수준을 의미한다.
통계적 분석 파트에서는 평균, 중앙값, 표준편차, 퍼센타일(50,90,95,99) 및 최대 오차를 제시하고, 히스토그램·박스플롯·Q‑Q 플롯·산점도를 통해 시각적으로 분포 차이를 확인한다. 특히 Δ₁과 Δ₂를 동일 입력에 대해 쌍으로 비교하는 산점도는 두 구현이 동일한 어려운 입력에 취약한지, 혹은 서로 다른 오류 패턴을 보이는지를 직관적으로 보여준다.
실제 사례로는 FP16 행렬 곱셈을 GPU 커스텀 커널(f₁)과 CPU 레퍼런스(f₂)로 비교하고, FP64 구현을 오라클(fΩ)로 사용한다. 128×128 매트릭스에 대해 1,000번 반복 테스트를 수행한 결과, 평균 오차와 표준편차가 거의 동일함을 확인했으며, 히스토그램이 겹치는 모습을 통해 두 구현이 동일 수준의 정확도를 제공함을 입증한다. 이와 같은 실험은 듀얼‑델타 테스트가 실제 엔지니어링 파이프라인에 적용 가능함을 보여준다.
전체적으로 이 방법론은 (1) 오류 원인 분석을 정밀도 한계와 구현 버그로 명확히 구분, (2) 통계적 검정을 통해 신뢰성 있는 결론 도출, (3) 다양한 오류 메트릭과 시각화 도구를 제공함으로써 개발자와 연구자가 혼합 정밀도 알고리즘을 검증할 때 보다 체계적이고 재현 가능한 절차를 제공한다는 점에서 큰 의의를 가진다. 다만 오라클 연산 비용이 높아 대규모 테스트에서는 효율성 문제가 남으며, 입력 생성 전략에 따라 테스트 커버리지가 크게 달라질 수 있다는 점은 향후 연구 과제로 남는다.
댓글 및 학술 토론
Loading comments...
의견 남기기