GPGPU CUDA Memory Model CUDA 프로그램은 같은 일을 하더라도 구현 방식(알고리즘)에 따라 천차만별의 성능을 보인다. 그 중 Memory Model를 모르면 정말 프로그램이 한참 느려진다. CUDA Memory Model 이를 위해 가장 먼저 알아야 하는 것이 memory model 이다. CUDA 에는 여러가지 사용할 수 있는 여러가지 메모리가 있다. 가장 중요한 것은 global memory 와
GPGPU GPGPU Simulation - 2부 지난번에 소개한 GPGPU Simulation 의 실제 예를 보여주겠다. GPGPU-sim gpgpu-sim 홈페이지에 가보면, 메뉴얼을 보고 코드를 다운 받을 수 있다. 리눅스에서 설치 및 실행이 가능하고, CUDA는 최신 버전을 지원하지 않는다.... 간단하게 돌린 예를 한번 보여드림. 커널이 끝난 후의 결과이다. 커널이 총 몇개의 instruction 인지 몇 cycle이나 걸렸는지를 비롯하여, 어느 부분에서 stall
GPGPU GPGPU Simulation - 1부 Simulation Simulation을 이용하면 GPU없이 CPU만으로도 CUDA (OpenCL) 코드를 돌려볼 수 있다. (물론 emulation 만으로도 가능하다.) CPU 에서 GPU의 동작을 소프트웨어로 구현 simulator 들이 있다. 대표적으로 gpgpu-sim 과 multi2sim 이 있다. Verilog로 구현되어 CPU가 아닌 FPGA에서 GPU를 직접 구워볼수 있는 miaowgpu 도 있다. Simulation의 용도 이러한 simulation은 사실 GPU가 없는 사람을
GPGPU GPGPU - 2부 GPGPU란?? - 2부 GPGPU를 위한 GPU 구조 지난 1부에서 언급한 것 과 같이 GPU는 그래픽 처리를 위한 하드웨어이고 그래픽 처리는 대량의 data-level-parallelism 을 가진다. 따라서, 기본적으로 SIMD 형태의 구조를 가진다. (SIMD = Single Instruction Multiple Data) 위 그림 처럼 하나의 instruction을 여러개의 ALU가 동시에 여러 데이터를 처리 하는 것을 SIMD 라고
GPGPU GPGPU - 1부 GPGPU (General Purpose computation on GPU) 란?? GPU 부터 알아보자 (간단하게) GPU (Graphics Processing Unit) 은 다들 알겠지만 Graphics 연산을 위한 전용 하드웨어이다. 보통 외장 그래픽카드에 달린 가운데 큰 칩이다. (그래픽카드는 GPU가 아니라 GPU와 메모리가 같이 달린 보드임.) 요즈음에는 CPU에도 내장 GPU가 같이 달려나온다. Intel Core CPU 계열에는 HD graphics