본문 바로가기

IT/Cuda

[CUDA] Visual Studio 프로젝트 만들기

 

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/HelloWorldCUDA​CU...

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