I am looking for recommendations on matured C++ solver for Linear Sparse Algebra problems. The goal is to select between more or less GPU hardware agnostic libraries/frameworks that can be compiled on both Linux and Windows with quite high control on host-device memory. My current research narrows down to the following candidates:
- CUDA - matured, more than BLAS, cross platform, run on NVIDIA only
- OpenCL - matured, competitor to CUDA
- HIP - less matured, but picks lot from CUDA, runs on both NVIDIA & AMD too, no cost on porting between OpenCL and CUDA
- Intel One API (DPC++) - implements SYCL, seems to be only MKL/LAPACK wrapper now, not sure how it works with GPU system, since MKL is more CPU-centric - seems immature
- Magma - matured, looks like big competitor to CUDA, smaller community
I am close to start with CUDA, since it has a lot of examples in the toolkit, and then potentially migrate to HIP (with hipify) or to Intel's DPC++ SYCL guide.
Do you have a link/article/opinion that will help me in challenging these considerations?