핵심 개념
FlowFPX는 부동 소수점 예외의 흐름을 기록하고, 예외 문맥을 통합하며, 선별적으로 퍼징하여 부동 소수점 예외를 체계적으로 디버깅할 수 있는 도구 키트입니다.
초록
FlowFPX는 부동 소수점 예외를 디버깅하기 위한 도구 키트입니다.
FloatTracker는 FlowFPX의 핵심 구성 요소로, 예외 발생을 선별적으로 모니터링하고 코드를 퍼징하여 취약점을 발견할 수 있습니다. FloatTracker는 예외의 생성, 전파, 제거 과정을 추적하고 이를 통해 예외의 근원을 파악할 수 있습니다.
또한 FlowFPX는 예외 흐름을 시각화하기 위해 병합된 스택 추적 그래프(CSTG)를 활용합니다. CSTG는 예외를 처리한 프로그램 문맥을 요약하여 보여줌으로써 디버깅 작업을 돕습니다.
GPU-FPX는 FlowFPX의 또 다른 구성 요소로, GPU 커널 내부의 부동 소수점 예외를 추적합니다. 이를 통해 가속화된 프로그램의 신뢰성을 높일 수 있습니다.
FlowFPX는 다양한 사례 연구를 통해 검증되었습니다. 천해 시뮬레이션, OrdinaryDiffEq 솔버, Bayesian 추론 라이브러리 등에서 FlowFPX가 예외 발생 지점을 정확히 찾아내고 퍼징을 통해 취약점을 발견하는 데 도움을 주었습니다.
통계
부동 소수점 연산 중 NaN이 2번 발생했습니다.
부동 소수점 연산 중 Inf가 1번 발생했습니다.
부동 소수점 연산 중 subnormal이 0번 발생했습니다.
부동 소수점 연산 중 0으로 나누기가 2번 발생했습니다.
FP32 연산 중 NaN이 1번 발생했습니다.
FP32 연산 중 Inf가 0번 발생했습니다.
FP32 연산 중 subnormal이 0번 발생했습니다.
FP32 연산 중 0으로 나누기가 0번 발생했습니다.
총 21개의 커널이 실행되었습니다.
인용구
"FlowFPX는 부동 소수점 예외의 흐름을 체계적으로 디버깅할 수 있는 도구 키트입니다."
"FloatTracker는 예외 발생을 선별적으로 모니터링하고 코드를 퍼징하여 취약점을 발견할 수 있습니다."
"CSTG는 예외를 처리한 프로그램 문맥을 요약하여 디버깅 작업을 돕습니다."