GPU General-Purpose Computation A note: nVidia Tesla cards Popular Methods: Hacks with OpenGL, feedback or perhaps compute shaders CUDA OpenCL There are other methods of course, but these are "popular" According to me CUDA vs. OpenCL CUDA is first to support features of nVidia hardware If you are programming an nVidia card, it is better Very well supported by nVidia Not supported on any other vendor's hardware! No ATI/AMD, the crypto mining value champions OpenCL: Khronos backing, works everywhere May not expose certain nVidia card features OpenCL versions: 1.2 (current on nVidia), 2.0, 2.1, 2.2 Many 2.0 features are supported on nVidia Probably a driver issue rather than hardware Later versions support C++ on the GPU Can be used together with OpenGL More tempting before compute shaders OpenCL: Instead of a rendering pipeline, we have a kernel A kernel encapsulates a program Really, this is not that different from a compute shader Language: C dialect Kinda like GLSL, but not exactly Khronos would like to merge OpenCL into Vulkan That way, you only have to learn this stuff once OpenCL demo, using functions (all in man except as noted): clGetPlatformIDs clGetDeviceIDs clGetDeviceInfo clCreateContext clCreateCommandQueueWithProperties Unlike the others, this one doesn't have a manpage Read clCreateCommandQueue instead clCreateBuffer clCreateProgramWithSource clCreateKernel clSetKernelArg clEnqueueNDRangeKernel clEnqueueReadBuffer man on isoptera is for opencl-1.2 A blog tutorial that might be helpful: https://anteru.net/blog/2012/11/03/2009/index.html It is C++, and not just in a trivial way