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
0 Comments