Rok Češnovar (2010) Seam Carving on graphics processing units with CUDA architecture. EngD thesis.
Abstract
The purpose of this thesis is to present the computational performances of graphical processing units with CUDA (Compute Unified Device Architecture) architecture on the Seam Carving algorithm. We want to show if implementing this algorithm on graphical processing units (GPUs) is effective. We also want to show some ways of optimizing the algorithm,the results of doing so, and what are the performance differences if we change the complexity of a part of the algorithm. Seam Carving algorithm is a content-aware image resizing algorithm. With this algorithm, resizing is done with removing the optimal seam. An optimal seam is path through the picture that carries the least information. We determine that the success of this algorithm depends on a lot of factors: the number of objects in the picture, the size of monotonous background and the energy function. CUDA is an open parallel architecture, developed in the year 2007 by the nVIDIA corporation. Besides their main function, which is the display of graphics, GPUs that support CUDA, can also be used for general purpose computation. The biggest advantage of running an algorithm on a CUDA GPU is the use of the massive parallelism. If an algorithm can be made parallel, the use of GPUs significantly improves the performance and reduces the load of the central processing units (CPUs): We determine that implementing the Seam Carving algorithm on GPUs is effective from certain picture sizes on. The latter is true for both increasing and reducing the size of the picture. But the rate of the speed-up is not the same in both cases. We also determine that in order to optimize the performance of this algorithm we need to do the following: use the shared memory with caching and determine the optimal block size. With the use of shared memory we can access our data faster. Beside that it also enables us to remove a significant amount of branches
Actions (login required)