CUDA 2

[CUDA] 2. Grid-stride loop

add>>(N, x, y);지난 정리에서 >>로 thread의 사용을 표현했다. 해당 함수를 특정 스레드에서 실행시키는 것이다. 하지만, GPU의 진정한 꽃은 parallel programming을 실현하는 것이다. 기존 add함수에 병렬 스레드를 구성하는 것을 연습해보자. Streaming Multiprocessors (SMs)라고 불리는 것은 GPU내에서 thread block을 직접 실행하는 주체가 된다. GPU 모델마다 다른 수의 SMs unit을 가지고 있고, SMs가 많을수록 더 좋은 성능의 병렬처리를 보인다고 한다. (아직은 단순한 이해) kernel이 실행되면, blcok이 생성되고, 생성된 block은 하나의 SMs에 할당된다. blcok안에 존재하는 여러 thread들은 SM에 의해서 ..

Study/CUDA 2025.04.14

[CUDA] 1. Add elements of two arrays

CUDA kernel? GPU가 실행할 수 있는 코드를 말한다. __global__ : CUDA C++ 컴파일러가 해당 함수를 실행할 수 있게 하는 가장 기본적인 specifier로, 함수는 CPU에서 호출된다.이 specifier가 붙은 함수를 CUDA kernel이라고 부르는 것. GPU에서 실행되는 코드는 device code, CPU에서 실행되는 코드는 host code gpu에서 연산을 하려면 접근가능한 메모리를 할당받아야한다.cudaMallocManaged(): GPU메모리를 할당하는 함수. host code & device code에서 접근가능한 pointer를 반환한다.cudaFree(): 주어진 포인터의 메모리 할당을 해제한다. >>: 지정된 GPU threads에서 함수를 실행하게 한다..

Study/CUDA 2025.04.12