모델/시스템 최적화: 가속기 종류 – GPU
ㅁ 가속기 종류
ㅇ 정의:
– GPU(Graphics Processing Unit)는 대규모 병렬 연산에 특화된 프로세서로, 원래는 그래픽 렌더링을 위해 개발되었으나 현재는 인공지능, 과학 계산 등 범용 병렬 처리에 널리 사용됨.
ㅇ 특징:
– 수천 개의 코어를 통해 동시에 많은 연산을 처리 가능
– 고대역폭 메모리(HBM, GDDR)를 사용하여 데이터 전송 속도가 빠름
– 행렬/벡터 연산에 최적화되어 딥러닝 학습 및 추론 속도 향상
– CPU 대비 단일 스레드 성능은 낮지만, 병렬 처리 효율이 높음
ㅇ 적합한 경우:
– 대규모 행렬 연산이 필요한 딥러닝 모델 학습
– 이미지/영상 처리, 3D 렌더링
– 과학/공학 시뮬레이션, 금융 리스크 분석 등 병렬 연산이 많은 작업
ㅇ 시험 함정:
– GPU가 모든 연산에서 CPU보다 빠르다고 단정하는 문장은 오답 (단일 스레드, 메모리 의존적 연산은 CPU가 유리)
– GPU 메모리가 CPU 메모리보다 항상 크다고 하는 문장은 오답
– GPU는 병렬 처리에 최적화되어 있으나, 모든 알고리즘에 적합하지 않음
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “GPU는 대규모 병렬 연산에 최적화되어 딥러닝 학습 속도를 높인다.”
– X: “GPU는 모든 종류의 연산에서 CPU보다 빠르다.”
– O: “GPU는 수천 개의 코어를 통해 동시에 연산을 수행한다.”
– X: “GPU는 단일 스레드 성능이 CPU보다 항상 우수하다.”
ㅁ 추가 학습 내용
GPU 프로그래밍 프레임워크에는 CUDA와 OpenCL이 있으며, CUDA는 NVIDIA 전용, OpenCL은 다양한 제조사의 GPU 및 이종 컴퓨팅 환경에서 사용 가능하다.
GPU 메모리 구조는 Global Memory(모든 스레드가 접근 가능, 대기 시간이 길고 대역폭이 넓음), Shared Memory(같은 블록 내 스레드 간 공유, 접근 속도가 빠름), Local Memory(각 스레드 전용, 실제로는 Global Memory에 위치하므로 접근 속도가 느림)로 구분된다.
병렬 처리 모델에서 SIMD(Single Instruction Multiple Data)는 하나의 명령어로 여러 데이터 요소를 동시에 처리하는 방식이며, SIMT(Single Instruction Multiple Threads)는 각 스레드가 독립적으로 명령어를 실행하되 동일한 명령 스트림을 공유하는 GPU 특유의 모델이다.
GPU, TPU, FPGA 비교 시 GPU는 범용 병렬 연산에 강하며 그래픽 처리와 과학 계산, AI 학습에 널리 쓰인다. TPU는 행렬 연산에 특화된 딥러닝 전용 칩으로, 대규모 신경망 학습과 추론에 높은 효율을 보인다. FPGA는 하드웨어 구조를 재구성할 수 있어 특정 연산에 최적화 가능하며, 지연 시간과 전력 효율을 중시하는 분야에 적합하다.
GPU 성능 지표로는 초당 부동소수점 연산 횟수(FLOPS), 메모리 대역폭(데이터 전송 속도), 전력 효율(성능 대비 소비 전력)이 중요하다.