Demo with post-processing effect
Demo without post-processing effect
CUDA makes it possible to program the GPU with the language C. This article will show you the steps to code a matrix multiplication routine in CUDA:
- allocate memory on the GPU with cudaMalloc or cudaMallocPitch (for aligned memory allocation)
- move data to the GPU with cudaMemcpy2D
- select the kernel domain, write the kernel and run it
- move results back from the GPU to the host with cudaMemcpy2D
- free resources with cudaFree
With graphics cards such the GeForce GTX 280 and parallel brute force based algorithms coded in CUDA (GPGPU techniques), WiFi’s WPA (RC4 based) and WPA2 (AES based) encryption systems are now crackable and the time to crack them compared to CPU based algorithms is reduced by a factor of 100 (or 10,000 %).
NVIDIA has released two SIGGRAPH 2008 presentations about CUDA. The first one talks about image processing and video algorithms with CUDA and shows some CUDA applications such as image filtering (sobel filter with code sample). This presentation talks also about NVCUVID, the video extension for CUDA. NVCUVID is similar to DXVA API, but is platform OS independent.
The second presentation is more general about CUDA programming and shows how to create high performance code to run on the millions of CUDA-capable GPUs already in use.
NVIDIA CUDA technology is the world’s only C language environment that enables programmers and developers to write software to solve complex computational problems in a fraction of the time by tapping into the many-core parallel processing power of GPUs.