我有一个严重依赖卷积的代码。它负责80%以上的时间运行。我想使用gpu让它更快,但有些事情我还不完全理解,(我还没有权限自己测试)
-
如果我在类的构造函数中传递信息(从句柄继承)以存储在GPU内存上(使用
gpuArray
),它会保留在那里吗?将类作为参数传递给函数会有问题吗?对数据本身执行的操作都可以在GPU上完成(我猜无论阵列存储在哪里,在阵列上循环都同样有效) -
我有一个矩阵
size(MyMat)=[s, s, b, n]
,我想在其中存储同时计算的n个不同大小的矩阵[s, s, b]
(可以在GPU上进行操作)我必须用帕尔福吗?(我知道在大多数情况下,开销会让它成为一个坏主意)或者有没有更快的方法让GPU快速做到这一点?在这种情况下,我唯一需要执行的计算是卷积(但不可能在一次卷积运算中完成)
谢谢!
1)只需像使用任何其他变量一样使用gpuArray。很可能不需要对您的代码进行任何调整,否则您将收到一个指向该问题的异常。
2) gpuArray和parfor的结合是在多个gpu上并行gpu计算的典型方法?你有多个gpu吗?如果是,尝试parfor,如果不是,它可能会更慢,因为只有一个工作人员可以使用gpu,所有其他工作人员都必须等待。