GPU (Graphics Processing Unit)






GPU (Graphics Processing Unit)

A graphics processing unit is a specialized electronic circuit designed to rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. 
GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles.




CPU vs GPU




      -     A GPU is tailored for highly parallel operation while a CPU executes programs serially
      -     For this reason, GPUs have many parallel execution units and higher transistor counts, while CPUs have few execution units and higher clock speeds.
      -    A GPU is for the most part deterministic in its operation (though this is quickly changing)
      -     GPUs have much deeper pipelines (several thousand stages vs 10-20 or so for CPUs)
      -      GPUs have significantly faster and more advanced memory interfaces as they need to shift around a lot more data than CPUs





Graphics Definitions

      -          Transform is the task of converting spatial coordinates, which in this case involves moving three-dimensional objects in a virtual world and converting the coordinates to a two-dimensional view. Clipping means only drawing things that might be visible to the viewer. Lighting is the task of taking light objects in a virtual scene, and calculating the resulting colour of surrounding objects as the light falls upon them.
      -          A pixel shader serves to manipulate a pixel color, usually to apply an effect on an image, for example; realism, bump mapping, shadows, and explosion effects. It is a graphics function that calculates effects on a per-pixel basis. Depending on resolution, an excess of 2 million pixels may need to be rendered, lit, shaded, and colored for each frame.
      -          A vertex shader is a graphics processing function used to add special effects to objects in a 3D environment by performing mathematical operations on the objects' vertex data. Each vertex can be defined by many different variables. Vertices may also be defined by colors, textures, and lighting characteristics. Vertex Shaders don't actually change the type of data; they simply change the values of the data, so that a vertex emerges with a different color, different textures, or a different position in space.
      -          Graphics primitive -An elementary graphics building block, such as a point, line or arc. In a solid modeling system, a cylinder, cube and sphere are examples.
      -          Rasterization -is the process of taking an image described in a vector graphics format and converting it into a raster image (pixels or dots) for output on a video display.
      -          Culling –a GPU pipeline step that determines whether a polygon of a graphical object is visible. 
      -          Geometry shader is a relatively new type of shader. This type of shader can generate new graphics primitives, such as points, lines, and triangles, from those primitives that were sent to the beginning of the graphics pipeline. They take as input a whole primitive, possibly with adjacency information. For example, when operating on triangles, the three vertices are the geometry shader's input. The shader can then emit zero or more primitives, which are rasterized and their fragments ultimately passed to a pixel shader.
      -          Z-buffer -also known as depth buffering, is the management of image depth coordinates in three-dimensional (3-D) graphics, usually done in hardware, sometimes in software. It is one solution to the visibility problem, which is the problem of deciding which elements of a rendered scene are visible, and which are hidden. 
      -          Fragment (pixel) shader –a graphics processing function a computer program that is used to do shading: the production of appropriate levels of color within an image. 
      -          Viewport -the 2D rectangle used to project the 3D scene to the position of a virtual camera. A viewport is a region of the screen used to display a portion of the total image to be shown. 
      -          Interpolation is a process where the software adds new pixels to an image based on the color values of the surrounding pixels. Interpolation is used when an image is up sampled to increase its resolution. Resampling through interpolation is not ideal and often results in a blurry image.

Barycentric coordinates 


       -          Barycentric coordinates are triples of numbers corresponding to masses placed at the vertices of a reference triangle. These masses then determine a point, which is the geometric centroid of the three masses and is identified with coordinates.
       -          Barycentric coordinates are coordinates defined by the vertices of a simplex.
       -          Barycentric or areal coordinates are extremely useful in engineering applications involving triangular subdomains. These make analytic integrals often easier to evaluate, and Gaussian quadrature tables are often presented in terms of area coordinates.
       -          A simplex (plural simplexes or simplices) or n-simplex is an n-dimensional analogue of a triangle.
          


                                    A 3-simplex






WHAT IS STREAM PROCESSOR?




           -          Stream processing is a computer programming paradigm, equivalent to dataflow programming, event stream processing, and reactive programming, that allows some applications to more easily exploit a limited form of parallel processing. 

-          Stream processors are highly efficient computing engines that perform calculations on an input stream and produces an output stream that can be used by other stream processors
-          Stream processors can be grouped in close proximity, and in large numbers, to provide immense parallel processing power.



The GPU receives geometry information from the CPU as an input and provides a picture as an output













Post a Comment

0 Comments