Changes

Jump to: navigation, search

GPU

75 bytes added, 17:20, 28 August 2019
GPGPU
The traditional job of a GPU is to take the [https://en.wikipedia.org/wiki/Three-dimensional_space x,y,z coordinates] of [https://en.wikipedia.org/wiki/Triangle_strip triangles], and [https://en.wikipedia.org/wiki/3D_projection map] these triangles to [https://en.wikipedia.org/wiki/Glossary_of_computer_graphics#screen_space screen space] through a [https://en.wikipedia.org/wiki/Matrix_multiplication 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 were specified in Graphics APIs like [https://en.wikipedia.org/wiki/DirectX DirectX]. But video game programmers demanded more flexibility from their hardware: such as lighting, transparency, and reflections. This flexibility was granted with specialized programming languages, called [https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertex shaders] or [https://en.wikipedia.org/wiki/Shader#Pixel_shaders pixel shaders]. GPUs evolved to accelerate general purpose compute from pixel shader and vertex shader programmers, and even merged the functionality into "universal" shaders (which can perform either vertex shading or pixel shading).
To better support more complex Vertex Shaders and Pixel ShadersToday, the general purpose compute portion of GPUs became wider and faster. Eventually, general purpose compute languages were designed these universal shaders are flexible enough to leverage the provide General Purpose portion of the GPU compute for GPUs (GPGPU programming). GPGPU languages, such as OpenCL or CUDA, even outside of is how the graphical setting they were originally designed forprogrammer can access this capability.
== Khronos OpenCL ==

Navigation menu