我正在寻找有关线性稀疏代数问题的成熟 C++ 求解器的建议。目标是在或多或少与 GPU 硬件无关的库/框架之间进行选择,这些库/框架可以在 Linux 和 Windows 上编译,并且对主机设备内存有相当高的控制。我目前的研究范围缩小到以下候选人:
- CUDA - 成熟,超过 BLAS,跨平台,仅在 NVIDIA 上运行
- OpenCL - 成熟,CUDA 的竞争对手
- HIP - 不太成熟,但从 CUDA 中挑选了很多东西,也可以在 NVIDIA 和 AMD 上运行,在 OpenCL 和 CUDA 之间移植没有成本
- Intel One API (DPC++) - 实现SYCL,现在似乎只是 MKL/LAPACK 包装器,不确定它如何与 GPU 系统一起使用,因为 MKL 更以 CPU 为中心 - 似乎不成熟
- Magma - 成熟,看起来像 CUDA 的主要竞争对手,较小的社区
我即将开始使用 CUDA,因为它在工具包中有很多示例,然后可能会迁移到 HIP(使用hipify)或英特尔的 DPC++ SYCL指南。
您是否有链接/文章/意见可以帮助我挑战这些考虑?