【问题标题】:Parallelizing a for loop to run simultaneously on multiple GPU cores?并行化 for 循环以在多个 GPU 内核上同时运行?
【发布时间】:2013-05-18 05:18:33
【问题描述】:

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

据我了解,MATLAB 在 GPU 上运行代码的方法是通过GPUarray,但这似乎并没有并行化循环,只有循环内的某些函数。

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

谢谢

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

    有一个简单的演示:here

    【讨论】:

    • 这实际上非常有用,但是,我正在使用的函数的某些部分无法完全按元素运行所有内容(内存限制)。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2011-05-19
    • 2018-03-09
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    相关资源
    最近更新 更多