Changes

Jump to: navigation, search

GPU

19 bytes removed, 23:46, 7 August 2019
GPGPU
The traditional job of a GPU is to take the x,y,z coordinates of triangles, and map these triangles to screen-space through a matrix multiplication. As video game graphics grew more sophisticated, the number of triangles per scene grew larger. GPUs similarly grew in size to massively parallel behemoths capable of performing billions of transformations hundreds of times per second.
These lists of triangles (as well as their colors, textures, reflectivity, and other attributes), were traditionally are specified in a graphical language or API such as DirectX or OpenGL. But video game programmers demanded more flexibility from their hardware: such as lighting, transparency, reflections, and particles. This flexibility was granted with full scale programming languages, called vertex shaders or pixel shaders, where graphics programmers can customize the GPU pipelines of old.
Eventually, the fixed-functionality of GPUs disappeared, and GPUs became nothing more than massively parallel general purpose computers. Graphical languages, such as DirectX and OpenGL, still call these capabilities "vertex shaders" or "pixel shaders" for historical purposes. But to properly abstract these general purpose capabilities, modern GPGPU languages have been created.
These general purpose GPU (GPGPU) compute languages all have the same goal: To to expose the SIMD-style architecture to the programmer as directly as possible.
== Khronos OpenCL ==

Navigation menu