Ssul's Blog

AI서비스를 위한 GPU이해하기 본문

AI & ML/학습하기

AI서비스를 위한 GPU이해하기

Ssul 2025. 6. 17. 23:24

#1. CPU와 GPU 비교

출처: nvidia

- core: core내부에 여러개 들어 있는 ALU(계산 전용도구)

- control(제어유닛): 계산을 언제할지 스케쥴, 배분 관리

- L1 cache: core연산에 사용하기 위한 가까운 메모리

- L2 cache: 약간 크지만 덜 가까운 메모리

- L3 cache: 약간 더 크지만 조금 더 먼 메모리

- DRAM: 외장 메모리, GPU DRAM은 비싼거 사용(코어가 많아서 빨라야함)

 

  • CPU는 복잡하고 다양한 작업을 빠르게 수행 > 코어랑 제어유닛이 큼. 그리고 근처 cache가 커야함 > 트렌지스터 많아야 함
  • GPU는 단순하고 많은 작업을 빠르게 수행 > 코어가 가변고, 단순작업 잘함 > 코어가 작은대신 엄청 많음
  • CPU는 개별 코어의 성능을 높이는 방향으로 발전. GPU는 코어의 수를 증가시키는 방향으로 발전
  • CPU는 제어(control)과 캐시유닛에 공간분배를 많이함. GPU는 연산유닛(코어)에 공간분배 많이
  • 메모리는 GPU는 코어가 많아 빠른 DRAM(비싼거) 사용

실제 서버/데스크탑에서는 CPU-GPU간 데이터 전송이 필수 > 두 장치간의 전송속도도 중요하게 생각해야 함

 

#2. GPU상세 보기

- GPU는 코어는 많고, 제어유닛/캐시유닛은 작음

- 일반적인 연산흐름: CPU에서 데이터 전송 > GPU DRAM > GPU 코어 연산 > GPU DRAM > CPU

nvidia GPU성능표

HBM용량이 DRAM이라고 보면 되고,

대역폭이 DRAM - Core간 데이터 전송 속도.

 

fp16 = float16 > 표현가능 최대최소값: E5, 유효자릿수: M10

bf16 = brain float16 > 표현가능 최대최소값: E8, 유효자릿수: M7

 

#3. 데이터 형식 정리

형식 비트 구성 특징 쓰임새
FP32 (float32) 1 S / 8 E / 23 M = 32 bit 넓은 범위·높은 정밀도 전통적 딥러닝 학습, 과학 계산
BF16 (bfloat16) 1 S / 8 E / 7 M = 16 bit FP32와 같은 범위·절반 용량 TPU·Xeon·Ampere GPU 혼합정밀 학습
FP16 (half) 1 S / 5 E / 10 M = 16 bit 범위·정밀도 모두 FP32보다 작음 GPU Tensor Core 학습·추론
FP8 (E4M3 등) 1 S / 4 E / 3 M = 8 bit 초저정밀·소형 모델용 H100·B200 FP8 Transformer Engine
INT8 8 bit 정수 (−128 ~ 127) 지수·가수 없음, 스케일 계수로 실수 근사 Post-training 양자화 추론, 모바일 AI
INT4 4 bit 정수 (−8 ~ 7) 가장 작은 일반 사용 형식, 메모리 ¼ GPT-Q·AWQ 등 초경량 LLM 추론