본문 바로가기

대학원 수업관련

#1 CUDA설치 하기(3.2버전, VS2008)

출처 : http://blog.cyworld.com/myWorkLog/3448379


먼저 CUDA 설치 및 프로잭트 생성 방법에 대해서 포스팅하고자 합니다.

 

가장 최근에 릴리즈된 CUDA의 버전은 4.0입니다. 하지만 4.0의 경우 NVIDA에 정식 등록된 개발자에 한해 제공되고 있으므로 본 포스팅 에서는 3.2버전에 대한 설치 과정을 다루고자 합니다. 3.2는 모든 사용자에게 개발되어 있는 최신 버전의 CUDA입니다.

 

0. 준비물

 

: CUDA가 지원되는 그래픽카드, VS2008

 

 

 

1. 필요한 파일들 설치하기

 

: CUDA프로그래밍을 위해서는 아래의 세가지 파일을 다운받아 설치 하여야 합니다. 설치 방법에는 별 특별한 사항이 없으므로 생략 합니다.

 

1)최신 NVIDA그래픽 카드 드리이버.

http://www.nvidia.co.kr/Download/index.aspx?lang=kr

 

2)CUDA Toolkit.

http://developer.nvidia.com/object/cuda_3_2_downloads.html

 

3)CUDA Computing SDK Code Samples

http://developer.nvidia.com/object/cuda_3_2_downloads.html

추천사항: Default로 설정되는 설치 경로는 대단히 복잡합니다. 이 경로를 간단하게 해주면 이후의 과정에서 훨씬 편해 집니다. 본 포스팅에서는 C:\CUDA에 설치 되었다고 가정 합니다.

 

 

 

 

2. include, library, excutable파일 추가하기

 

1) 도구->옵션->프로젝트 및 솔루션->VC++디렉토리를 선택합니다

 

2) 포함 파일을 추가합니다.

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\include

 

3) 라이브러리 파일을 추가합니다.

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32

 

4) 실행파일을 추가합니다.

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\bin

 

 

 

 

3. 컴파일 정보를 제공하는 파일들을 복사하기.

 

32bit case) C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\extras\visual_studio_integration\rules폴더에 있는 모든  *.rule파일들을 C:\Program Files\Microsoft Visual Studio 9.0\VC\VCProjectDefaults에 복사 해줍니다. 

 

64bit case) C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\extras\visual_studio_integration\rules폴더에 있는 모든 *.rule파일들을 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults에 복사 해줍니다.

 

복사된 *.rule파일들은 어떻게 컴파일하고 링크해야 할지의 정보를 제공해 줍니다. 

 

 

 

 

4. 새 프로잭트 생성하기.

 

1)빈 프로잭트를 생성 합니다.

-프로잭트 형식: Win32

-템플릿: Win32 콘솔 응용 프로그램.

 

 

 

 -빈 프로잭트 설정

 

 

 

- *.cpp파일 추가하기

- 추가한 *.cpp파일의 확장자 명을 *.cu로 변경하기.

 

*cpp파일을 cu로 변경한 상태에서 사용자 정의 컴파일 규칙을 정의하지 않고 빌드를 해서는 안됩니다. 빌드할 경우 manifest에러가 발생하게 될 것입니다. 유의하세요.

 

 

 

5. 사용자 정의 컴파일 규칙 설정 및 *.cu파일 추가하기

 

1) 아래와 같이 '사용자 지정 빌드 규칙' 탭을 선택 합니다.

 

 

 

2) 'CUDA Runtime API Build Rule(v3.2)'에 체크 표시한 후 확인을 눌러 줍니다.

참고 사항: CUDA Runtime API Build RULE(v3.2)가 두개 존재하는 경우에는 경로의 마지막이 NvCudaRuntimeApi.v3.2.rules로 끝나는 것을 선택해 줍니다.

 

 

 

 

6. Linker설정 하기.

 

1) 프로잭트 속성->링커->입력->추가종속성 탭에 다음을 추가해 줍니다.

cuda.lib cudart.lib

 

2) 프로잭트 속성->링커->일반 탭에,

 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32를 추가해 줍니다.

 

 

 

 

 

7. 테스트를 위한 코드 입력하기.

 

첨부 파일의 코드를 복사해서 붙여 넣습니다. 

 

 

 

 

8. 빌드하고 결과 확인.

 

 

 

여기까지 성공 하셨다면 다양한 책들의 예제 소스들을 직접 실행 시켜보실 수 있을것입니다.

 

 

 

 

9. Visual Assist X연동하기

 

*.cu의 파일을들 보시면 모든 코드가 검은색인 것을 확인할 수 있습니다. 이는 *cu 및 *.cuh파일에 아직 하이라이팅 효과 및 Visual Assist X의 자동 완성 기능이 적용되지 않았기 때문입니다. 이번 파트에서는 이에대한 해결책을 설명할 것입니다.

 

먼저 하이라이팅 효과를 위해 아래의 과정을 진행 합니다.

 

1) C:\CUDA\C\doc\syntax_highlighting\visual_studio_8폴더의 usertype.dat파일을 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE폴더에 복사 합니다.

 

(64bit 운영체제인 경우에는, C:\CUDA\C\doc\syntax_highlighting\visual_studio_8폴더의 usertype.dat파일을 C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE폴더에 복사 합니다.)

 

*참고사항: 본 포스팅의 경우 CUDA SDK를 C\CUDA에 설치하였습니다. 

 

 

 

2) *cu확장자 및 *.cuh확장자를 VS2008에 등록합니다. 아래 그림의 화살표로 표신된 영역에 cu를 입력한 후 '추가'버튼 클릭, cuh를 입력한 후 '추가'버튼을 클릭 해 주시면 됩니다.

 

 

 

3) 실행창에 regedit를 입력합니다.

 

4) 내 컴퓨터->HJEY_CURRENT_USER->Software->Microsoft->VisualStudio->9.0->Languages->Language Services->C/C++탭을 클릭합니다. 그러면 우측창에 NCB Default C/C++ Extensions가 나타나는데 그놈을 더블클릭 해줍니다. 팝업된 창의 마지막에 .cu;.cuh;를 추가해 줍니다. 아래의 그림을 참고하세요.

 

 

 

5) C:\Program Files\Visual Assist X\AutoText\Latest의 폴더에서 Cpp.tpl파일을 복사->붙여넣기 합니다. 그러면 '사본 - Cpp.tpl' 파일이 생길 것입니다. 이 파일의 이름을 'Cu.tpl'로 변경해 줍니다.

 

6) 다시 regedit를 실행합니다. 그리고 내 컴퓨터->HJEY_CURRENT_USER->Software->Whole Tomato->Visual Assist X->VANet9->의 ExtHeader레지스트 파일에 .cuh;를 추가해 줍니다.

 

7) '6)'과 같은 탭의 ExtSource레지스트 파일에 .cu;를 추가해 줍니다.

 

8) VS2008을 실행 시킨후 아래와 같이 Vsiaual Assist X의 옵션창을 실행 시킵니다.

 

 

 

9) 아래와 같이 'Rebuild'를 선택해 줍니다.

 

 

 

 

10) VS2008을 실행합니다. 아마 실행 직후에 Visual Assist X의 새 세팅을 위한 빌드가 수행될 것입니다. 그러면 cuda관련 파일들에도 하이라이팅 및 자동완성 기능이 적용되는 것을 확인하실 수 있습니다.

 

 

 

 

 

 

 

참조 링크:

http://blog.naver.com/hellowkorea/50103111636

http://gamelab.epitech.eu/blogtech/?p=13

http://www.youtube.com/watch?v=Cm7W6MaNuF4

'대학원 수업관련' 카테고리의 다른 글

DAS/NAS/SAN/iSCSI 장단점  (0) 2014.06.18
Thread를 이용한 Matrix Multiply  (0) 2014.04.03
Thread 함수 참고  (0) 2014.03.31
CreateThread, _beginthread, _beginthreadex의 차이  (0) 2014.03.29
Thread 발표 참고 링크  (0) 2014.03.28