假设我有一个函数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
1条答案
按热度按时间yk9xbfzb1#
要使用已有的MatLab GPU加速函数,您可以找到列出的here函数
如果您想实现自己的函数,您可以使用MEX,如其官方文档中所述的here。