Posts CPU & GPU
Post
Cancel

CPU & GPU

CPU & GPU


CPU

컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하고 처리하는 가장 핵심적인 컴퓨터의 제어 장치

  • 수많은 작업을 수행할 수 있는 범용 처리 장치

GPU

고해상도의 이미지와 비디오를 고속으로 처리할 수 있도록 설계된 프로그래밍 가능한 프로세서

  • 수천개의 프로세싱 코어가 동시에 다수의 데이터에 병렬 동작을 수행
  • GPGPU(General-Purpose computing on GPU)
    • GPU의 실시간 대량 연산 특성을 활용해 특정 영역에서 CPU보다 좋은 계산 능력을 보여줄 수 있음
  • 딥러닝에서 GPGPU 사용의 장점
    • 다수의 연산을 동시에 실행 -> 대규모 행렬연산에 적합
    • 다수의 GPU 동시 사용으로 병렬로 알고리즘 수행
    • CPU보다 저렴한 cost -CPU 와 GPU의 동시 수행
    • GPU는 스트리밍 방식의 순차 접근 패턴에 최적화
    • CPU는 일반 접근 패턴과 쓰레드의 동시 처리를 위해 설계됨
    • CPU 와 GPU가 결합되어 GPGPU 파이프라인을 형성 -> 데이터 분석에 최적

CUDA(Compute Unified Device Architecture)

Nvidia 에서 개발한 병렬 컴퓨팅 플랫폼 및 프로그래밍 API

  • GPU 가상 명령셋과 병렬 계산 요소에 대한 직접적인 접근을 제공하는 소프트웨어 계층
  • CUDA Compute Capability(CC)

    Cuda의 일반 명세와 가능한 기능을 수치화 한 것

    • 제품화된 GPU는 1.0~1.5의 값을 가징
  • GPU의 성능 확인
    • Cuda Core 갯수: 병렬 연산 속도 결정
    • GPU 메모리: 한번에 읽어 들일 수 있는 모델의 크기(6GB~권장)

CUDA Python API

  • PyCUDA
    • Nvidia CUDA 병렬 계산 API의 Python Wrapper
  • Cupy
    • Nvidia VUDA의 가속을 지원하는 Numpy 와 유사한 행렬 연산 라이브러리
  • Scikit-CUDA
    • CUDA 런타임, CUDA 라이브러리의 함수를 실행해주는 Python 인터페이스
  • 딥러닝 플랫폼
    • Tensorflow, Pytorch, Chainer. MxNet

다운로드

  • GPU가 없어서 CUDA 사용 불가.
This post is licensed under CC BY 4.0 by the author.