GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산)는 일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 그래픽 처리 장치(GPU)를, 전통적으로 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술이다. 이를 가능하게 한 것은 프로그램 가능한 층과 고정도 연산을 그래픽 파이프라인에 연결하는 것으로, 이를 통하여 소프트웨어 개발자들이 그래픽이 아닌 데이터에 스트림 프로세싱을 사용할 수 있게 된다.

CUDA (“Compute Unified Device Architecture”, 쿠다)는 그래픽 처리 장치(GPU, 보통의 desktop이나 laptop에 장착된 graphic card)를 이용하여 C-언어를 비롯한 각종 표준 언어를 사용하여 computer graphics 작업이 아니라 일반적인 과학기술용 해석작업을 수행할 수 있도록 하는 GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산)기술의 발전된 형태를 말한다. CUDA는 NVIDIA社가 개발해오고 있으며 CUDA로 작성된 프로그램을 수행하기 위해서는 NVIDIA의 GPU를 필요로 한다. CUDA를 실행할 수 있는 GPU는 GeForce 8xxx 이후 model이며 최근 출시되는 Tesla, Quadro, GeForce series 제품군이다. 최신의 CPU가 일반적으로 dual/quad-core를 탑재하고 있는 것과는 달리, GPU는 최소 수 십~수 천개의 core를 가지고 있고, 각 core는 수 천개의 스레드를 동시에 실행시킬 수 있다. CUDA를 이용해 작성된 프로그램은 이러한 초 병렬구조를 효율적으로 이용함으로써 커다란 성능 향상을 기대할 수 있다.

성능향상은 GPU의 model에 따라서, 해석하고자 하는 문제에 따라서 한마디로 정의할 수는 없으나, 적게는 수 십배, 크게는 수 백배의 가속효과를 기대할 수 있다. 특히 입자를 기반으로하는 해석방법인 MD(Molecular Dynamics), DEM(Discrete Element Method)과 DSMC(Direct Simulation Monte Carlo), 그리고 LBM(Lattice Boltzmann Method)의 해석에 있어서 가속효과는 압도적이다.

지난 2009년 부터 한양대학교 기계공학과 병렬연산 연구실은 분자동역학(MD) 및 유체유동해석(LBM)에 있어서 기존의 병렬처리기법은 물론, GPU를 사용하는 최신의 CUDA기술에 관해 연구해 오고 있으며, 특히 대규모 연산성능을 필요로하는 거대문제 해석에 있어서 기존의 병렬처리기술과 CUDA기술을 통합함으로써 다수의 GPU를 이용하도록 하는 초고속 해석기술의 개발에 집중하고 있다.

CUDA 공식 web site: https://developer.nvidia.com/cuda-zone

CUDA 연산이 가능한 GPU 목록: https://developer.nvidia.com/cuda-gpus

CUDA Toolkit download: https://developer.nvidia.com/cuda-toolkit

04763 서울특별시 성동구 왕십리로 222 한양대학교 공업센터 본관 116

Tel) 02-2220-4452

홈페이지 담당자: 왕진영( ytrqwe12@hanyang.ac.kr )