콘텐츠로 이동

DL Framework와 GPGPU 가속 기술

1. DL Framework

DL Framework 는
Tensor 연산과 자동 미분을 핵심 기반으로 하며,
이를 토대로 neural network model 구성과 학습 기능을 제공하는 software임.

핵심 기능

  • Tensor 연산: 다차원 배열의 연산을 지원함.
  • 자동 미분: 계산 결과에 대한 gradient를 구함.

DL 지원 기능

  • GPU 가속: 지원되는 backend를 통해 Tensor 연산을 GPU에서 실행함.
  • Model 구성·관리: layer를 연결하여 neural network model을 정의하고 관리함.
  • 학습 관리: loss와 optimizer를 이용해 parameter를 업데이트함.
  • 예: PyTorch, TensorFlow, JAX.

2. GPGPU 가속 플랫폼·API

GPGPU 는 GPU를 그래픽 처리뿐 아니라 일반 계산에도 사용하는 방식임.
AI 가속 플랫폼·API는 DL Framework의 연산을 GPU에서 실행하도록 지원함.

  • CUDA: NVIDIA GPU의 general-purpose 연산을 위한 computing platform 및 programming model임.
  • ROCm: AMD GPU용 runtime, compiler, library 등을 포함하는 software stack임.
  • MPS: Apple의 Metal 기반 GPU 연산 framework로, Apple GPU에 최적화된 compute kernel을 제공함.
  • DirectML: DirectX 12 호환 GPU에서 Machine Learning 연산을 실행하는 API임.

참고:

3. DL Framework와 가속 기술의 관계

  • DL Framework 는 model을 구성하고 학습을 관리함.
  • 가속 플랫폼·API 는 DL Framework의 연산을 GPU에서 실행하도록 지원함.
  • 예를 들어 PyTorch로 model을 학습할 때, PyTorch는 학습 과정을 관리하고 CUDA 또는 MPS는 GPU 연산을 지원함.

DL Framework의 역사

2026년 이 글 작성 당시 주로 개발 및 사용되는 DL Framework는 다음과 같음:

  • PyTorch
  • TensorFlow
  • JAX

등장 연도순으로, 개발을 주도한 기관과 특징을 간단히 정리하면 다음과 같음:

  • 2007 — Theano:
    • Université de Montréal의 LISA 연구실(현재 Mila)이 주도
    • Python에서 수학 연산을 정의하고 자동 미분과 GPU 실행을 지원한 초기 framework임.
  • 2011 — Torch7:
    • Torch라고도 불리며 Idiap Research Institute와 NYU 연구자들이 개발을 주도
    • Lua 기반의 tensor 연산과 GPU 계산을 제공함.
  • 2014 — Caffe:
    • UC Berkeley의 Berkeley Vision and Learning Center(BVLC)가 주도
    • CNN의 빠른 학습과 배포에 초점을 둔 C++ framework임.
  • 2015 — Keras:
    • Google의 François Chollet이 공개
    • High-level API로 neural network를 간결하게 구성하도록 설계됨.
    • Keras 1은 Theano, TF 등을 backend로 지원, Keras 2는 TF만, Keras 3는 PyTorch, TF, JAX를 backend로 지원.
  • 2015 — Chainer:
    • 일본의 Preferred Networks와 Preferred Infrastructure가 개발
    • Python 코드 실행 중 계산 그래프를 구성하는 Define-by-Run 방식을 채택함.
  • 2015 — MXNet:
    • DMLC(Distributed Machine Learning Community)가 개발을 주도
    • 효율적인 분산 학습과 symbolic 연산·tensor 연산의 결합을 지원함.
  • 2015 — TensorFlow:
    • Google이 개발(Theano에 영향을 받은 것으로 알려짐).
    • 연구와 production 환경에서 다양한 장치 및 대규모 분산 학습을 지원하도록 설계됨.
    • 배포 등에서 강점을 지님.
  • 2016 — PyTorch:
    • Facebook AI Research(FAIR)가 개발
    • Python의 명령형 실행 방식과 autograd(자동 미분)을 결합
    • model 작성과 디버깅이 편하기 때문에 현재 LLM 개발에선 거의 표준으로 사용됨.
    • Torch의 영향을 받았고, Caffe와 Chainer 등의 특징도 가지고 있음.
  • 2018 — JAX:
    • Google Brain 연구진이 공개
    • JAX: 사용자가 작성한 Python 수치 계산 함수에
    • grad, vmap, jit을 적용해
    • autograd, vectorization, JIT compilation 실행을 하도록 변환하는 library임.