AI Architecture 4. 학습(Training) vs 추론(Inference)

지난 글들에서 우리는 MAC 연산기메모리 계층, 그리고 병렬 처리(SIMD)가 딥러닝 하드웨어의 기초임을 배웠습니다. 이제 우리는 AI 반도체 시장의 가장 큰 갈림길에 섭니다. 바로 학습(Training)과 추론(Inference)입니다.

NVIDIA의 H100 같은 GPU는 이 두 가지를 모두 다 해냅니다. 하지만 최근 등장하는 스마트폰의 NPU나 자율주행 칩들은 오직 ‘추론(Inference)’에만 집중합니다. 소프트웨어 엔지니어에게 추론은 그저 model.eval() 모드로 전환하고 그래디언트 계산을 끄는(torch.no_grad()) 한 줄의 코드일 뿐입니다.

하지만 하드웨어 엔지니어인 우리에게 “학습 기능을 뺀다”는 것은 하드웨어 관점에서 엄청난 절약입니다. 이번 글에서는 역전파(Backpropagation)라는 무거운 짐을 내려놓았을 때, 하드웨어 내부에서 어떤 극적인 변화와 최적화가 일어나는지 분석해 보겠습니다.

1. 역전파(Backpropagation): 하드웨어의 가장 큰 짐

학습(Training)의 핵심은 역전파입니다. 모델이 내놓은 예측값과 정답 사이의 오차(Loss)를 계산하고, 미분값(Gradient)을 구해 가중치(W)를 업데이트하는 과정입니다. 문제는 이 미분을 계산하기 위해 Forward Pass 때 계산했던 모든 중간 결과값(Feature Maps/Activations)을 메모리에 들고 있어야 한다는 점입니다.

  • 학습 시: Layer 1의 출력, Layer 2의 출력… Layer 100의 출력을 모두 메모리(DRAM/HBM)에 저장해야 합니다. 나중에 뒤로 돌아올 때(Backward) 미분 계산에 써야 하니까요.
  • 추론 시: Layer 1의 출력을 이용해 Layer 2를 계산하고 나면, Layer 1의 데이터는 즉시 버려도 됩니다.

이 차이는 엄청납니다. 추론 전용 NPU는 데이터를 잠깐 담아두는 작은 온칩 버퍼(SRAM)만으로도 충분히 돌아갈 수 있습니다. 반면 학습용 칩은 수십 기가바이트의 고가 HBM(High Bandwidth Memory)이 반드시 필요합니다. 추론 전용 설계가 저렴한 이유의 8할은 여기서 나옵니다.

Backpropagation

2. 정밀도(Precision)의 자유: FP32에서 INT8로

학습 과정에서 기울기(Gradient) 값은 매우 작을 수 있습니다. 0.00001과 같은 미세한 값을 계속 곱하다 보면 숫자가 0으로 사라지는 기울기 소실(Gradient Vanishing) 문제가 발생합니다. 이를 막기 위해 학습용 하드웨어는 넓은 Dynamic Range를 가진 FP32(32-bit Floating Point)나 BF16(Brain Floating Point) 같은 고정밀도 연산기를 지원해야 합니다.

하지만 학습이 끝난 모델(Frozen Weights)은 훨씬 둔감합니다. 가중치의 정밀도를 약간 낮춰도 결과값(강아지인지 고양이인지)은 잘 바뀌지 않습니다. 추론 전용 NPU는 이 점을 파고듭니다.

  • 복잡한 부동소수점 연산기(FPU)를 제거합니다.
  • 대신 단순하고 작은 정수 연산기(Integer ALU)를 채택합니다 (INT8 or INT4).
  • 이로 인해 같은 면적에 4배~8배 더 많은 연산기를 집어넣을 수 있습니다.

3. 데이터 흐름과 버퍼링

학습용 칩(GPU)은 처리량(Throughput)이 가장 중요합니다. 한 번에 수백 장의 이미지(Batch Size = 256, 512…)를 때려 넣어서 평균 처리 속도만 높이면 됩니다.

하지만 추론, 특히 실시간(Real-time) 서비스를 위한 추론은 지연 시간(Latency)이 생명입니다.

  • 사용자가 챗봇에 질문했는데, 다른 사용자 255명의 질문이 찰 때까지 기다렸다가 답변할 수는 없으니까요.
  • 자율주행차가 장애물을 봤는데, 이미지 32장이 모일 때까지 브레이크를 안 밟을 수는 없으니까요.

그래서 추론용 NPU는 Batch Size = 1인 상황에서도 성능이 나오도록 설계해야 합니다. 이는 가중치(Weight)를 불러오는 속도가 매우 중요하다는 뜻입니다. 학습용 칩은 가중치 한 번 불러와서 256번 재사용(Reuse)하지만, 추론용 칩(Batch 1)은 가중치 한 번 불러와서 딱 한 번 쓰고 버립니다.

이 때문에 추론 전용 NPU는 연산기보다 메모리 대역폭 효율성이나, 가중치를 칩 내부에 고정하는 Weight Stationary 구조에 더 집착하게 됩니다.

4. 사라지는 하드웨어 블록들 (Logic Removal)

추론만 하겠다고 결정하는 순간, 아키텍트는 칩 설계도에서 많은 블록을 지우개로 지울 수 있습니다.

  1. Transpose Unit 삭제: 역전파를 하려면 가중치 행렬의 전치 행렬(WT)과 곱셈을 해야 합니다. 이를 위해 행렬을 뒤집어주는 하드웨어가 필요하지만, 추론 칩에는 필요 없습니다.
  2. Gradient Accumulator 삭제: 배치(Batch)별로 계산된 기울기를 누적해서 더하는 버퍼와 로직이 필요 없습니다.
  3. 복잡한 Loss Function 로직 삭제: 정답과 비교하는 Cross-Entropy 등의 연산 하드웨어가 필요 없습니다.

이런 불필요한 로직을 제거한 자리에 캐시 메모리(Cache)를 더 넣거나, 전력 소모를 줄여(Low Power) 배터리 타임을 늘리는 것이 Edge NPU의 경쟁력입니다.

5. 결론: 목적에 맞는 도구를 써야 한다

과거에는 모든 AI 연산을 GPU 하나로 처리했지만, 이제 시장은 분화하고 있습니다. 데이터센터에서 거대 모델을 학습시키는 학습용 칩(NVIDIA H100, Google TPU v5)과, 스마트폰이나 CCTV 말단에서 빠르게 결과만 내놓는 추론용 경량 칩(Apple Neural Engine, Qualcomm Hexagon)으로 말이죠.

System Architect로서 우리는 이 차이를 명확히 이해해야 합니다. “역전파를 버림으로써 얻는 메모리의 자유와 회로의 단순함.” 이것이 AI가 우리 손바닥 위의 스마트폰으로 들어올 수 있었던 비결입니다.

다음 글에서는 이제 칩 내부의 미시적인 세계로 들어가, 0과 1의 데이터를 표현하는 방식인 데이터의 무게(Floating Point vs Fixed Point)에 대해 알아보겠습니다.

참고: In-Datacenter Performance Analysis of a Tensor Processing Unit

Similar Posts