Computed Unified Device Architecture
CUDA : 그래픽 처리 장치에서 수행하는 알고리즘을 C언어와 같은 언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술이다.
CUDA는 엔비디아가 개발하였다.
더 자세한 서술 이전에 CPU와 GPU에 대해 간략히 알아보자.
CPU는 다양한 시스템 자원을 제어해야 하고 복잡한 명령들을 처리해야하기 때문에 연산을 위한 장치 이외에도 다른 구성요소들이 존재한다.
GPU는 복잡한 구조를 버리고 연산에 특화된 장치로서 그래픽처리를 위해 고안되었으며 단순한 연산들을 병렬로 고속처리를 할 수 있도록 한다.
GPGPU : 그래픽처리만 하는 GPU와 달리 병렬로 연산기능까지 수행하게 해주는 GPU
위와 같은 개념이 나오면서 C언어 또는 C++언어로 병렬계산에 필요한 기능들을 제공해주는 소프트웨어가 만들어졌다.
대표적으로 앞서 서술한 CUDA이다.
CUDA의 진행방식은 다음과 같다.
1. Copy processing data : 병렬처리 데이터들이 main memory에서 GPU memory로 이동한다.
2. Instruct the processing : CPU는 GPU에게 GPU memory에 있는 데이터를 연산하라고 명령한다.
3. Execute parallel in each core : GPU는 CPU가 명령한 연산처리를 병렬로 수행한다.
4. Copy the result : GPU가 작업을 다 마치면 다시 GPU memory에 결과물을 저장하고, 다시 main memory로 해당 결과물을 업로드한다. 그리고 CPU가 main memory에 접근해 해당 결과물을 이용하여 작업을 마무리한다.
'공부하면서 얻은 지식들' 카테고리의 다른 글
개발자 소통 언어 (0) | 2023.01.23 |
---|---|
정규표현식 (0) | 2023.01.02 |
로깅(Logging) (0) | 2022.11.27 |
어댑터 패턴(Adapter Pattern) (0) | 2022.11.20 |
import os [파이썬 자동화] (0) | 2022.11.08 |