CUDA에서 데이터 처리
1. 그래픽 카드에 메모리 공간을 할당
2. PC의 입력 데이터를 그래픽 카드의 메모리로 복사
3. 강력한 GPU 성능을 이용하여 병렬처리
4. 처리된 결과를 그래픽 카드의 메모리에서 PC의 메모리로 복사
그래픽 카드 메모리 사용하기
1. 그래픽 카드 메모리의 할당
cudaMalloc(void** devPtr, size_t count);
해당 함수는 그래픽 카드의 DRAM에 메모리공간을 할당한다. 첫번째 파라미터는 할당할 메모리를 가리키는 포인터이고 두번 째 파라미터는 할당할 메모리의 크기를 입력한다.
2. 그래픽 카드 메모리의 해제
cudaFree(void* devPtr);
cudaFree 함수를 통해 그래픽 카드의 DRAM에 할당된 메모리를 해제할 수 있다.
3. PC에서 그래픽 카드로 데이터 복사
cudaMemcpy(void* dst, const void* src, size_t count, cudaMemcpyKind);
CUDA에서 메모리를 복사할때는 해당 함수를 사용하여 PC 메모리에서 GPU 메모리로 데이터를 전송하거나 그 반대로도 동작한다.
cudaMemcpyHostToHost | PC 메모리에서 PC 메모리로 복사 |
cudaMemcpyHostToDevice | PC 메모리에서 GPU 메모리로 복사 |
cudaMemcpyDevicetToHost | GPU 메모리에서 PC 메모리로 복사 |
cudaMemcpyDeviceToDevice | GPU 메모리에서 GPU 메모리로 복사 |
데이터의 복사에는 4가지 cudaMemcpyKind 종류가 있으며 해당 enum에 따라 동작이 바뀐다.
'GPU Programming > CUDA basic' 카테고리의 다른 글
3. CUDA 예제 - 초급 (0) | 2022.07.05 |
---|---|
2. CUDA에서 데이터 처리 (3) (0) | 2022.07.05 |
2. CUDA에서 데이터 처리 (2) (0) | 2022.06.29 |
1. CUDA? (0) | 2022.06.29 |
0. Introduction (0) | 2022.06.29 |