CUDA Toolkit에 포함된 Monte Carlo 예제의 속도를 보고 프라이싱 모듈 만드는데 사용하면 좋겠다는 생각이 들어서, 시간 날때마다 조금씩이라도 자료를 정리해서 올릴 생각이다.
# 이 글에서는 VC를 개발환경으로 사용한다.
VC에서 빈 프로젝트를 만들고, cu파일에 대해서는 Custom Build로 nvcc를 사용하도록 설정하는 방법에 대해서 설명한다.
# CUDA SDK 설치되었다고 가정한다.
1. VC에서 empty project를 생성한다.
2. NVIDIA 사이트에서 연습 파일을 다운 받아 압축을 푼다.
3. \myFirstKernel\solution의 myFirstKernel.cu 파일을 위에서 생성한 프로젝트 폴더에 복사한다.
4. 프로젝트에 myFirstKernel.cu 파일을 추가한다.
( 5. Matching Custom Build Rule Not Found 다이얼로그에서 No를 클릭한다. )
6. custom build 설정을 위해 solution explorer에 등록된 myFirstKernel.cu를 선택하고 properties를 클릭한다.
7. Custom Build 설정을 위하여 general 항목의 Command Line에 다음 내용을 입력한다.
- Debug
"$(CUDA_BIN_PATH)\nvcc.exe"
-ccbin "$(VCInstallDir)bin" -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS
-Xcompiler /EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd
-I"$(CUDA_INC_PATH)" -I./ -I../../common/inc -o
$(ConfigurationName)\$(InputName).obj $(InputFileName)
- EmuDebug
"$(CUDA_BIN_PATH)\nvcc.exe"
-ccbin "$(VCInstallDir)bin" -deviceemu -c -D_DEBUG -DWIN32 -D_CONSOLE
-D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd
-I"$(CUDA_INC_PATH)" -I./ -I../../common/inc -o
$(ConfigurationName)\$(InputName).obj $(InputFileName)
- EmuRelease
"$(CUDA_BIN_PATH)\nvcc.exe"
-ccbin "$(VCInstallDir)bin" -deviceemu -c -DWIN32 -D_CONSOLE -D_MBCS
-Xcompiler /EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT -I"$(CUDA_INC_PATH)"
-I./ -I../../common/inc -o $(ConfigurationName)\$(InputName).obj
$(InputFileName)
- Release
"$(CUDA_BIN_PATH)\nvcc.exe"
-ccbin "$(VCInstallDir)bin" -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler
/EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT -I"$(CUDA_INC_PATH)" -I./
-I../../common/inc -o $(ConfigurationName)\$(InputName).obj
$(InputFileName)
8. 프로젝트의 속성을 다음처럼 수정한다.
- Additional Library Directories에 $(CUDA_LIB_PATH)를 입력한다.
- Additional Dependencies에 cudart.lib를 입력한다.
EmuDebug, EmuRelease의 경우에 프로젝트 속성을 더 수정하여야 하는데 그에 관한 것은 그것은 추후 작성 예정
PS: 위에 나온 대로 했는데 컴파일이 안된다면, Exercise에 포함된 프로젝트를 열어서 프로젝트 속성을 비교하면서 수정하면 될것이다.
9. F7를 눌러 Builde를 하고, ctrl + F5를 눌러 실행하여, 다음 화면처럼 나오면 성공이다.