Changes

Jump to: navigation, search

GPU

467 bytes added, 20:01, 7 August 2019
GPGPU
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) languages all have the same goal: To expose the SIMD-style architecture to the programmer as directly as possible. The underlying thought process behind these languages may be the same, but the different approaches have led to different implementations.
== Khronos OpenCL ==
* OpenCL 2.0 Reference: http://www.khronos.org/registry/OpenCL//sdk/2.0/docs/man/xhtml/
== NVidia CUDA Software overview ==
NVidia CUDA is their general purpose compute framework. CUDA has a C++ compiler based on LLVM / clang, which compiles into an assembly-like language called PTX. NVidia device drivers take PTX and compile that down to the final machine code (called NVidia SASS). NVidia keeps PTX portable between its GPUs, while its SASS assembly language may change from year-to-year as NVidia releases new GPUs.
== AMD Software Overview ==
AMD's original software stack, called AMDGPU-pro, provides OpenCL 1.2 and 2.0 capabilities on Linux and Windows. However, most of AMD's efforts today is on an experimental framework called ROCm + . ROCm is AMD's open source compiler and device driver stack intended for general purpose compute. AMDGPU Pro discussion-pro drivers can run OpenCL 1.2 and OpenCL 2.0 code across Linux and Windows. ROCm supports two languages: HIP (a CUDA-like interface), and OpenCL 2.0. ROCm only works on Linux machines supporting modern hardware, such as PCIe 3.0 and relatively recent GPUs (such as the Rx 580, and Vega GPUs). * ROCm: https://rocm.github. TBDio/
== Other 3rd party tools ==

Navigation menu