Recent Trends in Software and Hardware for GPGPU Computing: a Comprehensive Survey

Recent Trends in Software and Hardware for GPGPU Computing: a Comprehensive Survey

2010 5th International Conference on Industrial and Information Systems, ICIIS 2010, Jul 29 - Aug 01, 2010, India Recent Trends in Software and Hardware for GPGPU Computing: A Comprehensive Survey B. Neelima Dr. Prakash S Raghavendra Ph. D Scholar Asst. Professor Dept. of Information Technology Dept. of Information Technology NITK-Surathkal, Karnataka, INDIA NITK-Surathkal, Karnataka, INDIA [email protected] [email protected] Abstract--With the growth of Graphics Processor (GPU) the screen, where they are assembled to create a final programmability and processing power, graphics hardware picture. Initially the input primitives are formed from has become a compelling platform for computationally individual vertices. Each vertex must be transformed into demanding tasks in a wide variety of application domains. This screen space and shaded. The vertices are assembled into state of art paper gives the technical motivations that underlie GPU computing and describe the hardware and software triangles and rasterized. Rasterization is a process of developments that have led to the recent interest in this field. determining which screen-space pixel locations are covered by each triangle. Using color information and texture form of information from global memory, each fragment is Keywords: Graphics Processor (GPU), GPU Computing shaded to determine its final color. Finally the fragments are assembled into a final image with one color per pixel [1, 2]. I INTRODUCTION B Programmable GPU Pipeline The GPU’s rapid increase in both programmability and capability has spawned a research community that has More complicated shading and lighting operations were successfully mapped a broad range of computationally not efficiently expressed by fixed function pipeline. The key demanding, complex problems to the GPU. The highly development was user specified programmable vertex and parallel graphics processing unit (GPU) is rapidly gaining fragment processors have replaced the fixed function per- maturity as a powerful engine for computationally vertex and per-fragment operations. Later Shader demanding applications. programming was developed and the current GPUs support the unified Shader Model on both vertex and fragment shaders. GPU pipeline stages are divided in space, not in The GPU has always been a processor with ample time. The part of the processor working on one stage feeds computational resources. Over the past few years, the GPU its output directly into a different part that works on the next has evolved from a fixed-function special-purpose processor stage [1, 2]. into a full-fledged parallel programmable processor. This survey paper gives an overview of structure of graphics pipeline to programmable GPU pipeline. A survey paper on In the early days of programmable stages, the instruction GPU Computing at this time is much useful as this field has set of the vertex and fragment programs were quite captured interest of many academic and industry different, so these stages were separate. However, as both researchers. In this paper, we tried to give a complete the vertex and fragment programs became more fully development picture of hardware and software environment featured, and as the instruction sets converged, GPU for GPU computing till date, giving a glimpse of our future architects reconsidered a strict task-parallel pipeline in favor work in this area. of a unified shader architecture, in which all programmable units in the pipeline share a single programmable hardware unit. While much of the pipeline is still task-parallel, the II GPU ARCHITECTURE programmable units now divide their time among vertex This section gives an overview of graphics pipeline and work, fragment work, and geometry work. These units can its evolution as programmable pipeline. exploit both task and data parallelism. As the programmable parts of the pipeline are responsible for more and more computation within the graphics pipeline, the architecture of the GPU is migrating from a strict pipelined task-parallel A Graphics Pipeline architecture to one that is increasingly built around a single The input to the GPU is a list of geometric primitives, unified data-parallel programmable unit. typically triangles, in a 3-D coordinate system. Through many steps, those primitives are shaded and mapped onto 978-1-4244-6653-5/10/$26.00 ©2010 IEEE 319 Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on March 16,2021 at 04:30:28 UTC from IEEE Xplore. Restrictions apply. 2010 5th International Conference on Industrial and Information Systems, ICIIS 2010, Jul 29 - Aug 01, 2010, India III GPU COMPUTING A Shading Languages This section describes the GPU programming model and Shading languages used in offline rendering are geared mapping of general purpose computations onto the GPU. towards maximum image quality. RenderMan Shading Language [3] is the first shading languages and defines six shader types. A The GPU Programming Model The programmable units of the GPU follow a single Cg [4] was a portable shading language to ease 3D program multiple-data (SPMD) programming model. As programming. The Cg compiler outputs DirectX or OpenGL shader programs have become more complex, programmers shader programs. Cg provides abstractions that are very prefer to allow different elements to take different paths close to the hardware, with instruction sets that expand as through the same program, leading to the more general the underlying hardware capabilities expand. The GLSL is SPMD model. One of the benefits of the GPU is its large the standard shading language for OpenGL for the language fraction of resources devoted to computation. Allowing a features (e.g. integers) that do not directly map to hardware. different execution path for each element requires a The language unifies vertex and fragment processing in a substantial amount of control hardware. Instead, today’s single instruction set, allowing conditional loops and GPUs support arbitrary control flow per thread but impose a branches [5]. HLSL is a C-style shader language for penalty for incoherent branching. Elements are grouped DirectX based proprietary shading language developed by together into blocks, and blocks are processed in parallel. Microsoft for use with the Microsoft Direct3D API [3]. B General-Purpose Computing on the GPU B Streaming Languages The programmer specifies geometric primitives for the This section gives an overview of different evolutions computation for which rasterizer generates a fragment at done on non commercial (Academic/research) Projects and each pixel. Each fragment is then shaded by an SPMD general purpose language development that can run on general purpose fragment program, which computes the multiple platforms and also vendor specific language value with the math operation by accessing the global developments. memory. The result from global memory is then used as input for future computations. But now the non graphics interface to hardware, specifically programmable units are 1 Non-commercial stream programming languages developed. Initially the programmer defines a structured grid of threads for the computation domain and then an BrookGPU was an early academic research projects with SPMD general-purpose program computes the value of each the goal of abstracting the GPU as a streaming processor. thread. The value of each thread is a combination of math Brook is an extension of standard ANSI C and is designed operation and global memory access. The resulting buffer in to incorporate the ideas of data parallel computing and global memory can then be used as an input for arithmetic intensity into a familiar and efficient language [6, computations. 7]. Sh [8] is a Meta programming developed at the University of Waterloo. It is built on top of C++. IV SOFTWARE ENVIRONMENT The ACOTES project gives partial solutions to the In the past, the majority of GPGPU programming was programmer, for streaming applications, to identify done directly through graphics APIs. With DirectX 9, higher opportunities for parallelizing the algorithm [9]. Microsoft’s level shader programming languages are developed like Cg Accelerator is very compute centric, relies on just-in-time (C for Graphics), HLSL (DirectX High Level Shader compilation of data-parallel operators to fragment shaders. Language), GLSL (OpenGL Shading Language) etc, but It is an array-based language based on C# [10]. Shallows is they are inherently shading languages only where a C++ library aimed to reduce the time spent on writing and computation must be expressed in graphics terms only. debugging OpenGL related C/C++ code [11]. Brahma is an Then there was a development of higher level languages open source shader meta-programming framework for the designed for computations by abstracting the GPU as .NET platform that generates shader code from intermediate streaming processor. The stream programming model language at runtime, enabling developers to write GPU code structures programs to express parallelism and allows for in C# [12]. The StreamIt [13] programming model has been efficient communication and data transfer, matching the proposed to exploit parallelism in streaming applications on parallel processing resources and memory system available general purpose multi core architectures. Scout [14] is a on GPUs. In this section we give a brief overview of the GPU programming language designed for scientific evolution of GPU computing languages starting from visualization. shading languages, streaming

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us