대규모 유한체에서 부동소수점 연산을 이용한 다중워드 행렬 곱셈
초록
본 논문은 부동소수점 연산을 활용해 모듈러 행렬 곱셈 C = A·B mod p 를 효율적으로 수행하는 새로운 다중워드 기법을 제안한다. 기존 방법은 p의 비트 크기가 반정밀도(예: double 26비트) 이하일 때만 효율적이었으나, 제안된 (u, v) 다중워드 분해를 통해 두 워드(2, 2)까지 확장하면 double 정밀도의 전체 비트(≈52비트)까지 처리 가능하다. 실험 결과 CPU·GPU 모두에서 기존 단일워드 방식보다 높은 성능을 보이며, 비트 크기 23부터 52까지 안정적으로 동작한다.
상세 분석
이 논문은 컴퓨터 대수에서 핵심적인 모듈러 행렬 곱셈 C = A B mod p 를 부동소수점 연산만으로 고속화하려는 문제에 접근한다. 기존의 단일워드 알고리즘은 IEEE 754 double‑precision(53비트)에서 p < 2²⁶(≈26비트)만 허용한다. 그 이유는 블록 행렬 곱셈 시 중간 결과가 부동소수점 정밀도 한계를 넘어가면 정확도가 손상되고, 추가적인 모듈러 감소 연산이 급증하기 때문이다. 논문은 이를 극복하기 위해 A와 B를 u·v개의 “워드”로 분해하고, 각 워드의 크기를 p^{1/u}·p^{1/v} 정도로 축소한다. 구체적으로 A = ∑{i=0}^{u‑1} α_i A_i, B = ∑{j=0}^{v‑1} β_j B_j 로 표현하고, C는 uv개의 부분곱 A_i B_j 를 모듈러 연산 후 가중합하여 복원한다.
핵심 이론적 기여는 다음과 같다.
- 스케일링 파라미터 선택: α와 β를 p^{1/u}, p^{1/v}에 가장 가깝게 잡음으로써 각 워드 행렬의 원소가 부동소수점 정밀도 t(=53) 내에 안전하게 들어가도록 보장한다. 논문은 부동소수점 연산의 라운딩 오차 η ≤ ε/(1+ε) 를 이용해, 워드 분해와 재조합 과정에서 발생할 수 있는 누적 오차를 엄격히 상한한다.
- 최대 비트 크기 분석: uv개의 워드가 필요하므로 연산 복잡도는 O(uv·m·n·k) 이다. 하지만 uv가 작을수록(예: u = v = 2) 전체 복잡도는 기존 BLAS 기반 단일워드와 비슷하면서, p의 허용 비트 수는 거의 전체 mantissa(≈52비트)까지 확대된다. 일반적인 (1, v) 혹은 (u, 1) 분해는 중간 비트 크기(30~45비트)에서 최적의 성능‑정밀도 균형을 제공한다.
- 부동소수점 모듈러 연산 보강: 기존 FMOD 기반 감소 알고리즘을 개선해, 입력 x가 2^{t‑2}·p 이하일 때도 정확히 동작하도록 증명한다. 또한, 곱셈 결과가 2^{t‑1}·3·p 이하인 경우에도 fma와 오류‑무료 변환을 이용해 안전하게 감소한다. 이는 다중워드 곱셈에서 각 부분곱이 큰 값이 될 수 있기에 필수적이다.
- 블록·연결형 변형: B_j(또는 A_i)를 메모리 연속으로 스택해 “연결형” 형태로 만든 뒤, 하나의 큰 BLAS GEMM 호출로 uv개의 부분곱을 동시에 수행한다. 이 기법은 특히 A가 짧고 B가 길거나 그 반대인 경우 메모리 대역폭과 연산 집약도를 크게 향상시킨다.
실험에서는 다양한 행렬 크기(m, k, n)와 p 비트 크기를 조합해 CPU(Intel Xeon Gold)와 GPU(NVIDIA A100)에서 벤치마크를 수행했다. 결과는 다음과 같다.
- p 비트가 23
30인 경우, (1, 2) 혹은 (2, 1) 분해가 기존 단일워드보다 1.32.0배 빠르다. - p 비트가 40
45인 경우, (2, 2) 분해가 가장 효율적이며, 단일워드 대비 1.82.5배 가속을 보인다. - p 비트가 52에 근접할 때도 (2, 2) 분해가 정확성을 유지하면서, GPU에서 1.5배 정도의 성능 향상을 달성한다.
또한, 메모리 사용량은 uv·(m·n) 정도로 증가하지만, 현대 CPU·GPU의 고대역폭 메모리와 캐시 친화적인 블록 전략 덕분에 전체 실행 시간에 미치는 영향은 미미했다. 논문은 또한 다중워드 기법이 기존 CRT 기반 멀티모듈러 접근법보다 연산 수가 적고, 구현 복잡도가 낮으며, 하드웨어 가속을 그대로 활용할 수 있음을 강조한다.
전반적으로 이 연구는 부동소수점 기반 고정밀 연산을 활용해 정확한 모듈러 행렬 곱셈을 수행할 수 있는 새로운 패러다임을 제시한다. 특히, 대규모 과학·공학 시뮬레이션이나 암호학적 프로토콜에서 큰 소수 모듈러 연산이 요구될 때, 기존 정수 기반 라이브러리보다 훨씬 높은 처리량을 제공한다는 점에서 실용적 가치가 크다.
댓글 및 학술 토론
Loading comments...
의견 남기기