Graphics processing units - powerful, programmable, and highly parallel - are increasingly targeting general-purpose computing applications. GPU ComputingPresented By:Khan Muhammad Nafee Mostafa0507007, Dept of CSE, KUET
GPU ComputingJ. D. OwensM. HoustonD. LuebkeS. GreenJ. E. StoneJ. C. PhillipsProceedings of the IEEE | Vol 96, No. 5 | May 2008We would be concentrating on,What is GPU ComputingWhy GPU ComputingGPU Architecture and EvolutionGPU Computing ModelSoftware Environment Future
GPU for General Purpose ComputingWhat is GPU Computing ?
What is GPU Computing ?GPU computing is the use of a GPU to do general purpose scientific and engineering computingCPU and GPU together in a heterogeneous computing model.Sequential part of the application runs on the CPU and the computationally-intensive part runs on the GPU. From the user’s perspective, the application just runs faster because it is using the high-performance of the GPU to boost performance.
Over the past few years, the GPU has evolved from a fixed-function special-purpose processor into a full-fledged parallel programmable processor with additional fixed-function special-purpose functionalityWhy GPU Computing…
GPU for Non-Graphic AppsThe GPU is designed for a particular class of applications with the following characteristics,Computational requirements are largeParallelism is substantialThroughput is more important than latencya growing community has identified other applications with similar characteristics and successfully mapped these applications onto the GPU
GPU extends its hand towards CPU for performanceParallelism is the future of computingMany applications have to process huge set of data following same functionsSeveral stream processors can execute same  set of instructions on different data sets and give a higher throughput  If GPU take some share of computation load from CPU, many applications can be benefitted in speed-up
GPU is now turned into a programmable engineGPU Architecture and Evolution
GPU PipelineAvailable operations are configurable but not programmable
Evolution…
All GPU programs must be structured in this way: many parallel elements, each processed in parallel by a single programGPU Computing Model
Computing on the GPUProgramming a GPU for Graphicsprogrammer specifies geometry covering a screen region; rasterizer generates a fragment at each pixel locationEach fragment is shaded by the fragment program (FP).FP computes the fragment by a combination of math operations and global memory readsresulting image can be used as texture on future passes.
Computing on the GPUProgramming a GPU for GraphicsProgramming a GPU for General-Purpose Programs (Old)programmer specifies geometric primitive covering computation domain of interest; rasterizer generates fragmentEach fragment is shaded by an SPMD general purpose FPFP computes the fragment by a combination of math operations and ‘gather’ accesses from global memory. resulting buffer can be used as an input on future passes. programmer specifies geometry covering a screen region; rasterizer generates a fragment at each pixel locationEach fragment is shaded by the fragment program (FP).FP computes the fragment by a combination of math operations and global memory readsresulting image can be used as texture on future passes.
Computing on the GPUProgramming a GPU for General-Purpose Programs (New)programmer directly defines the computation domain of interest as a structured grid of threadsSPMD general-purpose program computes each threadeach thread is computed by a combination of math  operations and both ‘gather’ (read) accesses from and ‘scatter’ (write) accesses to global memory; (same buffer can be used for both allowing more flexible algorithms)resulting buffer in global memory can then be used as an input in future computation
Software Environments
Software EnvironmentsBrookGPUMicrosoft’s AcceleratorVendor Specific GPGPU systemsAMD ATI’s CTM (Close to the Metal)NVIDIA’s CUDA (Compute Unified Device Architecture)
Scan performance on CPU, graphics-based GPU (using OpenGL), and direct-compute GPU (using CUDA). Results obtained on a GeForce 8800 GTX GPU and Intel Core2-Duo Extreme 2.93 GHz CPU. (Figure adapted from Harris et al.)Scan performance on CPU, OpenGL and CUDA
Future…
Concluding for bright Future…support for double-precision floating-pointhigher bandwidth path between CPU and GPU (like ATI’s HyperTransport)more tightly coupled CPU and GPU (AMD’s fusion or nVidianForce)NVIDIA Quadro for Multiple GPU CollaborationFinally, let us wait for new era when GPU Computing will rule
Thank YouI would also like to thank,

GPU Computing

  • 1.
    Graphics processing units- powerful, programmable, and highly parallel - are increasingly targeting general-purpose computing applications. GPU ComputingPresented By:Khan Muhammad Nafee Mostafa0507007, Dept of CSE, KUET
  • 2.
    GPU ComputingJ. D.OwensM. HoustonD. LuebkeS. GreenJ. E. StoneJ. C. PhillipsProceedings of the IEEE | Vol 96, No. 5 | May 2008We would be concentrating on,What is GPU ComputingWhy GPU ComputingGPU Architecture and EvolutionGPU Computing ModelSoftware Environment Future
  • 3.
    GPU for GeneralPurpose ComputingWhat is GPU Computing ?
  • 4.
    What is GPUComputing ?GPU computing is the use of a GPU to do general purpose scientific and engineering computingCPU and GPU together in a heterogeneous computing model.Sequential part of the application runs on the CPU and the computationally-intensive part runs on the GPU. From the user’s perspective, the application just runs faster because it is using the high-performance of the GPU to boost performance.
  • 5.
    Over the pastfew years, the GPU has evolved from a fixed-function special-purpose processor into a full-fledged parallel programmable processor with additional fixed-function special-purpose functionalityWhy GPU Computing…
  • 6.
    GPU for Non-GraphicAppsThe GPU is designed for a particular class of applications with the following characteristics,Computational requirements are largeParallelism is substantialThroughput is more important than latencya growing community has identified other applications with similar characteristics and successfully mapped these applications onto the GPU
  • 7.
    GPU extends itshand towards CPU for performanceParallelism is the future of computingMany applications have to process huge set of data following same functionsSeveral stream processors can execute same set of instructions on different data sets and give a higher throughput If GPU take some share of computation load from CPU, many applications can be benefitted in speed-up
  • 8.
    GPU is nowturned into a programmable engineGPU Architecture and Evolution
  • 9.
    GPU PipelineAvailable operationsare configurable but not programmable
  • 10.
  • 11.
    All GPU programsmust be structured in this way: many parallel elements, each processed in parallel by a single programGPU Computing Model
  • 12.
    Computing on theGPUProgramming a GPU for Graphicsprogrammer specifies geometry covering a screen region; rasterizer generates a fragment at each pixel locationEach fragment is shaded by the fragment program (FP).FP computes the fragment by a combination of math operations and global memory readsresulting image can be used as texture on future passes.
  • 13.
    Computing on theGPUProgramming a GPU for GraphicsProgramming a GPU for General-Purpose Programs (Old)programmer specifies geometric primitive covering computation domain of interest; rasterizer generates fragmentEach fragment is shaded by an SPMD general purpose FPFP computes the fragment by a combination of math operations and ‘gather’ accesses from global memory. resulting buffer can be used as an input on future passes. programmer specifies geometry covering a screen region; rasterizer generates a fragment at each pixel locationEach fragment is shaded by the fragment program (FP).FP computes the fragment by a combination of math operations and global memory readsresulting image can be used as texture on future passes.
  • 14.
    Computing on theGPUProgramming a GPU for General-Purpose Programs (New)programmer directly defines the computation domain of interest as a structured grid of threadsSPMD general-purpose program computes each threadeach thread is computed by a combination of math operations and both ‘gather’ (read) accesses from and ‘scatter’ (write) accesses to global memory; (same buffer can be used for both allowing more flexible algorithms)resulting buffer in global memory can then be used as an input in future computation
  • 15.
  • 16.
    Software EnvironmentsBrookGPUMicrosoft’s AcceleratorVendorSpecific GPGPU systemsAMD ATI’s CTM (Close to the Metal)NVIDIA’s CUDA (Compute Unified Device Architecture)
  • 17.
    Scan performance onCPU, graphics-based GPU (using OpenGL), and direct-compute GPU (using CUDA). Results obtained on a GeForce 8800 GTX GPU and Intel Core2-Duo Extreme 2.93 GHz CPU. (Figure adapted from Harris et al.)Scan performance on CPU, OpenGL and CUDA
  • 18.
  • 19.
    Concluding for brightFuture…support for double-precision floating-pointhigher bandwidth path between CPU and GPU (like ATI’s HyperTransport)more tightly coupled CPU and GPU (AMD’s fusion or nVidianForce)NVIDIA Quadro for Multiple GPU CollaborationFinally, let us wait for new era when GPU Computing will rule
  • 20.
    Thank YouI wouldalso like to thank,