【发布时间】:2016-04-24 20:01:21
【问题描述】:
这是我的 MATLAB 脚本。
function [ Im ] = findBorders( I )
Im = false(size(I));
I = padarray(I, [1, 1], 1);
[h w] = size(Im);
bkgFound = false;
for row = 1 : h
for col = 1 : w
if I(row + 1, col + 1)
bkgFound = false;
for i = 0:2
for j = 0:2
if ~I(row + i, col + j)
Im(row, col) = 1;
bkgFound = true;
break;
end;
end;
if bkgFound
break;
end;
end;
end;
end;
end;
结束
所以,我需要将其转换为 parfor 循环,以运行到 GPU。
我需要帮助。我读了一些文章,但不知道如何转换它。
【问题讨论】:
-
只是执行顺序操作,GPU 比 CPU 慢。除非您先对其进行矢量化,否则在 GPU 上运行该代码是没有意义的。
-
parfor!= GPU 处理。我什至不确定您是否可以并行化 GPU 代码,正如@Daniel 所说,它更适合矢量化代码。 -
@Adriaan:您可以在工作人员上使用 gpu 数组并行化 gpu 处理,通常每个 gpu 使用一个工作人员。
标签: performance matlab gpu vectorization bsxfun