Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2014
…
206 pages
1 file
AI-generated Abstract
This dissertation introduces DEFG, a novel OpenCL programming framework aimed at simplifying GPU software development. By employing declarative statements and design patterns for CPU-side management of GPU applications, DEFG reduces coding complexity and minimizes the need for low-level GPU knowledge, while enabling multi-GPU utilization to enhance runtime performance without significant development overhead. The framework's efficacy is demonstrated through practical applications in image processing, graph processing, sorting, and numerical algebra, showcasing its versatility and capability in diverse computational tasks.
ArXiv, 2014
Since the first idea of using GPU to general purpose computing, things have evolved over the years and now there are several approaches to GPU programming. GPU computing practically began with the introduction of CUDA (Compute Unified Device Architecture) by NVIDIA and Stream by AMD. These are APIs designed by the GPU vendors to be used together with the hardware that they provide. A new emerging standard, OpenCL (Open Computing Language) tries to unify different GPU general computing API implementations and provides a framework for writing programs executed across heterogeneous platforms consisting of both CPUs and GPUs. OpenCL provides parallel computing using task-based and data-based parallelism. In this paper we will focus on the CUDA parallel computing architecture and programming model introduced by NVIDIA. We will present the benefits of the CUDA programming model. We will also compare the two main approaches, CUDA and AMD APP (STREAM) and the new framwork, OpenCL that tries...
2014
DEF-G is a declarative language and framework for the efficient generation of OpenCL GPU applications. Using our proof-of-concept DEF-G implementation, runtime and lines-of-code comparisons are provided for three well-known algorithms (Sobel image filtering, breadth-first search and all-pairs shortest path), each evaluated on three different platforms. The DEF-G declarative language and corresponding OpenCL kernels generated complete OpenCL applications in C/C++. Initial lines-of-code comparison demonstrates that the DEF-G applications require significantly less coding than hand-written CPU-side OpenCL applications. The run-time results demonstrate very similar performance characteristics compared to the handwritten applications. We also provide useful observations, which we found to be noteworthy for practitioners, concerning the effectiveness of certain OpenCL API options.
Proceedings of the 21st spring conference on Computer graphics - SCCG '05, 2005
With the introduction in 2003 of standard GPUs with 32 bit floating point numbers and programmable Vertex and Fragment processors, the processing power of the GPU was made available to non-graphics applications. As the GPU is aimed at computer graphics, the concepts in GPU-programming are based on computer graphics terminology, and the strategies for programming have to be based on the architecture of the graphics pipeline. At SINTEF in Norway a 4-year strategic institute project (2004)(2005)(2006)(2007) "Graphics hardware as a high-end computational resource", aims at making GPUs available as a computational resource both to academia and industry. This paper addresses the challenges of GPUprogramming and results of the project's first year.
Journal of Computer Science and Technology, 2012
2013
Contact author. Abstract- DEFG is our declarative language and framework for the efficient generation of OpenCL GPU applications. Using our new DEFG implementation, run-time and lines-of-code comparisons are provided for three well-known algorithms: Sobel image filtering, breadth-first search and all-pairs shortest path. The DEFG declarative language and corresponding OpenCL kernels provide complete OpenCL applications. The lines-of-code comparison demonstrates that the C/C++ DEFG applications require significantly less coding than hand-written CPU-side OpenCL applications. The run-time results demonstrate equivalent, or better, performance characteristics compared to the hand-written applications.
Pollack Periodica, 2008
The evolution of GPUs (graphics processing units) has been enormous in the past few years. Their calculation power has improved exponentially, while the range of the tasks computable on GPUs has got significantly wider. The milestone of GPU development of the recent years is the appearance of the unified architecture-based devices. These GPUs implement a massively parallel design, which led them be capable not only of processing the common computer graphics tasks, but qualifies them for performing highly parallel mathematical algorithms effectively. Recognizing this availability GPU providers have issued developer platforms, which let the programmers manage computations on the GPU as a data-parallel computing device without the need of mapping them to a graphics API. Researchers salute this initiative, and the application of the new technology is quickly spreading in various branches of science
2014
DEFG is our declarative language and framework for the efficient generation of OpenCL GPU applications. Using our new DEFG implementation, run-time and lines-of-code comparisons are provided for three well-known algorithms: Sobel image filtering, breadth-first search and all-pairs shortest path. The DEFG declarative language and corresponding OpenCL kernels provide complete OpenCL applications. The lines-of-code comparison demonstrates that the C/C++ DEFG applications require significantly less coding than hand-written CPU-side OpenCL applications. The run-time results demonstrate equivalent, or better, performance characteristics compared to the hand-written applications.
2013
In this paper we study NVIDIA graphics processing unit (GPU) along with its computational power and applications. Although these units are specially designed for graphics application we can employee there computation power for non graphics application too. GPU has high parallel processing power, low cost of computation and less time utilization; it gives good result of performance per energy ratio. This GPU deployment property for excessive computation of similar small set of instruction played a significant role in reducing CPU overhead. GPU has several key advantages over CPU architecture as it provides high parallelism, intensive computation and significantly higher throughput. It consists of thousands of hardware threads that execute programs in a SIMD fashion hence GPU can be an alternate to CPU in high performance environment and in supercomputing environment. The base line is GPU based general purpose computing is a hot topics of research and there is great to explore rather ...
Journal of Parallel and Distributed Computing, 2013
Over the last decade, there has been a growing interest in the use of graphics processing units (GPUs) for nongraphics applications. From early academic proof-of-concept papers around the year 2000, the use of GPUs has now matured to a point where there are countless industrial applications. Together with the expanding use of GPUs, we have also seen a tremendous development in the programming languages and tools, and getting started programming GPUs has never been easier. However, whilst getting started with GPU programming can be simple, being able to fully utilize GPU hardware is an art that can take months and years to master. The aim of this article is to simplify this process, by giving an overview of current GPU programming strategies, profile driven development, and an outlook to future trends.
As a consequence of the immense computational power avail-able in GPUs, the usage of these platforms for running data-intensive general purpose programs has been increasing. Since memory and pro-cessor architectures of CPUs and GPUs are substantially different, pro-grams designed for each platform are also very different and often resort to a very distinct set of algorithms and data structures. Selecting be-tween the CPU or GPU for a given program is not easy as there are variations in the hardware of the GPU, in the amount of data, and in several other performance factors. AEminiumGPU is a new data-parallel framework for developing and run-ning parallel programs on CPUs and GPUs. AEminiumGPU programs are written in a Java using Map-Reduce primitives and are compiled into hybrid executables which can run in either platforms. Thus, the de-cision of which platform is going to be used for executing a program is delayed until run-time and automatically performed by the system using Mach...
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
i-manager's Journal on Software Engineering (JSE), 2014
International Journal of Computing, 2014
Lecture Notes in Computer Science, 2013
Journal of Parallel and Distributed Computing, 2008
Concurrency and Computation: Practice and Experience, 2012