[인공지능] CUDA란?

참조


CUDA 정의

  • CUDA(Computed Unified Device Architecture) 는 NVIDIA에서 개발한 GPU 개발 도구입니다.
  • CUDA는 c, c++ 기반으로 짜여진 완전 기초적 H/W 접근을 해야하는데, 많은 연구자들이 딥러닝에 사용할 수 있도록, 쉽게 설치할 수 있도록 오픈하였습니다.
  • 현재는 nvida-driver, CUDA, CUDNN만 설치하면 딥러닝을 쉽게 사용할 수 있습니다.

CUDA 사용 이유

  • CUDA를 사용하는 이유는 많은 양의 연산을 동시에 처리하는 것이 목표입니다.
  • 그러므로 딥러닝, 채굴과 같은 수학적 계산에 많이 쓰입니다.
  • 이러한 이류는 미분이 컴퓨터로 가능하기 때문입니다.

기존의 CPU 방식

  • 기존의 컴퓨터 연산은 CPU를 사용하고, RAM에 의존하여 연산을 진행하였습ㄴ디ㅏ.
  • CPU를 이용한 연산은 대부분 Single-Core를 사용하고 MultiProcessing, Multi-Threading등을 이용하여 CPU가 보유한 코어 갯수 만큼의 Multi-Core를 이용하여 연산을 할 수 있습니다.
  • 일반적으로 딥러닝에서 사용하는, 특히 pytorch나 tensorFlow에서 data loader 파트에서, core 갯수를 주고 데이터 loading 하는 부분이 여기에 속합니다.

GPU 방식

  • GPU는 Core 갯수가 엄청 많습니다.
  • CPU는 8개에서 16개인데 비해 GPU는 몇 천개 이상입니다.
  • 즉 이를 이용한 Many-Core dependent 연산을 진행하고, Video RAM에 있는 데이터를 연산합니다.

CUDA 장점

  • CUDA의 장점은 다음과 같습니다.
    • 높은 연산 처리능력
    • 병렬 프로그램의 확장성
    • 편리한 설치
  • CUDA의 연산 능력
    • 1TFLOP/s 기준으로 10년전 슈퍼컴퓨터와 동등한 수준, 인텔 i7 CPU를 10개 합쳐야 나오는 성능입니다.
  • 병렬 프로그램의 확장성
    • 잘 설계된 CUDA 프로그램은 GPU의 성능에 비례하여 연산 능력을 발휘합니다.
    • 대규모 데이터를 멀티스레드로 실행하여 처리하기 때문에 그래픽카드가 발전하여 코어 수가 증가하면 자동으로 연산에 필요한 시간이 줄어들게 됩니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY