Download presentation
Presentation is loading. Please wait.
Published byHilary Blake Modified over 9 years ago
1
May 8, 2007Farid Harhad and Alaa Shams CS7080 Over View of the GPU Architecture CS7080 Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad & Alaa Shams
2
May 8, 2007Farid Harhad and Alaa Shams CS7080 Outline Introduction GPU Architecture GPU programming –GPU programming model –Toolkit and language Sample Code Conclusion
3
May 8, 2007Farid Harhad and Alaa Shams CS7080 Introduction Applications: (feel free to remove this if you want to) –Gamming: In-game physics –Computational sciences (used as a coprocessor)
4
May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU Architecture
5
May 8, 2007Farid Harhad and Alaa Shams CS7080 ALU, Parallel Streams Collection of records requiring similar computation Vertex positions, Voxels, FEM cells, etc. Provide data parallelism Kernels Functions applied to each element in stream transforms, PDE, … Few dependencies between stream elements Encourage high Arithmetic Intensity
6
May 8, 2007Farid Harhad and Alaa Shams CS7080 Rasterizers Programmable parallel processors Vertex & Fragment pipelines current GPU 3-8 vertex processors, and 8-24 pixel (Fregment) processors Rasterizer –Mostly useful for interpolating addresses (texture coordinates) and per-vertex constants Texture unit –Read-only memory interface Render to texture –Write-only memory interface
7
May 8, 2007Farid Harhad and Alaa Shams CS7080 GPUCPU Application Transform & Light Rasterize Shade Video Memory (Textures) Xformed, Lit Vertices (2D) Graphics State Render-to-texture Assemble Primitives Vertices (3D) Screenspace triangles (2D) Fragments (pre-pixels) Final Pixels (Color, Depth)
8
Programmable vertex processor! Programmable pixel processor! May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU Transform CPU Application Rasterize Shade Video Memory (Textures) Xformed, Lit Vertices (2D) Graphics State Render-to-texture Assemble Primitives Vertices (3D) Screenspace triangles (2D) Fragments (pre-pixels) Final Pixels (Color, Depth) Fragment Processor Vertex Processor
9
May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU programming
10
GPUs Are Difficult to Use Designed and driven by the gaming industry: if a feature is not useful for the gaming industry, it will not be added –Rapidly evolving –Largely secrete architecture Programming model based on: –Vector processing and parallel programming –Graphics programming logic & concepts: rasterize triangles and pixels May 8, 2007Farid Harhad and Alaa Shams CS7080
11
May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU Programming Model Useful analogies: –Rasterization = Kernel Invocation –Texture coordinates = Computation domain –Vertex coordinates = computational range Invoking computation amounts to drawing pixels: –GPGPU invocation is commonly a full-screen quad GPUCPU Stream / Data array: Memory read Texture: Texture sampling Loop body / Kernel / AlgorithmFragment program Feedback: Array writeFeedback: render a texture
12
May 8, 2007Farid Harhad and Alaa Shams CS7080 Toolkits and Language
13
May 8, 2007Farid Harhad and Alaa Shams CS7080 Sample Code
14
May 8, 2007Farid Harhad and Alaa Shams CS7080 Conclusion GPU provide the programmer with unparalleled flexibility and performance in a product line that spans the entire PC market. Utilizing the capabilities of the GPU allow the programmers to develop newer applications-either graphical or general purpose-in more efficient way.
15
May 8, 2007Farid Harhad and Alaa Shams CS7080 Questions? Thanks
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.