GPU 가속 정확 반올림 함수 생성
초록
본 논문은 IEEE 754‑2008 표준이 요구하는 정확 반올림을 제공하기 위해 Table Maker’s Dilemma를 해결하는 과정에서, 기존 Lefévre 알고리즘을 GPU에 최적화한 새로운 병렬 탐색 기법을 제안한다. 연속분수 이론을 이용한 하드‑투‑라운드 인수 분석과 CPU‑GPU 하이브리드 구현을 통해 최대 53.4배(단일 CPU 대비)·7.1배(멀티코어 CPU 대비)의 가속을 달성하였다.
상세 분석
Lefévre 알고리즘은 함수의 다항식 근사와 그 근사에 대한 정확 반올림을 보장하기 위해 “hard‑to‑round” 구간을 찾는 과정이 핵심이다. 이 구간은 입력값 x에 대해 근사값 p(x)와 실제 함수값 f(x) 사이의 차이가 반올림 경계에 매우 가깝게 위치할 때 발생한다. 기존 구현에서는 연속분수 전개를 이용해 차이값을 정밀히 추정하고, 이를 기반으로 가능한 후보 구간을 순차적으로 검사한다. 그러나 이러한 순차 탐색은 제어 흐름이 불규칙하고, 후보가 거의 없을 경우에도 많은 연산을 수행하게 되어 CPU에서만 실행될 때 비효율적이다.
논문은 먼저 연속분수의 수렴 특성을 이용해 hard‑to‑round 인수를 탐색하는 수학적 구조를 재정립한다. 연속분수 전개는 근사오차를 정수와 분수의 형태로 표현함으로써, 오차가 특정 임계값 이하가 되는 구간을 빠르게 식별할 수 있다. 특히, 부분수열의 길이가 증가함에 따라 오차 하한이 급격히 감소하는 점을 이용해, 후보 구간을 탐색할 때 불필요한 단계는 즉시 배제한다.
GPU의 SIMD 특성을 고려하여, 저자들은 “regular control flow”를 갖는 새로운 병렬 탐색 알고리즘을 설계하였다. 각 스레드는 동일한 연산 흐름을 따르면서 서로 다른 입력 구간을 동시에 검사한다. 이를 위해 탐색 트리를 레벨별로 분할하고, 각 레벨에서 가능한 후보들을 워프(warp) 단위로 할당한다. 워프 내 스레드들은 동일한 분기 조건을 공유하므로, 분기 발산이 최소화되고 메모리 접근 패턴도 연속적으로 정렬된다. 또한, 연속분수 계수를 사전 계산해 전역 메모리에 저장하고, 필요 시 공유 메모리로 복사함으로써 메모리 대역폭 병목을 크게 완화하였다.
CPU‑GPU 하이브리드 구현에서는 다항식 근사 계수를 생성하는 단계가 여전히 CPU에 적합함을 인식하고, 이 단계는 멀티코어 CPU에서 병렬화한다. 이후 생성된 계수와 후보 구간 데이터만 GPU로 전송하여, GPU가 담당하는 hard‑to‑round 탐색을 수행한다. 데이터 전송 오버헤드를 최소화하기 위해 배치 크기를 동적으로 조정하고, 스트림(stream) 기반 비동기 전송을 활용하였다.
실험 결과는 double‑precision 형식에 대해 다양한 기본 함수(예: exp, log, sin, cos)에서 수행되었으며, 단일 GPU(NVIDIA Tesla V100) 기준으로 순차 CPU 구현 대비 평균 53.4배, 16코어 Xeon 대비 평균 7.1배의 속도 향상을 기록하였다. 특히, hard‑to‑round 구간이 희박한 함수에서는 탐색 단계가 크게 감소해 GPU의 높은 연산량을 효율적으로 활용할 수 있었다. 이러한 결과는 Table Maker’s Dilemma 해결에 필요한 시간과 비용을 크게 낮추어, 고정밀 수치 라이브러리 개발에 실질적인 이점을 제공한다.