GPU, CUDA

[CUDA] 기본 정리 #1

KimTory 2022. 8. 31. 00:25

✍ CUDA 기본 내용 정리 #1

References

 

CUDA Toolkit Documentation

 

docs.nvidia.com

  • Programming Massively Parallel Processors

 

👉CPU와 GPU의 기능

 

-. CPU와 GPU는 서로 다른 목적으로 설계 되었으며, CPU는 Multi-Core(각 코어 당, 2개의 Thread)를

목표로  순차 프로그램의 속도 즉, 순차적인 명령을 빨리 실행 되도록 설계 되었으며, GPU는 수 천 개의 Thread (cpu thread보다 더 느린)를 병렬로 실행하는 데 특화되도록 설계가 되었다.

https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#from-graphics-processing-to-general-purpose-parallel-computing__gpu-devotes-more-transistors-to-data-processing

 

🙋‍♂️ cuda 병렬 프로그래밍 모델은 C와 같은 표준 프로그래밍 언어에 익숙한 프로그래머들이 쉽게 배울 수 있도록 설계 되었으며, 세밀한 데이터 병렬화와 스레드 병렬화를 제공한다.

 

🙋‍♂️ 스레드 블록에 의해 병렬화하여 독립적으로 해결할 수 있는 하위 문제들로 나누고, 각 하위 문제들은 블록 내의 스레드들에 의해 더 세부 문제로 분할하여 해결할 수 있도록 합니다.

 

👉 GPU Memory

 

🙋‍♂️ cuda system에서 device(gpu)는 device만의 DRAM을 가지고 있다. RTX 3080의 경우에는 10GB 메모리의 DRAM이 있으며, 이 메모리는 global memory(device memory)라고 부른다. device에서 커널을 수행하기 위해서 프로그래머는 device에 global memory를 할당하고, host momory로부터 계산 할 데이터를 전송한다.

 

 

▶ 참고 블로그

https://junstar92.tistory.com/244?category=986472 

 

CUDA 프로그래밍 기초 (예제 : vector addition)

References CUDA Toolkit Documentation Programming Massively Parallel Processors Contents 간략한 GPU와 CUDA 요약 데이터 병렬화(Data Parallelism) CUDA 프로그램 구조 벡터 덧셈(vector addition) 예제 Ker..

junstar92.tistory.com