CUDA
-
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..
-
CUDA 메모리 구조(2)CUDA 2010. 9. 9. 15:41
CUDA 연산의 개념은 아래 그림과 같은 구조로 되어 있습니다. 여기서 Thread라고 되어 있는 것들이 CUDA연산에서 가장 작은 단위인 것입니다. 이 Thread들은 Block의 하위에 있고 Block들은 다시 Grid의 하위에 있습니다. 그래서 프로그래머가 연산을 하려면 '몇번Grid의 몇번Block의 몇번Thread를 사용하여 계산하겠다' 를 지정해 주어야 합니다. 여기서 각 Thread는 자신만의 local memory를 가지게 됩니다. 각 Thread 간에 data 공유를 위한 shared memory는 따로 있습니다. 그리고 Block들의 집합인 Grid간에 data 공유를 위한 Global memory가 있습니다. 구조는 아래와 같습니다. 이 memory들을 어떻게 사용하느냐에 따라서 같은..
-
CUDA 메모리 구조(1)CUDA 2010. 4. 7. 23:08
오랜만에 쓰네요. 여기는 CUDA관련해서 들어오시는 분들이 제일 많군요..;; 잠깐 검색해봤는데 해가 지났는데 아직 CUDA관련한 한글자료는 잘 없는 편이군요. 국내에 어느정도 보급은 된거 같은데 정보공유는 어떻게들 하시는지 모르겠습니다. nvidia싸이트 가봐도 그다지 활성화되어 있는거 같지는 않구요. 이번 글은 CUDA 메모리 구조 관련한 정리 입니다. 2.0은 안봐서 모르겠는데 이전버전에서의 CUDA는 메모리 구조를 숙지하고 있었어야 했기 때문에 그냥 그럴거라 생각하고 메모리구조에 대한 정리부터 이어갑니다. 우리가 CUDA를 쓰려고하는 이유는 GPU를 사용하여 연산속도의 향상을 얻기 위함입니다. GPU가 CPU연산보다 빠른 이유가 CPU보다 많은 ALU를 보유하고 있기 때문입니다. 위 그림에서 보시..
-
CUDA 시작 글CUDA 2010. 4. 7. 23:02
CUDA 관련 기본글 퍼온 것 CUDA ("Compute Unified Device Architecture"),는 그래픽 처리장치(GPU)에서 수행하는 알고리즘을 코딩하는데 있어서 C 프로그래밍 언어를 사용할 수 있도록 하는 GPGPU 기술이다. CUDA는 엔비디아(Nvidia)에 의해서 개발되어져왔고 이 아키텍쳐의 사용하기위해선 Nvidia GPU와 특별한 스트림 처리 드라이버가 필요하다. CUDA는 G8X GPUs로 구성된 GeForce 8시리즈에서 동작할 수 있다.; Nvidia는 GeForce 8 시리즈상에 작성된 프로그램은 앞으로 개발될 Ncidia 비디오 카드에서도 프로그램 수정없이 작동할 것이라고 선언했다. CUDA는 CUDA GPUs 안의 명령셋과 대용량 병렬처리 메모리를 접근할 수 있도록..