IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 03 Special Issue: 03 | May-2014 | NCRIET-2014, Available @ http://www.ijret.org 53 PERFORMANCE ANALYSIS OF SOBEL EDGE FILTER ON HETEROGENEOUS SYSTEM USING OPENCL Aruna Dore 1 , Sunitha Lasrado 2 1 4 th Sem M.Tech, VLSI Design and Embedded System, NMAMIT, Nitte, Karnataka, India 2 Assistant Professor, Electronics and Communication, NMAMIT, Nitte, Karnataka, India Abstract The fundamental task required for any image or Video processing applications like video surveillance, medical imaging is Edge detection. Any of the filters available can be used to detect the edges. In this paper Sobel Edge filter is used for comparing the performance analysis on CPUs and GPUs and from this study it is found that the performance analysis on GPUs is much higher as compared to CPUs. Also it is seen that parallel execution time is much less as compared to sequential execution for the heterogeneous systems. Keywords: OpenCL, GPU, Convolution Filter ----------------------------------------------------------------------***------------------------------------------------------------------------ 1. INTRODUCTION OpenCL is a parallel framework for heterogeneous computations. It is a standard which is royalty free which is platform independent and is used to work on any kind of computational device. It is a programming language that allows the programmer to write one version of the code that can be executed virtually on any device that has OpenCL drivers .OpenCL consists of an API for coordinating parallel computations in heterogeneous computational environment and a cross–platform programming language based on C99[9]. CUDA (Compute Unified Device Architecture) [8] is a popular development tool for scientific GPU computing provided by the NVIDIA manufacturer for its GPU products. OpenCL programming model [9], supports cross-platform, parallel programming of heterogeneous processing systems while CUDA is not designed for heterogeneous systems. CUDA is a parallel computing framework designed only for NVIDIA‟s GPUs [3], and OpenCL is a standard designed for diverse platforms including CUDA-enabled GPUs, some ATI- GPUs, multi-core CPUs from Intel and AMD, and other processors such as the Cell Broadband Engine. Sobel Edge detection using CUDA gives the performance analysis of different sized images. In this paper OpenCL is used to detect edges for images of different sizes and we see that the performance of a GPU is greater than the performance got through CPU for which the explanation will be given in the next section. 2. OPENCL STANDARD 2.1 OpenCL Architecture Open Computing Language is a framework for writing programs that execute across heterogeneous platform consisting of Central Processing Units (CPUs), Graphics Processing Units (GPUs), Digital Signal Processor (DSPs), Field Programmable Gate arrays and other computing devices. The OpenCL architecture consists of following programming models: Platform Model Execution Model Memory Model Programming Model 2.1.1 Platform Model OpenCL platform model consists of host and „n‟ number of compute devices. The compute device consists of compute units which in turn consist of processing elements. This can be viewed as in Figure1.These processing elements execute code as Single Instruction Multiple Data (SIMD) or Single Program Multiple Data (SPMD). Fig -1: OpenCL Platform Model