nvidia
-
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를 보유하고 있기 때문입니다. 위 그림에서 보시..