最近写了个完全Cholesky分解的程序,双精度运算(单精度下考虑累加误差项也搞不定),5136*5136的矩阵分解时间为3.4秒,比在c++里用串行计算快了两个数量级。然后用matlab的Cholesky函数试了下,结果只有1.9秒!直接泄了气。现在打算考虑直接用CUDA对matlab的矩阵运算来加速,不知效果会如何?
另外,NVIDIA主页上那个《白皮书:使用CUDA加速MathWorks MATLAB》的下载链接貌似失效了,能否劳烦版主大人给我发一份,邮箱:pk82418@gmail.com。
LZ您好,matlab的Cholesky函数可能计算方法较为巧妙,所以比您快也是有可能的,我很少用matlab,所以暂无性能上的评价。
关于在matlab中使用CUDA,您可以去Math Works公司官网看看目前最新的推荐使用方法。(历史上一些支持方法,现在慢慢都不用了。)matlab本身就是以矩阵运算见长的,即使不使用GPU加速,他们的矩阵运算也会使用MKL等高性能库,速度应该也是不慢的。不过考虑到GPU强大的吞吐量,您也可以一试。
NVIDIA主页上面那个pdf我也没有的,主页是其他团队负责维护的,我也不清楚该pdf是否过时。
如果您需要,请先搜索一下网络看看,或者看NVIDIA原厂支持是否有该文档。
祝您好运。