使用GPU加速MATLAB代码?
AccelerEyes于2012年12月宣布,它将与Mathworks在GPU代码上合作,并已停止使用MATLAB的产品Jacket:
http://blog.accelereyes.com/blog/2012/12/12/exciting-updates-from-accelereyes/
不幸的是,他们不再销售Jacket许可证。
据我所知,基于ArrayFire的Jacket GPU Array解决scheme比由MATLAB提供的gpuArray解决scheme快得多。
我开始使用gpuArray,但是我发现许多函数执行得不好。 例如一个简单的
myArray(:) = 0
很慢。 我写了一些定制的CUDA-Kernels,但是执行不力的标准MATLABfunction增加了很多开销,即使在整个代码中一直使用gpuArrays。 我通过用手工编写的CUDA代码replace了MATLAB代码来解决了一些问题 – 但我不想重新实现MATLAB标准function。
我缺less的另一个function是稀疏的GPUmatrix。
所以我的问题是:
如何加快由MATLAB提供的糟糕实现的默认GPU实现? 特别是,如何在使用GPU的MATLAB中加速稀疏matrix运算?
MATLAB确实支持基于CUDA的GPU。 您必须从“并行计算工具箱”访问它。 希望这两个链接也有帮助:
并行计算工具箱function
主要特征
用于在多个处理器上运行任务并行algorithm的并行for循环(parfor)
支持支持CUDA的NVIDIA GPU
通过本地运行的工作人员在桌面上充分使用多核