cuda
-
Parallel Nsight 사용하여 CUDA 디버깅 하기CUDA 2011. 8. 24. 15:38
CUDA 프로그래밍을 하다보면 항상 골치아팠던게 디버깅 문제였습니다. 예전에는 이 놈의 디버깅 하려면 애뮬레이션 모드에서 해야했는데, 그렇게 되면 실제 디바이스 하고는 차이가 생겨버려서 골치 아픈 문제들이 많았습니다. 결국, 디바이스 상에서 어떻게 프로그램이 작동되는지 알 방법이 없는게 가장 큰 문제였습니다. 그런데, 오랜만에 다시 CUDA를 하려고 하다보니까 NVIDIA에서 Parallen Nsight라는 CUDA용 디버깅 툴을 내놓았더군요. 비주얼 스튜디오 2010에 통합되어서 잘 동작합니다. 앞으론 이 놈가지고 디버깅하면 한결 수월할 것 같습니다.우선 아래 링크에서 Nsight를 다운로드해서 설치합니다. http://developer.nvidia.com/nvidia-parallel-nsight 아래..
-
비주얼 스튜디오 2010 + CUDA 4.0 템플릿 설정하기CUDA 2011. 8. 23. 15:34
CUDA sdk를 설치하고 나면 NVIDIA에서 제공해 주는 예제 소스들이 많이 있습니다. 이것들을 실행시켜보면서 CUDA에 대한 감을 잡을 수 있는데요. 그렇게 감을 잡고 난 다음에 정작 CUDA를 이용하여 무언가를 만들어 보려고 하면 어떻게 새로운 CUDA 프로젝트를 생성하는지에 관한 정보가 없습니다. 이 포스팅 에서는 어떻게 새로운 CUDA 프로젝트를 시작하는지에 관해서 살펴보겠습니다. 환경 비주얼스튜디오 2010 NVIDIA CUDA SDK 4.0 NVIDIA CUDA Toolkit4.0 설정 CUDA 3.2에서는 번거로운 설정이 필요하지만 CUDA 4.0에서는 간단하게 설정을 할 수 있습니다. 1. 우선 비주얼 스튜디오 2010에서 "빈 Visual C++ 프로젝트"를 생성합니다. 2. 그런 다..
-
비주얼 스튜디오 2010에서 CUDA C에 인텔리센스 적용하기CUDA 2011. 8. 23. 13:44
원본 링크입니다. http://www.ademiller.com/blogs/tech/2010/10/visual-studio-2010-adding-intellisense-support-for-cuda-c/ First make sure Visual Studio knows .cu files are C/C++ files:Open Tools | Options | Projects and Solutions | VC++ Project SettingsAdd “.cu” to the Extensions To Include (VS2010)Next add the CUDA include path to the project’s VC++ Directories:Open the project’s properties dialogSelect..
-
비주얼스튜디오 2010에 CUDA 문법강조 적용하기CUDA 2011. 8. 23. 12:27
비주얼스튜디오 2010에서 CUDA 코딩을 할 때 보면 커널 파일인 .cu파일은 일반 텍스트로 인식되고 문법강조가 되지 않습니다. 이미 문법강조에 익숙해져 있어서 실제 코딩하다보면 상당히 불편한데요. 찾아보니까, 역시나.....이미 비주얼스튜디오용 문법 강조를 제공하더군요..ㅡㅡ;; CUDA 툴킷 설치하면 생성되는 \NVIDIA GPU Computing SDK 4.0\C\doc\syntax_highlighting\ 폴더에 보면 비주얼 각 스튜디오 버전에 맞는 문법강조 파일과 설치법이 있습니다. 비주얼 스튜디오 2010에서 visual_studio 8 에 있는 문법강조 파일을 이용하면 됩니다.1. syntax_highlighting\visual_studio 8 폴더에 있는 usertype.dat 파일을 비..
-
cuda template projectCUDA 2011. 4. 20. 12:30
cuda를 설치하고 나면 기본적으로 제공되는 예제들 중에 template에 관해서 살펴보겠습니다. 뭐 시작하기전에 메모리 종류라던가 커널이라던가 이것저것 알아야 할 것들이 많지만 일단 돌려보고 그런건 차차 하면서 알아 나가는게 좋지 않을까 합니다. 이 카테고리는 제가 공부하고 정리하는 의미가 있기 때문에 크게 순서에 얽매이지 않고 그냥 생각나는대로 쓰고 있음을 밝혀둡니다.;; 그럼 우선 한번 실행 시켜보도록 하죠. Visual C++을 열고 C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\projects 폴더로 가면 예제들이 쭉 있습니다. 한 50개 좀 넘는군요.. 이 중에서 template라는 폴더로 가서 솔루션을 엽니다. 그 다음 F5를 눌러 프로그램을 실..
-
CUDA 프로그래밍 기본개념CUDA 2010. 11. 25. 17:55
CUDA는 일반적인 CPU연산이 아닌 GPU연산을 합니다. 그래서 일반적인 코딩을 할때보다 신경써주어야 할 부분들이 더 있습니다. 여러가지가 있는데 그 중에서 우선 GPU연산을 위해서는 CPU에 있는 데이터를 GPU용으로 바꾸어야 합니다. 메인보드 ram에 있는 데이터를 GPU ram으로 옮기는 거죠. 이때 메모리에 데이터를 어떻게 할당을 하고, GPU에는 여러가지 종류의 메모리가 있는데 그 중에서 어떤 메모리를 활용 하느냐에 따라서 성능차이가 많이 나게 됩니다. 메모리를 잘못 사용하면 CPU보다 느린 성능을 낼수도 있습니다.;; 그런 다음에 그 데이터를 이용해서 GPU상에서 계산을 합니다. 계산한 결과는 GPU에 있기 때문에 GPU에 있는 데이터를 CPU로 가지고 오면 CUDA의 역할이 끝나게 됩니다...
-
불친절한 CUDA 설치하기 정리CUDA 2010. 11. 25. 17:55
테스트환경 필요 hardware CUDA 사용 가능한 GPU 머신 참조 : http://kr.nvidia.com/object/cuda_learn_products.html * G80 시리즈 중에서 8400은 현재 4만원이면 구입가능. 나머진 너무 비쌈..ㅡ_ㅡ; CUDA에서 에뮬레이션 모드를 지원하나 실제 머신에서 돌리는 것과 에뮬레이션 모드에서 돌릴때의 차이가 있기 때문에 에뮬레이션보다는 실제머신에서 돌려보는 것을 추천. ex) double precision같은 경우 현재 출시되어 있는 GPU들은 지원하지 않음. 그래서 실제 하드웨어 상에서 double을 쓰면 문제 발생. 그러나 에뮬레이션 모드에서는 이런 문제가 발생하지 않음. 필요 software windows xp visual c++ 2005 exp..
-
cuda template project(2)CUDA 2010. 11. 16. 10:07
여기부터는 template_kernel.cu 에 관한 내용입니다. 첫번째 포스트쓰고 이래저래 딴짓하느라 그 사이 CUDA2.0 이 나왔네요. template_kernel.cu는 실제 GPU연산을 담당하는 함수가 들어가 있습니다. __global__ void testKernel( float* g_idata, float* g_odata) { // shared memory // the size is determined by the host application extern __shared__ float sdata[]; // access thread id const unsigned int tid = threadIdx.x; // access number of threads in this block const un..