Why we use GPU in deep learning?

Junsoo-Kim·2025년 3월 23일

딥러닝 스터디를 시작하게 되면서 핵심적인 개념들을 정리해보려고 한다!

이번 시간에는 딥러닝에서 GPU를 사용하는 이유에 대해서 알아보도록 한다.

이미지 출처 : https://sparcs.org/blog/introducing-gpu/


GPU가 딥러닝에서 사용되는 이유를 알아보기 전에, 기존의 CPU와 GPU의 구조는 어떠하고 또 어떤 차이점이 있는지 알아보는 것이 중요하다.

기존의 CPU의 구조는 Control Unit(제어 장치), ALU(Arthimetic Logic Unit, 산술논리연산장치), Cache Memory으로 이루어져 있다.

CPU의 구조를 자세히 다루기엔 글이 너무 길어질 것 같아서 나중에 따로 다루도록 하고, 간단하게만 CPU에 대해서 설명해보도록 하겠다.

  • Control Unit : CPU의 제어장치. 명령어를 해석하고 실행 순서를 결정함. CPU 내부의 ALU, 레지스터, 메모리를 제어하여 데이터가 올바르게 흐르도록 관리함.
  • ALU : CPU에서 계산담당 장치. GPU를 쓰는 이유를 나중에 보겠지만 GPU에서는 ALU의 개수가 수천~수만개이기 때문이다.
  • Cache Memory : 자주 사용하는 데이터를 저장하여 메모리(RAM)에서 데이터를 가져오는 시간을 줄임

CPU는 고성능 프로세서를 가진 수십개의 코어로 구성되고, Serial Processing(직렬 연산)을 수행한다.


GPU는 수천 개의 작은 코어(ALU)를 포함한 병렬 연산에 특화된 프로세서이다.
간단하게 구조를 보자면,

  • SM (Streaming Multiprocessor) : GPU의 핵심 연산 유닛, SM 내에 수십~수백개의 ALU, Tensor 코어가 있음.
  • CUDA Cores(ALU 역할) : 기본 계산을 수행.
  • Tensor Cores : 딥러닝에서 Tensor 연산을 가속.

쉽게 말해 GPU에서는 수천~수만개의 코어로 텐서 연산을 병렬적으로 수행함으로써, 그래픽 연산이나 딥러닝에서의 계산을 한꺼번에 할 수 있다는 것이 특징이다.

유튜브 영상에서 봤는데, CPU는 박사 1명이라면 GPU는 초등학생 몇백명이라고 비유한 것이 생각난다.
그 비유가 적합한 것이, GPU에서는 오로지 단순 텐서 계산을 몇천~몇만개의 코어가 수행하기 때문에 계산속도가 CPU보다 월등히 빠른 것이다.

또한 GPU는 CPU보다 높은 메모리 대역폭(bandwidth)를 가지고 있어 더 빠르게 메모리를 빠르게 처리하고 전송할 수 있다는 특징이 있다.

실제로 내가 예전에 ML 현장실습을 하고 있을 때 느낀건데, 그때 GPU를 쓰긴 했는데 100% 쓴게 아니라 CPU도 엄청 많이 써서 했었는데 CPU <-> GPU 데이터 이동할 때 bottleneck 현상이 많이 발생했던 걸로 기억한다. 그래서 아예 gpu에 처음부터 data를 넣어버리도록 하는 Rapids.ai 라는 곳에서 cudf, cuml 같은 라이브러리를 지원했었는데 CentOS 버전문제로 설치하지 못했던 기억이 난다.

https://rapids.ai/

아무튼 이런 이유 때문에 GPU를 사용하고, 현재 딥러닝에서 GPU는 빠질 수 없는 요소가 되었다.
나중에 시간이 되면 CPU와 GPU의 세부적인 구조와 동작 방식에 대해서 포스팅 해야겠다.

profile
CS Undergraduate 2nd, University of Seoul

0개의 댓글