0

我有一个严重依赖卷积的代码。它负责 80% 以上的时间运行时间。我想使用 gpu 让它更快,但有些事情我不完全理解,(我还没有权限为我自己测试这个)

  1. 如果我在类的构造函数(从句柄继承)中传递信息以存储在 GPU 内存中(使用gpuArray),它会保留在那里吗?将类作为参数传递给函数会有问题吗?对数据本身执行的操作都可以在 GPU 上完成(我猜无论数组存储在哪里,数组上的循环都可以正常工作)

  2. 我有一个矩阵size(MyMat)=[s, s, b, n],我想在其中存储 n 个[s, s, b]同时计算的大小不同的矩阵(可以在 GPU 上完成的操作)我必须使用 parfor 吗?(我知道在大多数情况下开销使它成为一个坏主意)还是有更快的方法让 GPU 快速完成这项工作?在这种情况下我需要执行的唯一计算是卷积(但它不能全部在单个 convn 操作中完成)

谢谢!

4

1 回答 1

0

1) 只需像使用任何其他变量一样使用 gpuArray。很可能不需要对您的代码进行任何修改,否则您将收到指向该问题的异常。

2) gpuArray 和 parfor 的组合是在多个 gpu 上并行 gpu 计算的典型方法吗?你有多个GPU吗?如果是,请尝试 parfor,如果不是,它可能会更慢,因为只有一名工作人员可以使用 gpu,而所有其他工作人员都必须等待。

于 2016-03-06T06:34:19.960 回答