본문 바로가기

ML, DL/딥러닝 기초

GPGPU,CUDA, cuDNN

  • GPU

- 연산 (ALU) 고속 병렬 처리

- CPU 처럼 다른 구성요소 제어 기능 필요 없음

 

  • GPGPU

- 단순 그래픽 처리만 하는 GPU 가 아닌, 병렬 연산 기능까지 수행하는 General purpose GPU

- 최근에는 GPGPU 도 GPU 라 칭함

 

  • CUDA (Compute unified device architecture)

- GPU 병렬계산 C/C++ 프로그래밍 지원 소프트웨어

- CUDA 진행 방식

1. 데이터를 main memory 에서 GPU memory 로 이동

2. GPU 는 CPU 가 명령한 연산처리 병렬 수행

3. 연산 종료 시 GPU memory 에 결과 저장한 다음, main memory 에 결과물 업로드하고,

   CPU 가 main memory 접근하여 작업 마무리

- CUDA 는 CPU, GPU 코드를 조합해서 코딩함. NVCC (Nvidia CUDA Compiler) 컴파일러를 통해 CPU 수행 코드

  (.c , .Cpp) 와 GPU 수행 코드 (.cu) 를 분리하여 컴파일

 그 다음 Linker 로 하나의 실행 파일 (binary file) 이 되어 CPU 에서는 serial code, GPU 에서는 parallel code 로 순차 실행

  • cuDNN (CUDA Deen neural network)

*하드웨어 가속 : 컴퓨터 일부 기능을 CPU 에서 구동하는 소프트웨어 방식보다 더 빠르게 수행 할 수 있는 하드웨어 사용

                           ex : GPU 블리팅 가속

- 딥러닝 관련 연산을 빠르게 해줄 수 있도록 도와주는 라이브러리

- GPU-accelerated library of primitives for dnn

- cuDNN provides highly tuned implementations for standard routines such as forward/backward conv/pooling/normalization/active layer

- cuDNN accelerates DL frameworks including Caffe2, Keras, MATLAB, MxNet, Pytorch, Tensorflow

 

 

출처 :

1. https://89douner.tistory.com/158

2. kaen2891.tistory.com/20

3. https://blog.naver.com/hs929kr/222368689735

 

NVIDIA DRIVER, CUDA, cuDNN 에 대한 이해와 설치 in LINUX

많은 연산을 cpu에서만 담당하게 되면 cpu가 해야할 컴퓨터의 프로세스 관리 업무를 효율적으로 수행하지 ...

blog.naver.com

 

'ML, DL > 딥러닝 기초' 카테고리의 다른 글

OOD (out of distribution detection)  (1) 2022.10.08
검색 키워드 정리  (0) 2022.10.08
Batch norm, layer norm, instance norm, group norm  (0) 2022.08.09
Feedforward Network  (0) 2022.08.03