Abstract

Edge detection is one of the most important paradigm of Image processing. Images contain millions of pixel and each pixel information is independent of its neighbouring pixel. Hence this paper puts to test the capability of Graphics Processing Unit (GPU) to compute in parallel against the millions of pixel calculations involved in image processing. Each pixel operation is independent from other thus GPU can be effectively used along with the help of high level programmable interfaces. More specifically, this paper focuses on Compute Unified Device Architecture (CUDA) as its parallel programming platform and examines the possible gain in time which can be attained for edge detection in images. A well-known algorithm SOBEL for edge detection is used in the experiment. A dataset of images was tested for edge detection both serially and parallely. The results of parallel algorithm were further divided according to the machine on which the algorithm was tested and were further classified according to the number of kernel function used in each machine. Results showed that parallel implementation is about 262 times and 943 times faster when 2 kernel functions were implemented in parallel on GeForce and Tesla machines respectively, and about 120 times and 455 times faster when 3 kernel functions were implemented in parallel on GeForce and Tesla machines respectively as compared to serial implementation for larger images. Statistics also showed a decline in speedup of about 52% when 3 kernels were used than when 2 kernels were used due to increase in communication time. Hence, an analysis came out that the decision regarding which sections of the algorithm to be parallelised, should be taken wisely. If not, would lead to an additional overhead i.e. communication time (time taken in transferring the data from CPU to GPU & back from GPU to CPU) thereby reducing the overall speedup.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call