'CUDA'에 해당되는 글 2건

  1. 2009.11.18 CUDA Basic #1 139
  2. 2009.10.26 VC에서 cu 파일 컴파일 하기(CUDA) 4

CUDA Basic #1

Computer/CUDA 2009. 11. 18. 00:45
CUDA를 사용하기 위해서 가장 먼저 thread의 계층 구조에 대해서 알아야 된다. 
CUDA의 thread 구조는 thread -> block -> grid로 이루어 지며, GPU에서 실행되는 함수 코드에서는 내부에서 각 level 관련 변수를 사용할 수 있어서, 이 변수를 사용하여 병렬 프로그램을 작성하면 된다.

treadIdx.x / threadIdx.y / threadIdx.z
blockIdx.x / blockIdx.y / blockIdx.z
blockDim.x / blockDim.y / blockDim.z

threadIdx.x - thread ID within block
blockIdx.x - block ID within grid
blockDim.x - number of threads per block

From CUDA Technical Training Volume I

'Computer > CUDA' 카테고리의 다른 글

VC에서 cu 파일 컴파일 하기(CUDA)  (4) 2009.10.26
Posted by Gu Youn
,
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를 눌러 실행하여, 다음 화면처럼 나오면 성공이다.


'Computer > CUDA' 카테고리의 다른 글

CUDA Basic #1  (139) 2009.11.18
Posted by Gu Youn
,