能否使用GPU运行armadillos计算?是否有办法使用GPU的blas库(例如cuBLAS)与armadillo一起使用?需要注意的是,我完全是新手,对GPU编程一窍不通。
我终于在Ubuntu 20.04上使用Cmake和CUDA找到了一个快速的方法。
根据官方指南,这似乎非常困难,但在Ubuntu 20上使用apt
很好用。
sudo apt install nvidia-cuda-toolkit
在此之后,不要忘记根据文档设置环境变量NVBLAS_CONFIG_FILE
。
网站上的默认内容除了更改CPU BLAS库外都可以使用。对于我来说,libopenblas.a
无法工作,应该设置为libopenblas.so.0
。
对于我来说,手动安装似乎很复杂,因此我只是对cmake
安装方法进行了一些调整。
cmake . -Dopenblas_LIBRARY=<PATH TO NVBLAS LIB>/libnvblas.so
cmake
项目与其他项目没有什么不同,编译Armadillo库时不需要额外的编译标志。
如果出现任何问题,日志文件(默认为nvblas.log
)将提供一些信息。可能是无法打开CPU BLAS库之类的错误。
不,它不是。
你不能拿 CPU 的代码并假设它可以在 GPU 上运行,因为两者具有完全不同的内存模型、硬件、编程风格等等。