1. Host와 Device
CUDA에서 Host는 CPU, Device는 GPU를 의미합니다.
CUDA에서 "C++, Python등 일반적으로 사용하는 프로그래밍 코드로 작성된 프로그램은 Host에서 실행된다" 라고 표현합니다.

2.1 kernel
CUDA에서 __global__이라는 키워드는 아래와 같은 함수를 의미합니다.
· Device(GPU)에서 실행됩니다.
· Host(CPU)에서 호출가능합니다.
위와 같이 __global__키워드가 붙는 함수를 CUDA에서는 커널(kernel)이라 부릅니다.
2.2 kernel 실행

kernel은 일반 C 함수와 달리 N개의 쓰레드에서 병렬로 실행될 수 있습니다.
이러한 기능은 <<<...>>>라는 문법을 통해 정의 됩니다.
위의 예제에서 <<<1,1>>> 은 1개의 CUDA thread를 사용해 printHelloWorldCUDA를 실행하라는 의미입니다.
3. CUDA 프로젝트 만들기
CUDA코드를 사용하기 위해서는 프로젝트에 몇가지 설정이 필요합니다.
이번에는 일반 콘솔 앱 프로젝트를 CUDA프로젝트로 만드는 법을 설명하겠습니다.
· x64 프로젝트로 변경
콘솔 앱 프로젝트를 생성 했으면 구성 관리자에서 x64 플랫폼으로 변경 합니다.
지금 사용중인 CUDA/Visual studio 버전에서는 x86_32 Native 개발이 불가능합니다.
· 프로젝트 우클릭 -> 빌드종속성->사용자 빌드에 CUDA 추가
체크하고 나면 프로젝트에 CUDA include/library 경로가 자동으로 추가됩니다.
· 프로젝트 속성->링커->추가 종속성에 cuda library 추가(cudart_static.lib)
cudart_static.lib는 cuda static 라이브러리를 의미합니다.
· 소스코드 우클릭->속성->일반->항목 형식->CUDA C/C++로 변경
마지막으로 cuda 코드가 포함된 소스 코드를 CUDA 컴파일러로 빌드하게 설정해줘야 합니다.
CUDA는 nvcc라는 전용 컴파일러가 있으며, 이를 사용하지 않으면 <<<...>>>같은 CUDA 문법을 컴파일하는데 문제가 생깁니다.
CUDA Hello World!
Git repository: https://github.com/hschoi4448/CUDABasic/tree/master/HelloWorldCUDACU...
blog.naver.com
'IT > Cuda' 카테고리의 다른 글
[CUDA] 프로그래밍 시작 (0) | 2020.08.27 |
---|---|
[CUDA] 프로그래밍 모델( kernel, thread ) (0) | 2020.08.27 |
CUDA 설치 (0) | 2020.08.27 |
CUDA GPU 환경 제공하는지 확인 (0) | 2020.08.27 |
CUDA란 (0) | 2020.08.27 |