【发布时间】:2014-11-11 06:46:23
【问题描述】:
我想在 GPUarray 中取两个矩阵的加权和以加快速度。例如我在 cpu 上的代码如下:
mat1 = rand(19,19);
mat2= rand(19,19);
Receptive_fieldsize = [4,3];
overlap = 1;
Output = GetweightedSum(mat1,mat2, Receptive_fieldsize,overlap); %this will output in an 6x6 matrix
我的函数体在哪里:
function Output = GetweightedSum(mat1,mat2, RF,overlap)
gap = RF(1) - overlap;
size_mat = size(mat1);
output_size=[6,6];
for u=1: output_size(1)
for v=1: output_size(2)
min_u = (u - 1) * gap + 1;
max_u = (u - 1) * gap + RF(1);
min_v = (v - 1) * gap + 1;
max_v = (v - 1) * gap + RF(2);
input1 = mat1(min_u:max_u,min_v:max_v);
input2 = mat2(min_u:max_u,min_v:max_v);
Output(u,v) = sum(sum(input1 .*input2));
end
end
如何将其转换为 GPUfunciton。我可以直接做吗,或者我可以在GPU代码中使用for循环。我对 GPU 完全陌生,所以对此一无所知。 如果有人指导我,或者将上面的代码更改为 GPU 功能的参考,我将不胜感激,以便我可以从中学习。 问候
【问题讨论】:
-
@Divakar 纠正了这一点。目前避免这种情况。
标签: matlab neural-network gpu matrix-multiplication