A GPU is also a great tool for general-purpose computations. There are a few ways to couple it with Wolfram Language:
- CUDALink
- OpenCLLink
- LibraryLink
The first option requires hardware from Nvidia, which is a massive drawback considering there are many other processors on the market capable of crunching numbers. The last option allows integrating any dynamic library written in C/Rust (probably there are other bindings as well) into our Kernel, but the amount of effort required to write a general-purpose GPU library and deal with cross-platform issues is quite cumbersome and defeats the whole purpose of using WL here.
We will go with the most cross-platform and hardware-agnostic solution: OpenCL
🚅