如何利用GPU/MatLab加速自定义函数?

vs91vp4v  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(164)

假设我有一个函数f(X),s.t.yi=f(Xi)
现在数组=(x1,x2,……,xn),我们要计算z=f(数组),如何利用GPU加速计算?
也就是说,代码没有反映出GPU的并行加速能力

shape = 40;
shapez = 100000;
b = gpuArray(single(ones(shape,shape,shapez)));
for i=1:shapez
    c =mean(b(:,:,i));
end
disp(['gpu processing time: ', num2str(toc(t1)), ' seconds']);

如果我按如下方式更改代码,它将变得更快。

t1 = tic;
shape = 40;
shapez = 100000;
b = gpuArray(single(ones(shape,shape,shapez)));

disp(['gpu processing time: ', num2str(toc(t1)), ' seconds']);

那么,如果我的算法的基本逻辑是这样的,如何实现它,才能让它被GPU加速?

for i=1:length(array)
    yi = f(xi)
end
yk9xbfzb

yk9xbfzb1#

要使用已有的MatLab GPU加速函数,您可以找到列出的here函数
如果您想实现自己的函数,您可以使用MEX,如其官方文档中所述的here

相关问题