Skip to content

4부. 정확한 계산이 바꾸는 것

들어가는 말: 오차라는 제약을 한 단 다르게 바라봤을 때

Section titled “들어가는 말: 오차라는 제약을 한 단 다르게 바라봤을 때”

앞 장에서 우리는 모래성 비유를 통해 FQNM의 핵심 직관을 살펴보았다. 바람에 날리는 연속적인 모래 흐름을, 블록의 이동 규칙이라는 정수 기반 참조표로 옮겨놓는 발상이었다. 그렇다면 이 전환이 실제 시뮬레이션 환경에서 어떤 의미를 가질 수 있는가?

수치 해석과 물리 시뮬레이션에서는 오랫동안 오차를 얼마나 늦추고 관리할 수 있는가가 중심 문제였다. 시간이 길어질수록 작은 오차의 누적으로 결과가 흔들리는 현상은 실제 계산에서 자주 부딪힌다. 이 누적을 억제하기 위해 우리는 주기적으로 상태를 보정하고, 더 높은 정밀도의 부동소수점을 도입하며 막대한 계산 자원을 투입해 왔다.

계산의 밑바닥을 정수 기반 규칙으로 다시 짤 수 있다면, 오랫동안 어쩔 수 없이 짊어지고 온 오차 관리의 부담 자체가 다른 모양으로 바뀔 수 있다.

가장 직접적인 변화는 장기 시뮬레이션에서 나타난다.

부동소수점을 사용하는 기존의 대규모 시뮬레이션(유체나 기후 모델)은 스텝이 길어질수록 까다로운 문제를 만난다. 반올림 오차가 끝없이 누적되면서 시스템 안에 원래 있어야 할 양보다 더 많거나 적은 에너지가 새어 들어오기도 하고, 시뮬레이션 자체가 엉뚱한 방향으로 흘러가버리기도 한다.

모든 이동 규칙을 정수로 통제하면 이 구도가 달라진다. 이웃끼리 개수를 주고받는 방식이므로, 시스템 안에서 질량이나 에너지가 새어 나가거나 늘어나는지를 정수의 텔레스코핑 자체로 추적할 수 있다. 실제로 FQNM 논문은 이 셈법이 주기적인 격자 위에서 총량을 정확히 보존함을 정리(Lemma 2.8)로 박아두고 있다. 계산 스텝이 수백만 번 돌아가도 소수점 아래 오차 때문에 결과가 서서히 흐트러지는 폭을 훨씬 줄일 수 있다는 의미다.

시간이 길어질수록 두 길이 갈라진다 시뮬레이션 스텝이 누적될 때 보존되어야 할 양의 운명 + 0 시뮬레이션 스텝 → Floating-point drift Integer telescoping

여기까지 강하게 말할 수 있는 것

주기적인 격자에서의 정확한 보존은 정리(Lemma 2.8)로 증명된 자리다. 적절한 극한 조건에서 이 셈법이 entropy solution — 보존형 PDE의 가장 까다로운 정답 — 으로 수렴한다는 점도 FQNM 논문 Theorem 2.7로 박혀 있다.

아직 가설인 것

위 결과는 monotone split flux를 갖는 스칼라 보존 법칙에 한정된다. 이 시도의 무대는 범용 PDE solver보다 좁다 — 타원 방정식이나 projection 기반 문제는 별도 구성이 필요한 영역이다 (논문 §2.5). 실제 현실을 얼마나 충실히 모사하는가는 모델을 얼마나 촘촘하게 짰느냐의 문제이고, 이 시도가 먼저 잡으려는 것은 시간이 지날수록 오차가 누적되어 계산이 원래 궤도에서 완전히 이탈해버리는 과정 쪽이다.

연구자들이 자주 부딪히는 문제 중 하나는 돌릴 때마다 결과가 요동치는 실행 환경이다. 컴퓨터 여러 대를 묶어 쓰는 병렬 연산에서는, 코드를 똑같이 매번 돌리더라도 작업 처리 순서가 미세하게 뒤섞이기 마련이다. 예를 들어 기후 시뮬레이션 코드를 똑같은 초기 데이터로 10번 돌렸는데, 50년 뒤 지구 평균 온도 예측치가 매번 0.5도씩 다르게 흔들린다고 상상해 보자. 결과의 재현성이 무너지면 그 예측을 신뢰하기 어려워진다. 앞서 보았듯 부동소수점은 더하는 대상의 순서 하나만 뒤바뀌어도 반올림 오차가 어긋나기 때문에, 똑같은 프로그램을 돌려도 100만 번 뒤의 결과는 매번 다른 곳에 정착한다.

모든 연산을 정수로만 굴리면 반올림이 개입할 여지가 대폭 줄어든다. 계산 순서가 바뀌면 결과가 흔들린다는, 부동소수점 특유의 까다로운 변수 하나를 크게 줄일 수 있는 셈이다.

이 문제는 편의성 너머에 있다. 같은 입력에 대해 같은 결과가 나와야 하는 과학 분야에서, 계산의 재현 가능성은 검증 비용과 직접 연결된다. 신약 개발이나 자율주행 시뮬레이션처럼 결과의 일관성이 중요한 분야에서는 이 차이가 훨씬 크게 다가온다.

3. 에너지 효율의 구조적 가능성

Section titled “3. 에너지 효율의 구조적 가능성”

대형 시뮬레이션에서 에너지 소모가 큰 이유 중 하나는 FPU의 특성에 있다. 부동소수점 연산 장치는 칩 안에서 면적이 크고, 전력 소모가 많으며, 발열이 가장 심한 부품 중 하나다. 소수점의 위치를 복잡하게 맞추고, 넘치는 꼬리를 잘라내는 반올림 등의 무거운 절차가 강제되기 때문이다.

연산의 핵심을 정수 단위로 옮기면 이 부담을 한결 가벼운 ALU가 받는다. 같은 덧셈이라도 FPU는 소수점 위치를 맞추고, 끝자리를 반올림하고, 예외적인 경우까지 처리해야 한다. 정수를 바로 더하는 ALU 회로는 이보다 단순하고 전력도 적게 든다. 무거운 실수 형식 대신 가벼운 정수로 숫자를 다루면 메모리 사용량도 줄어들고, 데이터를 칩 내부로 실어 나르는 부담이 줄면 전력 병목 완화에 기여할 가능성이 열린다.

여기까지 강하게 말할 수 있는 것

Burgers 방정식 표준 실험에서 부동소수점 기준선 대비 약 11배 가속이 측정되었다 (FQNM 논문 §3.2). 정수 ALU 경로의 회로 단순성과 메모리 절감은 하드웨어 차원에서 잘 알려진 성질이다.

아직 가설인 것

11배라는 숫자는 한 벤치마크에서의 측정값이며, 모든 워크로드에 일반화되는 약속과 거리가 있다. 시스템 전체의 전력·발열 차이가 어떻게 나타나는지는 더 많은 측정과 구현이 필요하다.

맺음말: 다시 세는 쪽을 바라본다는 것

Section titled “맺음말: 다시 세는 쪽을 바라본다는 것”

남기고 싶은 메시지는 단순하다. 오차를 관리하느라 치르던 비용을 덜 수 있는 길이 한 곳에서 열리고, 그 길은 계산의 밑바닥 규칙을 처음부터 셈법(정수)으로 짜는 발상에 닿는다.

이 접근은 한 영역에서 출발한 시도다. 아직 탐색 단계에 가깝고, 실제 구현과 검증은 훨씬 더 많이 남아 있다.

전력 소모, 하드웨어 병목, 고질적인 오차 누적이라는 벽이 갈수록 높아지는 지금, 근본으로 돌아가 처음부터 다시 세는 방식을 진지하게 탐색해볼 시기다.

마지막 질문은 이렇다.

계산의 미래는 더 정밀하게 재는 길로만 갈 것인가, 아니면 처음부터 다시 단단하게 세는(Counting) 길도 함께 열릴 것인가?