본문 바로가기

그래픽

CUDA - nVidia GPU coding.

친구의 소개로 nVidia 의 CUDA 를 알게 되었다.
CUDA 란 ?

CUDA™ 툴킷은 CUDA를 지원하는 GPU를 위한 C언어 기반의 개발 환경입니다. CUDA 개발 환경에 포함된 요소는 다음과 같습니다:

  • nvcc C 컴파일러
  • GPU를 위한 CUDA 고속 푸리에 변환 (FFT : Fast Fourier Transform) 와 기본 선형대수 서브루틴 (BLAS : Basic Linear Algebra Subroutines) 라이브러리
  • 프로파일러
  • GPU를 위한 gdb 디버거 (알파 버전 2008년 3월 제공 예정)
  • CUDA 런타임 드라이버 (표준의 NVIDIA GPU 드라이버에서도 사용 가능)
  • CUDA 프로그래밍 매뉴얼

CUDA 개발자용 SDK 는 소스 코드와 함께 예시를 제공하여 개발자로 하여금 CUDA를 시작하는 데 도움을 줍니다. 포함된 예시는 다음과 같습니다:

  • 병렬 바이토닉 정렬 (Parallel bitonic sort)
  • 행렬의 곱 (Matrix multiplication)
  • 전치행렬 (Matrix transpose)
  • 타이머를 이용한 성능 정보 수집 (Performance profiling using timers)
  • 대용량의 배열에서의 병렬 접두어 총합(검색) (Parallel prefix sum (scan) of large arrays)
  • 이미지 회선(Image convolution)
  • Haar 웨이블릿을 이용한 1D DWT (1D DWT using Haar wavelet)
  • OpenGL과 Direct3D의 상호운용 예시 (OpenGL and Direct3D graphics interoperation examples)
  • CUDA BLAS와 FFT 라이브러리의 사용 예시 (CUDA BLAS and FFT library usage examples)
  • CUP와 GPU의 C, C++의 코드 통합 (CPU-GPU C- and C++-code integration)
  • 이항옵션 가격결정모형 (Binomial Option Pricing)
  • 블랙-숄즈 옵션 평가모델 (Black-Scholes Option Pricing)
  • 몬테 카를로 옵션 평가모델 (Monte-Carlo Option Pricing)
  • 병렬 메르센 트위스터(랜덤 숫자 생성) (Parallel Mersenne Twister (random number generation))
  • 병렬 막대그래프 (Parallel Histogram)
  • 이미지 노이즈 제거 (Image Denoising)
  • 소벨 에지 감지 필터 (Sobel Edge Detection Filter)
  • MathWorks MATLAB® 플러그인 (여기를 눌러 다운로드 받을 수 있습니다)

CUDA 1.1 버전에 포함된 새로운 SD 샘플을 지금 사용할 수 있습니다. 모든 목록과 다운로드 코드를 여기 에서 확인할 수 있습니다.

기술적 특징

  • GPU에서 구현되는 표준의 C 프로그래밍 언어
  • CUDA 지원이 가능한 NVIDIA GPU에서 구현되는 병렬 컴퓨팅을 위한 통합된 하드웨어와 소프트웨어 솔루션
  • 저전력의 노트북 GPU에서 고성능, 다수의GPU 시스템에서도 구현이 가능한 CUDA 호환이 가능한 GPU
  • CUDA 지원이 가능한 GPU를 지원하는 패러럴 데이터 캐시(Parallel Data Cache )와 쓰레드 집행 매니저(Thread Execution Manager)
  • FFT(Fast Fourier Transform : 고속 푸리에 변환) 과 기본 선형대수 서브루틴 (BLAS : Basic Linear Algebra Subroutines) 을 위해 표준 통계 라이브러리
  • 연산을 위한 CUDA 전용의 드라이버
  • CPU에서 CUDA 사용 가능한 GPU 간의 최적화된 직접 업로드 다운로드 경로
  • OpenGL과 DirectX 그래픽 드라이버와 호환 가능한 CUDA 드라이버
  • 리눅스 32/64 비트, 윈도우 XP 32/64 비트 지원
  • 리서치와 언어 개발을 위한 CUDA를 통한 직접 드라이버와 어셈블리 레벨의 접근

이에 관련된 개발예들이 이미 국내에서도 진행 되고 있다.
GPU 의 정말 강력한 부동소수점 연산 능력은 이미 CPU 의 FPU 와 비교가 안되게 빠르기 떄문이다.
아래는 전문.

Table of Contents


Send Us Your Applications!

And we'll feature them on this page. The only requirement is that they be created with CUDA. You can submit descriptions and samples to cuda@nvidia.com.


국내 CUDA 사례연구 및 세미나 발표자료

NVIDIA CUDA software and GPU parallel Computing architecture - NVIDIA
CUDA Exercises (copy, kernel launch, reverse)
CUDA Exercise Code Samples
Build for Professional - 엔비디아 프로페셔널 솔루션 소개

Korea CUDA Case Study

Neural Networks using CUDA and OpenMP - 숭실대학교 정기철 교수
CUDA를 활용한 주조해석 시뮬레이션 Casting simulation with CUDA - AnyCasting
GPU를 이용한 Video Encoding H.264 encording using CUDA at UCC environment -VOCEWEB
CUDA를 활용한 실시간 image processing system 구현 Camera image processing using CUDA for inspection at LCD production line - nBiz
GPU 기반의 Medical Imaging Medical imaging using CUDA - 서울대학교 강성태 연구원
GPU 병렬컴퓨팅 사례연구 병렬컴퓨팅 Case Study Optimal Partition - KAIST 원광연 교수, 진종욱 연구원
DX10 기반의 GPU Computing - 고려대학교 한정현 교수
병렬컴퓨팅과 Physics Engine - 이화여자대학교 김영준 교수

CUDA를 이용한 어플리케이션

Title Author(s) Date
MDGPU: Molecular Dynamics simulation J.A. van Meel, A. Arnold October 2007
Interactive Visualization of Volumetric White Matter Connectivity in DT-MRI Won-Ki Jeong, P. Thomas Fletcher, Ran Tao, and Ross T. Whitaker October 2007
Astrophysical simulations based on smoothed particle hydrodynamics: Fourier Volume Rendering Andrew Corrigan and John Wallin, Computational and Data Sciences, George Mason University July 2007
Computational Astrophysics Lab, RIKEN: Astrophysical N-body simulation: The Chamomile Scheme Tsuyoshi Hamada and Toshiaki Iitaka July 2007
Computational biology string matching: CMATCH Michael C. Schatz and Cole Trapnell, Center for Bioinformatics & Computational Biology, University of Maryland May 2007
Simulation Open Framework Architecture (SOFA) for real-time simulation with an emphasis on medical simulation. INRIA and CIMIT February 2007
Visual Molecular Dynamics: VMD Beckman Institute, NIH, NSF, University of Illinois at Urbana-Champaign 2007
Scalable Molecular Dynamics: NAMD Beckman Institute, NIH, NSF, University of Illinois at Urbana-Champaign 2007
NVIDIA Texture Tools 2 Alpha
Source Code
NVIDIA 2007
PyStream: Python interface to CUDA, CUBLAS and CUFFT Tech-X Corporation 2007
Highly Optimized Object-oriented Molecular Dynamics: HOOMD Joshua A. Anderson, Chris D. Lorenz, and Alex Travesset: Iowa State University 2007
The Schrödinger project: portable libraries for the high quality Dirac video codec created by BBC R&D. Wladimir J. van der Laan, BBC R&D, Fluendo 2007

학술적 문서와 논문

Title Author(s) Date
General Purpose Molecular Dynamics Simulations Fully Implemented on Graphics Processing Units Joshua A. Anderson, Chris D. Lorenz, and A. Travesset February 2008
Solving Dense Linear Systems on Graphics Processors S. Barrachina, M. Castillo, F. D. Igual, R. Mayo, Enrique S. Quintana-Ortí February 2008
GLAME@lab: An M-script API for Linear Algebra Operations on Graphics Processors S. Barrachina, M. Castillo, F. D. Igual, R. Mayo, Enrique S. Quintana-Ortí January 2008
GEOMETRIC ALGORITHMS ON CUDA A. Rueda and L. Ortega January 2008
Evaluation and Tuning of the Level 3 CUBLAS for Graphics Processors S. Barrachina, M. Castillo, F. D. Igual, R. Mayo, Enrique S. Quintana-Ortí 2008
Implementation of a Lattice Boltzmann kernel using the Compute Unified Device Architecture developed by NVIDIA Jonas T¨olke 2008
Towards three-dimensional teraflop CFD computing on a desktop PC using graphics Hardware J. T¨olke, M. Krafczyk, Institute for Computational Modeling in Civil Engineering, TU Braunschweig 2008
GPU Acceleration of Numerical Weather Prediction Michalakes, J. and M. Vachharajani. Workshop on Large Scale Parallel Processing, IPDPS 2008
Fast GPU-Based CT Reconstruction using CUDA Holger Scherl, Benjamin Keck, Markus Kowarschik, and Joachim Hornegger 2007
A CUDA-Supported Approach to Remote Rendering Stefan Lietsch and Oliver Marquardt University of Paderborn 2007
Molecular Dynamics Simulations on Commodity GPUs with CUDA Weiguo Liu, Bertil Schmidt, Gerrit Voss, and Wolfgang Müller-Wittig December 2007
AstroGPU 2007: Workshop on General Purpose Computation on Graphics Processing Units in Astronomy and Astrophysics Institute for Advanced Study, Princeton, NJ, USA November 2007
Cuda compatible GPU as an efficient hardware accelerator for AES cryptography Svetlin A. Manavski November 2007
How GPUs Can Improve the Quality of Magnetic Resonance Imaging Sam S. Stone, Haoran Yi, Justin P. Haldar, Wen-mei W. Hwu, Bradley P. Sutton, and Zhi-Pei Liang. University of Illinois at Urbana-Champaign October 2007
Fast Multipole Methods on Graphics Processors Nail A. Gumerov and Ramani Duraiswami, University of Maryland, College Park October 2007
Harvesting Graphics Power for MD Simulations J.A. van Meel, A. Arnold, D. Frenkel, S.F. Portegies Zwart and R.G. Belleman September 2007
Accelerating molecular modeling applications with graphics processors John Stone, James Phillips, David Hardy, Peter Freddolino, Leonardo Trabuco, Klaus Schulten, University of Illinois at Urbana-Champaign September 2007
Massive Threading: Using GPUs to Increase the Performance of Digital Forensics Tools Lodovico Marziale, Golden G. Richard III, Vassil Roussev, Department of Computer Science, University of New Orleans August 2007
Scan Primitives for GPU Computing
**Graphics Hardware 2007 Best Paper**
Shubhabrata Sengupta, Yao Zhang and John D. Owens, University of California, Davis
Mark Harris, NVIDIA Corporation
August 2007
High Performance Direct Gravitational N-body Simulations on Graphics Processing Units -- II: An implementation in CUDA Robert G. Belleman, Jeroen Bédorf and Simon F. Portegies Zwart, University of Amsterdam, The Netherlands July 2007
Graphic-Card Cluster for Astrophysics (GraCCA) – Performance Tests His-Yu Schive, Chia-Hung Chien, Shing-Kwong Wong, Yu-Chih Tsai and Tzihong Chiueh, National Taiwan University, Taipei
July 2007
Two-electron integral evaluation on the graphics processor unit Koji Yasuda, Graduate School of Information Science, Nagoya University, JAPAN July 2007
The Chamomile Scheme: An Optimized Algorithm for N-body Simulations on Programmable Graphics Processing Units Tsuyoshi Hamada and Toshiaki Iitaka, Computational Astrophysics Laboratory, RIKEN March 2007
CUDA compatible GPU cards as efficient hardware accelerators for Smith-Waterman sequence alignment Svetlin A. Manavski, Giorgio Valle 2007
MUMmerGPU: High-throughput sequence alignment using Graphics Processing Units Michael C. Schatz, Cole Trapnell, Arthur L. Delcher, & Amitabh Varshney 2007

CUDA를 사용한 ISV

Scientific
Library of mathematical functions for Very High Level Languages ( Java, Python, MATLAB, IDL)
Tech-X Corporation
Electromagnetic Simulations & Geophysical Data Processing
Acceleware
3D Surface Image Capture and “4D Capture” of Stereo Video Time Sequencing
Dimensional Imaging
Synthesis of Artificial Neural Circuitry
Evolved Machines
SnapCT accelerates tomography volume reconstruction
Digisens SA
Oil & Gas/Energy
Innovative 3D visualization solutions for Oil and Gas
Mercury Computer Systems
Oil and Gas Exploration: Prestack Seismic Data Interaction
Headwave
Finance
Computational Finance: Swaption volatility
Level 3 Finance
Quantitative Risk Analysis and Algorithmic Trading Systems
Hanweck Associates
Geographic Information Systems (GIS)
Manifold® System
Computer Security and Forensics
ElcomSoft Co. Ltd
Video Encode/Decode
RapiHD™ H.264 Encoder and MPEG-2 Decoder
Elemental Technologies