【发布时间】:2013-07-27 19:57:46
【问题描述】:
我有一个严重依赖卷积的代码。它负责 80% 以上的时间运行时间。 我想使用 gpu 让它更快,但有些东西我不完全理解,(我还没有权限为我自己测试这个)
如果我在类的构造函数中传递信息(从句柄继承)以存储在 GPU 内存中(使用
gpuArray),它会保留在那里吗?将类作为参数传递给函数会有问题吗? 对数据本身执行的操作都可以在 GPU 上完成(我猜无论数组存储在哪里,循环数组都可以正常工作)我有一个矩阵
size(MyMat)=[s, s, b, n],我想在其中存储 n 个同时计算的大小为[s, s, b]的不同矩阵(操作可以在 GPU 上完成) 我必须使用parfor吗? (我知道在大多数情况下开销使它成为一个坏主意)还是有更快的方法让 GPU 快速完成这项工作?在这种情况下我需要执行的唯一计算是卷积(但不能全部在单个 convn 操作中完成)
谢谢!
【问题讨论】:
-
不完全是你问的,但你考虑过使用 fftfilt 吗?这是在 FFT 算法的帮助下使用重叠相加方法的卷积,比直接卷积要快得多。顺便说一句:这可能也可以在 GPU 上运行。
-
我已经问了另一个问题,这可能是一个答案。但是那里的评论者测试了 FFT 卷积,并说我使用的矩阵大小比较慢。