Programming a Matrix Multiplication for GPUs with CUDA

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

NVIDIA GeForce Graphics Cards Used to Break WIFI Passwords

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 %).


Update (2008-10-16)

SIGGRAPH 2008 Presentations: Programming with CUDA

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.


CUDA 2.0 Available

CUDA 2.0 is available here: CUDA Zone. To take advantage of CUDA, you need Forceware 177.84 or better (177.89). Samples work with GeForce 8/9 series.

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.

1 2 3 4