CUDA Differences b/w Architectures and Compute Capability

Since its first release back in year 2007 with compute capability 1.0, CUDA has three more architectural releases and eight more compute capabilities which marks the fact that it’s an ever evolving architecture. Although CUDA is forward compatible but every new release comes with its own new features worth using and an increased thread/memory support. As a rule of thumb every new architecture runs the CUDA code faster than previous generation given both cards have same number of cores.

The comparison below gives a list of feature/functionality support between compute capabilities of NVIDIA’s CUDA enabled devices. Note that atomic operations weren’t supported in the first release and since they are so important, NVIDIA now practically compares architectures from 1.1 and later.

Continue reading “CUDA Differences b/w Architectures and Compute Capability”

Histogram Equalization Added In CUVI Version 0.6

CUVI version 0.6 is under development. One of its new features is the histogram equalization of images.

Histogram Equalization is an image processing technique for contrast enhancement of low contrast images. Our implementation is 3 to 6 times faster than the one offered by OpenCV 2.2, with same output. The speed depends on image size as well as image intensity values. Currently, only 8 bit greyscale images are supported, and we hope to add support for other image types in future releases of CUVI.

Continue reading “Histogram Equalization Added In CUVI Version 0.6”

How to Build OpenCV 2.2 with GPU (CUDA) on Windows 7

OpenCV version 2.2 was released in December last year with GPU support. This GPU moduimagele was written in CUDA which means it’s hardware dependent (only NVIDIA CUDA enabled GPUs can make use of this module). It has opened the gateways of GPU accelerated Image Processing and Computer Vision available right in OpenCV. Using it can be a nightmare for most of you so I decided to log my way of making it work which is not very much different from what’s on the documentation with some added steps. 

Continue reading “How to Build OpenCV 2.2 with GPU (CUDA) on Windows 7”

How to Run CUDA In Visual Studio 2010

Microsoft has given a complete facelift to the new Visual Studio 2010. A whole bunch of new features and removal of a couple of them. With the new VS 2010, you cannot define custom build rules with .rules file as it was done before. Now there’s a whole new bunch of modules that need to imagebe specified in order to make a set of custom build rules to work with Visual Studio 2010 project. This blog explains the steps involved in making CUDA work on the new Visual Studio 2010.

Continue reading “How to Run CUDA In Visual Studio 2010”

How to Apply Filters to Images Using CUDA

Image filtering is one of the most basic utility of image processing and computer vision. Any image processing application, like feature detection, is composed of applying a series of filters to the image. After reading this guide, you’ll be able to efficiently apply filters to images using shared memory of CUDA architecture. Here’s a step by step guide to write your own filter of any type and size. For simplicity I’ll use a 16 bit unsigned grey scale image in this tutorial.
Continue reading “How to Apply Filters to Images Using CUDA”

Profiling CUDA Applications on Windows with NVIDIA Compute Visual Profiler

Writing applications that use the massive parallel compute power of the CUDA capable GPUs has been made even more simpler with the release of CUDA Toolkit 3.2 RC. What’s more exciting is that it comes with an improved CUDA Visual Profiler which lets you profile every minute aspect of your application. Today I am going to walk you through the simple process of profiling your CUDA application.

Continue reading “Profiling CUDA Applications on Windows with NVIDIA Compute Visual Profiler”