MRI 기기는 우리 몸속을 찍기 위해 엄청난 양의 데이터를 처리합니다. 이 데이터를 이미지로 바꾸는 과정이 바로 FFT(고속 푸리에 변환) 라는 수학적 연산입니다. 보통 이 작업은 매우 정밀한 (고성능) 컴퓨터가 해야 하지만, 에너지와 메모리를 아끼기 위해 정밀도를 조금 낮추는 것 (저정밀도) 이 대세입니다.
하지만 정밀도를 너무 낮추면 사진이 흐려지거나 왜곡될 수 있습니다. 이 논문은 "정밀도를 낮추되, 사진 품질은 최대한 유지하는 지혜로운 방법" 을 제안합니다.
🧩 비유로 이해하는 기술의 핵심
이 논문이 제안한 방법은 크게 세 가지 단계로 나뉩니다.
1. "전체적인 크기 조절" (글로벌 프리스케일)
비유: 사진 편집 프로그램에서 이미지를 열었을 때, 너무 밝거나 너무 어두운 부분이 없도록 전체적인 밝기 (노출) 를 먼저 조절하는 것과 같습니다.
설명: 데이터가 너무 크면 넘쳐버리고 (오버플로우), 너무 작으면 사라져버릴 (언더플로우) 수 있습니다. 그래서 계산 시작 전에 데이터의 최대값과 최소값을 파악하여, 모든 숫자가 적절한 범위 안에 들어오도록 2 의 거듭제곱 (2, 4, 8, 16...) 단위로 전체 크기를 미리 조절합니다.
2. "조그만 블록별 맞춤 관리" (마이크로스케일링, MX)
비유: 거대한 도서관에서 책을 정리할 때, 모든 책에 똑같은 크기의 상자를 쓰는 대신 책장마다 (블록마다) 책의 두께에 맞춰 상자를 다르게 쓰는 것입니다.
설명: 데이터를 아주 작은 덩어리 (블록) 로 나누어, 각 덩어리마다 가장 큰 숫자에 맞춰 개별적인 스케일 (크기) 을 적용합니다. 이렇게 하면 작은 숫자도 잘 보이고, 큰 숫자도 잘 처리할 수 있어 데이터 손실을 막을 수 있습니다.
3. "작은 숫자는 간소화, 큰 숫자는 정밀하게" (혼합 정밀도)
비유: 일상 대화에서는 숫자를 반올림해서 말해도 되지만 (예: "약 300 만 원"), 중요한 계약서에서는 정확한 숫자를 써야 하는 것과 같습니다.
설명:
계산 과정: 복잡한 곱셈은 8 비트 (FP8) 같은 작은 숫자 형식으로 빠르게 계산합니다. (정밀도는 조금 낮추지만 속도는 빠름)
결과 합치기: 계산된 작은 숫자들을 합칠 때는 32 비트 (FP32) 같은 큰 숫자 형식을 사용합니다. (오차가 쌓이지 않도록 마지막에 정밀하게 합침)
핵심 발견: 연구 결과, 숫자의 '범위' (지수) 보다는 숫자의 '세부 묘사력' (부동소수점의 맨티사) 이 사진 품질을 결정하는 더 중요한 요소였습니다. 즉, 범위를 넓게 잡는 것보다 작은 숫자를 더 정교하게 표현하는 것이 MRI 화질을 좋게 합니다.
📊 실험 결과: 무엇이 잘 작동했을까?
연구진은 공개된 MRI 데이터 (뇌와 무릎) 로 실험을 해보았습니다.
최고의 조합:8 비트 (FP8) 형식 중에서도 세부 묘사력 (맨티사) 이 3 비트인 방식이 가장 좋은 화질을 보여주었습니다. (세부 묘사력이 2 비트인 방식은 화질이 떨어졌습니다.)
블록 크기: 데이터를 쪼개는 덩어리 (블록) 가 너무 작으면 (예: 2 개씩) 관리가 힘들어지고 화질이 나빠집니다. 32 개씩 묶어서 관리했을 때 가장 안정적이고 화질도 좋았습니다.
이미지 크기: 사진이 커지더라도 (64x64 에서 256x256 으로) 이 방법의 화질은 크게 변하지 않았습니다. 즉, 이 기술은 다양한 크기의 MRI 스캔에 적용 가능합니다.
💡 결론: 왜 이것이 중요한가요?
이 기술은 저가형이나 휴대용 MRI 기기에서 매우 유용합니다.
에너지 절약: 정밀도를 낮추고 블록 단위로 관리하면 전기를 훨씬 적게 씁니다.
속도 향상: 데이터 크기가 줄어들어 처리 속도가 빨라집니다.
화질 유지: "정밀도를 낮추면 화질이 나빠지겠지?"라는 걱정을 덜어줍니다. 적절한 블록 크기와 세부 묘사력 조절만 하면, 고가의 슈퍼컴퓨터 못지않은 화질을 유지할 수 있습니다.
한 줄 요약:
"MRI 사진을 찍을 때, 모든 숫자를 완벽하게 계산하는 대신 작은 덩어리별로 똑똑하게 크기를 조절하고, 마지막 합산만 정밀하게 하는 방법을 개발하여, 빠르고 전기 절약이 되면서도 선명한 MRI를 만들 수 있게 되었습니다."
1. 문제 정의 (Problem)
배경: Fast Fourier Transform (FFT) 은 MRI 영상 재구성을 포함한 다양한 신호 및 이미지 처리 파이프라인의 핵심 요소입니다. 저비용 및 휴대용 MRI 스캐너와 같은 엣지 (edge) 및 임베디드 플랫폼에서 메모리 트래픽과 에너지 소비를 줄이기 위해 저정밀도 (low-precision) 및 혼합 정밀도 (mixed-precision) 연산에 대한 관심이 증가하고 있습니다.
도전 과제: 복소수 FFT 에 저정밀도 양자화를 직접 적용할 경우, 오버플로우/언더플로우 오류와 정확도 손실이 발생할 수 있습니다. 기존 연구들은 주로 GEMM(행렬 곱셈) 커널에 초점을 맞추었거나, 정적 스케일링에 그쳤으며, 특정 응용 분야인 MRI 의 k-공간 (주파수 영역) 데이터를 이미지 공간으로 변환하는 과정에서의 수치적 안정성을 충분히 다루지 못했습니다.
목표: MRI 데이터 처리에 적합하도록 수치적 정확도를 보장하면서, 저전력과 저메모리 사용을 가능하게 하는 혼합 정밀도 FFT 구현을 제안하는 것입니다.
2. 방법론 (Methodology)
저자들은 MX(Microscaling) 스타일의 스케일링과 FP8 양자화를 FFT 에 적용하는 새로운 아키텍처를 제안했습니다. 주요 구성 요소는 다음과 같습니다.
전역 2 의 지수 프리스케일링 (Global Power-of-Two Prescale):
버터플라이 연산 중 오버플로우/언더플로우를 방지하기 위해 FFT 계산 전 입력 데이터에 단일 2 의 지수 스케일링을 적용합니다.
입력의 최대 피크와 특정 백분위수 (tail) 를 분석하여, 피크는 목표값에 맞추고 작은 값들은 언더플로우 임계값 이상으로 들어오도록 엄격한 조건을 적용합니다.
MX 기반 복소수 버터플라이 연산 (MX-scaled Complex Butterfly Operations):
블록 단위 스케일링: 작은 복소수 블록 (예: 32 개 실수 요소) 단위로 MX 포맷을 적용합니다.
연산 과정:
연산자 (Twiddle 및 입력) 를 FP8/MX 블록으로 인코딩합니다.
부동소수점의 부동수 (mantissa) 영역만 추출하여 복소수 곱셈을 수행합니다.
곱셈 결과는 FP8 블록으로 다시 재패킹되며, 이후 덧셈/뺄셈 (버터플라이) 은 FP32 고정밀도로 수행하여 오차 누적을 방지합니다.
중간 결과의 부동수 크기가 포맷 한계를 초과하면 재정규화 (re-normalization) 를 수행합니다.
평가 설정:
공개 MRI 데이터셋 (fastMRI: 뇌, SKM-TEA: 무릎) 의 k-공간 데이터를 사용하여 순방향 (Forward) 및 왕복 (Round-trip, Forward + Inverse) FFT 를 평가했습니다.
정밀도 지표로 PSNR, SSIM, NMSE 를 사용했으며, FP32 기준 및 FP16 제어군과 비교했습니다.
3. 주요 기여 (Key Contributions)
MX 스타일 FFT 구현: GEMM 커널에서 주로 쓰이던 블록 단위 마이크로스케일링 (MX) 을 복소수 FFT 버터플라이 연산에 처음 적용했습니다.
혼합 정밀도 전략:
입력: 전역 프리스케일링 + FP8/MX 양자화.
곱셈: 부동수 (mantissa) 공간에서 FP8 연산.
누적 (Accumulation): FP32 고정밀도 사용 (GPU 혼합 정밀도 커널 관행 준수).
Twiddle 계수: 사전 양자화된 FP8 사용.
MRI 특화 분석: GEMM 과 달리 이미지 재구성과 같은 작업에서 부동수 (mantissa) 정밀도와 지수 (exponent) 범위의 트레이드오프가 어떻게 작용하는지를 규명했습니다.
4. 실험 결과 (Results)
정밀도 포맷 비교:
MXFP8-E4M3 (부동수 4 비트) 이 모든 FP8 포맷 중 가장 우수한 성능을 보였습니다.
MXFP6-E2M3도 순방향 FFT 에서 양호한 성능을 보였습니다.
부동수가 2 비트인 포맷 (E5M2, E3M2) 은 이미지 품질이 현저히 저하되었습니다. 이는 부동수 정밀도가 MX 스케일링 하에서 정확도의 주요 제한 요인임을 시사합니다.
블록 크기 (Block Size) 의 영향:
블록 크기 B=2 (단일 복소수) 는 스케일 변환 오버헤드가 크고 반올림 오차가 누적되어 성능이 낮았습니다.
블록 크기 B=32가 가장 좋은 수치적 성능을 보였으며, B=8 이상에서 성능 향상이 포화되는 경향을 보였습니다. 큰 블록은 스케일 통계를 안정화하고 하드웨어 벡터화 효율을 높입니다.
이미지 크기의 영향:
이미지 크기 (64x64 ~ 256x256) 가 커져도 정밀도 지표 (PSNR, SSIM) 에 큰 변화는 없었습니다. 이는 양자화 단계가 상대적으로 적기 때문입니다.
데이터셋별 차이:
SKM-TEA(무릎) 데이터가 fastMRI(뇌) 데이터보다 더 안정적인 최대값 (amax) 을 보여 더 높은 PSNR/SSIM 을 기록했습니다. 뇌 데이터는 동적 범위가 넓어 작은 계수의 반올림 오차가 증폭되는 경향이 있었습니다.
5. 의의 및 결론 (Significance & Conclusion)
핵심 통찰: MRI 와 같은 이미지 재구성 작업에서 저정밀도 FFT 의 정확도는 지수 (exponent) 범위보다 부동수 (mantissa) 정밀도에 더 크게 의존합니다. 따라서 E4M3(부동수 4 비트) 과 같은 포맷이 E5M2(부동수 2 비트) 보다 우월합니다.
실용적 제안:
저전력 MRI 재구성을 위해서는 **FP32 누적 (accumulation)**과 **충분히 큰 MX 블록 (B=32 권장)**을 사용하는 것이 최선의 방법입니다.
순방향 및 역방향 FFT 를 하나의 파이프라인으로 융합 (Fusion) 하여 재인코딩 오버헤드를 줄이면 왕복 손실 (Round-trip loss) 을 추가로 감소시킬 수 있습니다.
미래 전망: 이 연구는 복잡한 재구성 파이프라인 (undersampled iterative reconstruction 등) 에서의 고속 계산을 위한 중간 단계로, 현재 모든 임상 영역에 즉시 적용 가능한 수준은 아니지만, 저정밀도 하드웨어를 활용한 MRI 가속화의 방향성을 제시합니다.
이 논문은 전통적인 블록 부동수 (BFP) FFT 아이디어와 현대적인 FP8/MX 구현을 결합하여, 의료 영상 처리라는 구체적인 응용 분야에서 저정밀도 연산의 한계와 최적화 전략을 체계적으로 규명한 의의가 있습니다.