Sie sind auf Seite 1von 10

Outline

• CUDA SDK includes:


– Examples with source codes
(NVSDKCUDA_ROOT/projects)
– Utilities (NVSDKCUDA_ROOT/[common]||[tools])
– White papers

• CUDA SDK available from


– http://www.nvidia.com/object/cuda_sdks.html

• Help to get started writing software with CUDA

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 2


CUDA SDK
• Covers a wide range of applications including
- Simple techniques: C++ code integration/Efficient loading of custom datatypes

- Using CUBLAS/CUFFT libraries: simple codes show how to call the functions provided by
the libraries

- Texture fetching in CUDA

- CUDA interoperation with the OpenGL/Direct3D graphics APIs

- Linear algebra primitives: matrix transpose/matrix-matrix multiplication

- Data-parallel algorithms: parallel prefix sum of large arrays/reduction

- Performance: profiling using timers/bandwidth tests

- Advanced application examples


- In image processing: image convolution
- In computational finance: Black-Scholes options pricing/binomial options pricing

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 3


CUDA SDK: BASIC TOPICS
• Starting points to create new CUDA projects
– ‘cppIntegration’: integrating CUDA into an existing C++ application
– ‘cudaOpenMP’: using OpenMP API to write multi-GPU CUDA application
– ‘simpleMultiGPU’: using CUDA API to write multi -GPU application
– ‘template’/’simpleTemplate’: using template with CUDA
– ‘threadMigration’: CUDA context thread management

• Profiling techniques
– ‘asyncAPI’/’simpleStream’: overlapping execution on CPU and GPU
– ‘bandwidthTest’: measuring memcopy bandwidth of the GPU
– ‘clock’: using clock function to measure the performance of kernel accurately
– ‘deviceQuery’: how to get properties of the CUDA devices present in the
system

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 4


CUDA SDK: LINEAR ALGEBRA
• Using CUBLAS/CUFFT
– ‘simpleCUBLAS’: how to use CUBLAS API
– ‘simpleCUFFT’: how to use CUFFT API
– ‘convolutionFFT2D’: applying CUFFT in convolution
– ‘matrixMul’/’matrixMulDrv’: matrix-matrix multiplication without CUBLAS
– ‘oceanFFT’: applying CUFFT and OpenGL for ocean simulation

• Other basic operations


– ‘convolutionSeparable’/’convolutionTexture’
– ‘scalarProd’
– ‘transpose’
– ‘eigenvalues’

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 5


CUDA SDK: GRAPHICS INTEROP
• Working with OpenGL
– ‘simpleGL’
– ‘fluidsGL’
– ‘boxFilter’
– ‘nbody’
– ‘Mandelbrot’
– ‘postProcessGL’

• Working with DirectX


– ‘simpleD3D9’/’simleD3D10’
– ‘fluidsD3D9’
– ‘recursiveGaussian’

• Working with texture


– ‘simpleTexture’/’simpleTexture3D’/’simpleTextureDrv’
– ‘simpleD3D9Texture/simpleD3D10Texture’
– ‘bicubicTexture’
– ‘marchingCubes’
– ‘SobelFilter’
– ‘volumeRender’

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 6


CUDA SDK: Data-Parallel Algorithms
• Part of data-parallel sample codes is based on CUDPP effort
(http://www.gpgpu.org/developer/cudpp/)

• Working with histograms


– ‘histogram64’/’histogram256’

• Working with sorting


– ‘bitonic’: efficient sorting algorithm for sorting small data

• Batch-processing
– ‘fastWalshTransform’: Hadamard-ordered Fast Walsh Transform for batched vectors of
arbitrary eligible length

• Scan/reduction
– ‘reduction’: the fundamental operation for many parallel algorithms
– ‘scan’: efficient implementation of parallel prefix sum algorithm for large arrays

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 7


CUDA SDK: IMAGE PROCESSING
• Image processing
– ‘dct8x8’: an easier and efficient implementation of
DCT transform for 8x8 block using CUDA
– ‘imageDenoising’: DirectX/CUDA implementation
of two adaptive image denoising techniques: KNN
& NLM

• Data compression
– ‘dxtc’: high quality DXT compression using CUDA

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 8


CUDA SDK: COMPUTATIONAL FINANCE
• Binomial Option Pricing
– ‘binomialOptions’: evaluates fair call price for a given set of European options under binomial
model (single/double FT)

• Black-Scholes Option Pricing


– ‘BlackScholes’: evaluates fair call and put prices for a given set of European options by Black-
Scholes formula

• Monte Carlo Option Pricing


– ‘MonteCarlo’/’MonteCarloMultiGPU’: evaluates fair call price for a given set of European options
using Monte Carlo approach (single/double FT - single/multiGPU)

• Random number/sequence generators


– ‘MersenneTwister’: implements Mersenne Twister random number generator and Cartesian Box-
Muller transformation using CUDA
– ‘quasirandomGenerator’: implements Niederreiter Quasirandom Sequence Generator and Inverse
Cumulative Normal Distribution function for Standart Normal Distribution generation

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 9


Wrap up
• CUDA SDK is a useful resource for learning &
developing software with CUDA

• Continue to update in future releases

Copyright 2009 NVIDIA Corporation. All Rights Reserved. 10

Das könnte Ihnen auch gefallen