并行化for循环以在多个GPU核心上同时运行?

时间:2011-03-29 13:45:32

标签: matlab

我了解您可以使用matlabpoolparfor并行运行for循环迭代,但是,我想尝试利用大量核心使用我的GPU可以运行大量的同步迭代。我想知道是否有任何内置功能来做到这一点?

据我所知,MATLAB在GPU上运行代码的方法是通过GPUarray,但这似乎并不是一个循环,只是循环中的某些函数。

对于我正在运行的循环,每次迭代都可以独立运行,并且需要在循环外部存在的唯一变量是要处理的数据(三维数组,其中第一个索引是时间,每个迭代在不同的时间运行)和2-D输出数组,其中每次迭代都将结果存储在特定时间。每次都是独立的。

由于

1 个答案:

答案 0 :(得分:1)

使用GPUArray,您可以通过根据MATLAB arrayfun构造算法来并行运行元素运算。实际上,这隐式地循环遍历数组的每个元素,并且可以将MATLAB函数的主体应用于每个元素。该文档是:here

有一个简单的演示:here