85
edits
Changes
GPU
,→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. And as the number of triangles and polygons grew to make more sophisticated models, GPUs would create massively parallel architectures capable of performing hundreds of millions of transformations hundreds of times per second.
These lists of triangles (as well as their colors, textures, reflectivity, and other attributes), were traditionally specified in a graphical language such as DirectX or OpenGL. But video game programmers demanded more and more flexibility from their hardware: such as lighting, transparency, reflections, and particles. GPUs began to provide general purpose computational abilities to allow the This flexibility was granted with full scale programming languages, called vertex shaders or pixel shaders, where graphics programmer programmers can customize the ability to tweak effects and customize themvertex-processing or pixel-processing portions of their graphical code.
Eventually, the graphics fixed-functionality of GPUs disappeared, and GPUs became nothing more than massively parallel general purpose computers. Graphical languages , such as DirectX and OpenGL looked more like a normal programming language, albeit with weird SIMD-behavior and an odd underlying hardware architecture. Still, the graphics languages were not designed for general purpose compute: relying upon still call these capabilities "vertex shaders", or "pixel shaders" and "geometry" shaders to get the job donefor historical purposes. While programming pixel-shaders But to get compute is possibleproperly abstract these general purpose capabilities, it is far easier to modern GPGPU languages have a dedicated language where the programmer can purely think in terms of SIMD Parallel computebeen created.
== Khronos OpenCL ==
== AMD Software Overview ==
ROCm + AMDGPU Pro discussion . TBD
== Other 3rd party tools ==