MAC 연산 (Multiply-Accumulate)
핵심 인사이트 (3줄 요약)
- 본질: $A \times B + C$ 라는 '두 수를 곱하고 그 결과를 기존 값에 더하는' 과정을, 소프트웨어 명령어 두 번(곱셈 후 덧셈)이 아닌 하드웨어 레벨에서 단 한 번의 끊어지지 않는 동작(One-pass)으로 수행하는 디지털 신호 처리(DSP) 및 AI 하드웨어의 가장 근원적인 톱니바퀴다.
- 가치: 딥러닝 인공신경망의 99%를 차지하는 연산인 "입력값(X)과 가중치(W)를 곱하고 편향(b)을 누적하는" 무한 반복 노가다를 가장 칩 면적을 덜 차지하고 전기를 덜 먹는(고효율) 방식으로 끝내어, 시스템의 **전성비(Performance per Watt)**를 극대화한다.
- 융합: FMA(Fused Multiply-Add) 명령어로 진화하여 반올림 오차(Rounding Error)를 한 번만 내어 정확도를 높였으며, 결국 이 좁쌀만 한 MAC 유닛 수만 개를 어떻게 칩 위에 바둑판처럼 예쁘게 융합(시스톨릭 어레이)하느냐가 현대 NPU와 TPU 설계 패권의 전부가 되었다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
MAC 연산 (Multiply-Accumulate)은 컴퓨터가 소리(음성), 영상, 인공지능을 다루기 시작하면서 "도저히 곱하기 명령어 치고 더하기 명령어 치는 두 번의 짓거리를 못 해 먹겠다"며 칩셋 설계도를 갈아엎어 만든 전용 근육이다.
초기 폰 노이만 CPU 아키텍처에서는 행렬 내적(Dot Product)을 구할 때 $A \times B + C$ 를 계산하려면 다음의 과정을 거쳐야 했다.
MUL R1, A, B(A와 B를 곱해서 R1 레지스터에 저장, 3클럭 소모)ADD R2, R1, C(R1과 C를 더해서 R2 레지스터에 저장, 1클럭 소모)
명령어를 2번 가져와야(Fetch) 했고, 중간 결과값(R1)을 굳이 레지스터에 저장하고 뺐다 하며 아까운 시간을 버렸다. 오디오 필터를 씌우거나 딥러닝 뇌세포 1개를 통과할 때마다 이 계산을 수백만 번 해야 했다.
공학자들은 하드웨어 회로를 아예 융합해 버렸다. "곱셈기(Multiplier)의 출력을 덧셈기(Adder)의 입력으로 다이렉트로 전선으로 용접해 버리자! 그럼 MAC A, B, C 라는 명령어 하나만 치면, 1클럭 펄스(Pulse)가 뛸 때 중간에 안 쉬고 곱하고 바로 더해서 튀어나오잖아!"
[전통적 순차 연산 vs 하드웨어 MAC 유닛의 파이프라인 단축 도식]
(A) 전통적인 분리 연산 (CPU)
[ A ] [ B ]
↘ ↙
[ 곱셈기 ] => (레지스터 저장 오버헤드 발생!) => [ 임시값 ] [ C ]
↘ ↙
[ 덧셈기 ] => [ 결과 ]
(B) 하드웨어 MAC 유닛 (DSP, NPU)
[ A ] [ B ] [ C ]
↘ ↙ │
[ 곱셈기 ] │ (전선으로 다이렉트 직결! 레지스터 없음)
↘ ↙
[ 덧셈기 ] => [ 결과 (딱 1사이클 소모!) ]
이 단순하고 무식한 "곱하고 더하기" 전용 회로는, 음향 기기(DSP)의 혁명을 이끌었고, 지금은 챗GPT를 탄생시킨 수경 번의 인공지능 연산을 떠받치는 우주에서 가장 중요한 트랜지스터 덩어리가 되었다.
📢 섹션 요약 비유: 옛날엔 밀가루를 반죽하는 기계(곱셈)와 그걸 구워서 빵으로 만드는 기계(덧셈)가 따로 있어서, 반죽을 바가지(레지스터)에 담아 옮기느라 빵이 늦게 나왔습니다. MAC 유닛은 밀가루를 넣으면 뱃속에서 반죽과 동시에 불로 구워버려(원패스 직결) 1초 만에 완성된 빵을 뱉어내는 붕어빵 융합 기계입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
MAC 연산이 위대한 이유는 단순히 속도가 빨라서가 아니라, **'연산의 정확성(Precision)'과 '공간 효율성(Area)'**을 동시에 잡은 FMA(Fused Multiply-Add)라는 형태로 진화했기 때문이다.
| 아키텍처 진화 모델 | 하드웨어 동작 원리 | 반올림 오차(Rounding Error) 발생 여부 | 비유 |
|---|---|---|---|
| 분리된 MUL + ADD | 곱셈 회로와 덧셈 회로가 물리적으로 끊어져 있음 | 곱셈 끝날 때 1번, 더할 때 1번. 총 2번의 오차 발생 (정확도 낮음) | 두 명의 직원이 번역을 두 번 거치며 내용 오역 |
| 전통적 MAC | 붙어는 있지만 중간에 값이 한 번 잘림 | 곱할 때 1번, 더할 때 1번. 여전히 오차 발생 가능 | 붙어있는 책상이지만 서류를 덮고 다시 열기 |
| FMA (Fused MAC) | 중간 결과값을 아예 자르지 않고, 무한대 정밀도로 유지한 채 끝까지 더해버림 | 제일 마지막에 딱 1번만 반올림 오차 발생 (극강의 정확성 보장) | 중간 번역 없이 뇌 속에서 한 번에 텔레파시 직역 |
특히 **FMA (Fused Multiply-Add)**는 현대 인텔/AMD CPU와 엔비디아 GPU에 탑재된 MAC의 완성형이다.
[FMA (Fused MAC)의 소수점 정확도 수호 마법]
* 수학 문제: X = 1.0001 * 1.0001 - 1.0000
(1) 멍청한 분리 연산 (소수점 4자리에서 버림하는 컴퓨터라 가정)
1단계: 1.0001 * 1.0001 = 1.00020001 인데, 그릇이 작아 1.0002 로 싹둑 잘림! (오차 발생)
2단계: 1.0002 - 1.0000 = 0.0002 (오답)
(2) FMA (Fused MAC)의 위엄
1단계: 하드웨어 배 속의 곱셈기가 임시로 어마어마하게 큰 그릇(무한 정밀도)을 써서 1.00020001 을 1비트의 손실도 없이 쥐고 있음.
2단계: 그 상태에서 바로 1.0000 을 뺌 = 0.00020001
3단계: 마지막에 그릇에 담으며 딱 한 번 자름 = 0.00020001 그대로 보존! (정답)
인공지능 딥러닝의 가중치(Weight) 업데이트 수백만 번 도중 이 소수점 끝자리의 오차가 누적되면 모델이 바보가 된다(Gradient Vanishing/Exploding). FMA는 단 1번의 잘라내기(Rounding)만 허용하여 수학적 무결성을 지켜낸 아키텍처 승리다.
📢 섹션 요약 비유: FMA는 중간 상인(레지스터)을 거치지 않는 직거래입니다. 곱하기 공장과 더하기 공장 사이에 유통업자가 끼면 마진(소수점 오차)이 두 번 떼이지만, 두 공장을 컨베이어 벨트로 용접(Fused)해 버리면 소비자에게 전달될 때 딱 한 번만 세금을 떼기 때문에 정보(데이터)의 양이 온전하게 보존됩니다.
Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)
이 작고 귀여운 MAC 연산기 하나를 어떻게 모아서 배치하느냐에 따라, 현대 IT 산업의 칩셋 계급(CPU vs GPU vs NPU)이 완벽하게 나뉜다.
연산기(ALU/MAC) 배치에 따른 3대 아키텍처 융합
| 칩셋 종류 | MAC 유닛의 활용 및 탑재 비중 | 아키텍처적 철학과 융합의 결과 |
|---|---|---|
| CPU (범용) | 칩 면적의 10% 이하. AVX-512 등 SIMD 벡터 명령어(FMA) 형태로 드문드문 탑재. | 똑똑한 제어를 위해 MAC은 구석에 박혀 가끔 거드는 보조 역할 |
| GPU (그래픽) | 칩 면적의 50% 이상. 쿠다(CUDA) 코어 하나하나가 거대한 FMA 융단 폭격기 부대. | 제어를 덜어내고 수천 개의 MAC이 동시에 1차원(벡터)을 밀어버림 |
| NPU / TPU (AI) | 칩 면적의 90% 이상. 아예 MAC 유닛 수만 개를 2D 바둑판(시스톨릭 어레이)으로 용접해 버림. | 궁극의 MAC 몰빵 칩. 오직 $W \times X + b$ 를 위해 모든 범용성을 포기함 |
타 과목 관점의 융합 시너지
- 인공지능 구조론 (퍼셉트론과 MAC의 1:1 완벽 융합): 인간의 뇌세포 1개(뉴런)를 수학으로 옮긴 인공신경망의 퍼셉트론(Perceptron) 공식은 $y = f(\sum w_i x_i + b)$ 다. 즉, "입력 자극($x$)에 가중치($w$)를 곱해서 전부 다 누적해 더하라($+b$)"는 뜻이다. 이것은 하드웨어 MAC (Multiply-Accumulate) 명령어의 존재 이유와 100% 소름 돋게 일치한다. 딥러닝이라는 소프트웨어 이론이 폭발할 수 있었던 이유는, 이 수식을 하드웨어로 가장 완벽하고 싸게 구현해 낸 MAC 유닛이 반도체 기술 발전으로 먼지보다 작아져 칩 안에 수만 개씩 들어갔기 때문이다.
- 반도체 양자화 (Quantization & Mixed Precision): NPU 설계자들은 MAC 연산기를 더 작게, 전기를 덜 먹게 만들고 싶었다. 그래서 32비트 소수점(FP32)을 곱하는 거대한 MAC 1개를 부숴버리고, 그 자리에 8비트 정수(INT8)만 대충 곱하는 쪼그만 MAC 4개를 구겨 넣었다. 이것이 바로 모델 경량화의 핵심인 **양자화(Quantization)**다. 데이터가 INT8(정수)이 되면 MAC 유닛의 실리콘 면적이 기하급수적으로 줄어들고(Area 융합), 배터리 전력 소모도 1/10로 떨어져 스마트폰 온디바이스 AI를 가능케 한 1등 공신이 되었다.
[MAC 유닛 크기에 따른 딥러닝 전성비 트레이드오프 프랙탈]
* 칩의 똑같은 1mm^2 면적에 박을 수 있는 MAC 연산기의 개수:
- FP64 (64비트 정밀 수학) MAC: 1개 탑재 가능 (슈퍼컴퓨터용, 너무 비싸고 느림)
- FP32 (32비트 기본 그래픽) MAC: 4개 탑재 가능 (일반 GPU의 기준)
- FP16 (16비트 반정밀도 AI) MAC: 16개 탑재 가능 (엔비디아 텐서 코어의 핵심)
- INT8 (8비트 정수 딥러닝) MAC: 64개 탑재 가능! (스마트폰 NPU의 사기적인 물량 공세 비결)
=> 결론: AI 소프트웨어 엔지니어가 데이터(Type)를 작게 깎아주면(양자화),
하드웨어는 같은 공간에 MAC을 64배 더 많이 박아 넣어 연산량을 폭파시킨다!
📢 섹션 요약 비유: 뇌세포(뉴런)가 1개 움직일 때마다 $X \times W + b$ 라는 수학 서류에 도장을 찍어야 합니다. 예전 CPU는 만년필(분리 연산)로 숫자를 하나하나 적었지만, 인공지능 시대에는 아예 이 수식 모양 그대로 깎아 만든 자동 고무도장(MAC 유닛) 6만 개를 프레스 기계에 달아서 1초 만에 뇌세포 수만 개의 계산을 쾅쾅 찍어버리는 시대적 융합이 일어났습니다.
Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)
실무 AI 연구자나 백엔드 시스템 엔지니어가 딥러닝 모델 아키텍처를 짤 때, 이 밑바닥의 "MAC 횟수"를 계산하지 않고 무지성으로 레이어를 층층이 쌓으면 서버 대여 비용이 천문학적으로 터지게 된다.
실무 딥러닝 모델 경량화 및 MAC 최적화 시나리오
-
파라미터 수(Params)가 아닌 FLOPs / MACs 지표 중심의 프로파일링
- 상황: 스마트폰(엣지 디바이스)에 올릴 CNN 이미지 모델을 만드는데, 모델 파일 용량(파라미터 수)은 5MB로 작아서 좋아 보였으나 막상 폰에서 돌리니 배터리가 불타오르고 초당 1프레임도 안 나옴.
- 의사결정: 모델 프로파일러(ptflops 등)를 돌려 파라미터 수가 아니라 모델이 1회 추론할 때 요구하는 총 MACs (또는 FLOPs) 연산량을 확인한다. 이후 Depthwise Separable Convolution 기법(MobileNet 등)을 융합 적용하여 모델의 공간적 MAC 요구량을 1/10로 박살 낸다.
- 이유: 파일 크기(파라미터 수)는 메모리 로딩 시간에만 영향을 줄 뿐이다. 칩을 달구고 배터리를 박살 내는 진짜 주범은 하드웨어 MAC 유닛이 윙윙 돌아가는 "곱하고 더하기"의 총횟수다. 실무에서는 무조건 논문에 적힌 파라미터 크기보다 G-MACs (Giga MACs) 지표를 엣지 하드웨어의 최대 TOPS(Tera Operations Per Second) 수용량과 비교하여 컷오프(Cut-off)해야 한다.
-
비효율적 Sparse(희소) 행렬의 Dense(밀집) 행렬화 강제
- 상황: 엄청난 크기의 그래프 신경망(GNN)이나 0이 90%인 희소 행렬(Sparse Matrix) 연산을 NPU나 GPU의 텐서 코어(MAC 어레이)에 부어 넣었더니 속도가 CPU보다 구려짐.
- 의사결정: 알고리즘을 뜯어고쳐 0이 많은 희소 구조를 강제로 압축하거나, 0 패딩을 채워 완전히 빽빽한 Dense(밀집) 블록 행렬 형태로 데이터 레이아웃을 전면 리팩토링하여 가속기에 던진다.
- 이유: 하드웨어에 융합된 MAC 어레이(텐서 코어 등)는 '0'이 들어오든 '100'이 들어오든 똑같이 1클럭의 전기를 태워가며 무지성으로 $0 \times 0 + 0$ 이라는 헛짓거리(Zero-Compute)를 수행한다. 즉 0이 많은 데이터를 던져주면 비싼 MAC 유닛 수만 개가 허공에 삽질하느라 파이프라인만 막힌다. 하드웨어 MAC이 가장 사랑하는 것은 1 나노미터의 틈도 없이 데이터로 꽉꽉 들어찬 빽빽한 2차원 행렬(Dense Matrix) 뿐이다.
[실무 온디바이스 AI 칩셋 도입 스펙(TOPS vs MACs) 해독 트리]
[현상] 퀄컴/애플 NPU 스펙에 "40 TOPS(초당 40조 번 연산) 지원!" 이라고 적혀있다.
├─ 질문: 저 40 TOPS가 FP16(16비트) 기준인가, INT8(8비트 정수) 기준인가?
│ ├─ INT8 기준이다 ──> 하드웨어가 꼼수를 부린 거다.
│ │ 실제 무거운 FP16 모델을 올리면 10 TOPS 수준으로 성능이 1/4 토막 남.
│ │ 반드시 PTQ 양자화를 통해 모델을 INT8로 강등시켜야 제 속도가 나옴.
│ │
│ └─ FP16 기준이다 ──> 훌륭한 고성능 칩셋. 양자화 없이 원본 모델 그대로 올려도 잘 돎.
│
└─ 명심할 공식: 1 MAC (곱하고 더하기) = 2 OPS (덧셈 1번, 곱셈 1번).
즉, 40 TOPS NPU는 실제로는 1초에 20조 번의 딥러닝 가중치 MAC 연산을 할 수 있다는 뜻.
운영 및 아키텍처 도입 체크리스트
- 구글 클라우드나 AWS에서 AI 가속기를 빌릴 때, CPU의 AVX-512 FMA(MAC) 명령어를 짜내는 값싼 Intel/AMD 일반 인스턴스로 돌려도 충분한 트래픽(초당 1건 수준)인지, 굳이 비싼 GPU의 수만 개 MAC 어레이를 임대해야 하는지 손익분기점(BEP)을 계산했는가?
안티패턴: AI 모델을 설계하면서 정확도 1%를 올리겠다고 거대한 FC(Fully Connected) 레이어를 수십 개씩 추가하는 짓. 코드로는 단 몇 줄이지만, 하드웨어 단에서는 필요한 MAC 연산 횟수가 기하급수적(O(N^2))으로 폭발하여 모바일 기기를 벽돌로 만들어버리는 아키텍처 무지에서 비롯된 죄악이다.
📢 섹션 요약 비유: MAC은 망치질 1번입니다. 집(AI 모델)을 설계하는 도면(코드)을 아무리 예쁘게 그려도, 그 도면에 "여기 못 1,000만 개 박아주세요"라고 적혀있으면 목수(칩)의 관절이 나갑니다. 뛰어난 아키텍트는 못을 10만 개만 박고도 똑같이 튼튼한 집을 설계(MAC 최적화)하여 건축비와 시간을 1/100로 줄이는 사람입니다.
Ⅴ. 기대효과 및 결론 (Future & Standard)
MAC 연산기는 1+1을 계산하던 원시적인 컴퓨터를, 화면에 우주를 렌더링하고 스스로 사고하는(딥러닝) 괴물로 진화시킨 컴퓨터 구조 역사상 가장 효율적인 트랜지스터의 집적물이다.
| 패러다임 극복 과제 | 구형 순차 ALU 중심 시대 | FMA / MAC 어레이 융합 시대 | 현대 딥러닝 산업 인프라 혁명 |
|---|---|---|---|
| 행렬 연산의 정확도 | 잦은 반올림(Rounding)으로 오차 눈덩이 | FMA로 끝에서 1번만 반올림해 수학적 무결성 사수 | 수천 계층(Layer)의 심층 신경망에서도 오차가 터지지 않는 기적 |
| 연산당 에너지 비용 | 명령어 디코딩과 레지스터 핑퐁에 전력 낭비 | 1명령어로 1클럭 내 직결 통과(One-pass) | NPU의 탄생. 1W 전력으로 수조 번의 행렬 곱셈을 때리는 스마트폰 AI 도래 |
미래 전망: 실리콘 반도체 위에서 MAC 유닛을 작게 만드는 기술은 이제 한계에 달했다. 미래의 혁신은 전기를 쓰는 MAC을 버리고, 빛의 간섭과 파장을 이용해 곱셈과 덧셈을 물리적으로 순식간에 끝내버리는 광학 AI 가속기 (Optical MAC / Silicon Photonics) 로 진화할 것이다. 거울과 프리즘을 통과하는 빛 그 자체가 행렬의 MAC 결과를 내놓게 되면, 발열은 완전히 '제로(0)'가 되고 속도는 테라헤르츠(THz) 급으로 뛰는 양자 도약이 일어날 것이다.
📢 섹션 요약 비유: 지금까지 우리는 더 작은 계산기(실리콘 MAC) 수만 개를 칩 안에 구겨 넣기 위해 돋보기를 들고 납땜을 하는 고통스러운 공학의 길을 걸었습니다. 하지만 미래에는 전기 스위치를 버리고, 렌즈 여러 개를 겹쳐놓고 레이저 빛(Optical MAC)을 쏘는 순간 그 빛이 섞여 나오는 그림자가 곧 곱하기 더하기 정답이 되는, 빛의 마술을 컴퓨터 속으로 융합하는 시대로 나아갈 것입니다.
📌 관련 개념 맵 (Knowledge Graph)
- 하드웨어 가속기 (Hardware Accelerator) | 범용 CPU의 쓸데없는 제어 로직을 다 뜯어내고 오직 MAC 연산기만 칩 공간의 90%에 몰빵하여 만든 딥러닝 전용 NPU/TPU를 뜻하는 최상위 개념
- FMA (Fused Multiply-Add) | "곱하고 더하기(MAC)"를 칩 안에서 물리적으로 한 덩어리로 용접(Fused)해 버려, 중간에 소수점이 잘려나가는 오차를 막고 1클럭에 쾅! 하고 찍어내는 현대 MAC의 완성형
- 시스톨릭 어레이 (Systolic Array) | 이 MAC 유닛 수만 개를 2D 바둑판으로 엮어서, 데이터를 메모리에서 퍼오지 않고 옆 MAC 유닛으로 릴레이처럼 던져주게 만든 NPU/TPU의 핵심 융합 구조
- 텐서 코어 (Tensor Core) | 엔비디아 GPU 안에 박혀있는 작은 괴물 부품으로, 1개의 MAC이 아니라 아예 4x4 크기의 MAC 덩어리를 하드웨어로 박아 넣어 1클럭에 행렬 곱을 파쇄해 버리는 기술
- 양자화 (Quantization) | MAC 유닛을 더 작고 전기를 덜 먹게 만들기 위해, 소프트웨어 엔지니어가 무거운 32비트 소수(FP32) 데이터를 8비트 정수(INT8)로 대충 깎아서 밀어 넣는 필수 최적화 기술
👶 어린이를 위한 3줄 비유 설명
- 개념: MAC 연산은 인공지능이 가장 많이 하는 "앞 숫자를 곱하고 그 결과를 뒤 숫자에 더해라!"라는 두 가지 행동을, 절대로 중간에 안 끊기고 1초 만에 딱! 끝내게 만들어진 기계 부품이에요.
- 원리: 예전에는 곱하기 기계 따로, 더하기 기계 따로 있어서 물건을 옮기느라 너무 오래 걸리고 숫자도 조금씩 틀려졌어요. 그래서 공학자 이 두 기계를 용접봉으로 딱 붙여서(FMA) 한 번에 쑥 튀어나오게 만들었어요.
- 효과: 인공지능이나 3D 게임은 이 곱하고 더하는 노가다를 수경 번씩 해야 하는데, 이 찰떡같이 붙어있는 부품 덕분에 전기도 아끼고 오차도 없이 완벽한 정답을 초고속으로 맞출 수 있답니다.