以下代码中G2 = G .* G
和G2 = G * G
之间的区别是什么?为什么我得到第一个代码GPU加载100%,第二个我得到GPU负载和内存控制器负载传感器在gpu-z 100%?
X = rand(5000, 'double');
G = gpuArray(X);
classUnderlying(G) % Returns 'single'
for m = 1:5000
G2 = G .* G .* G .* G; % Performed on GPU
end
whos G2 % Result on GPU
X = rand(5000, 'double');
G = gpuArray(X);
classUnderlying(G) % Returns 'single'
for m = 1:5000
G2 = G * G * G * G; % Performed on GPU
end
whos G2 % Result on GPU
答案 0 :(得分:2)
有矩阵乘法(mtimes
)和元素乘法(times
)
答案 1 :(得分:1)
运算符*
用于矩阵乘法,其中维度必须匹配。有时你可能想要通过elemeny乘法或(元素乘法)使用元素,我们使用运算符.*
。
a = 1 1 1
1 1 1
1 1 1
b = 2 2 2
2 2 2
2 2 2
a * b = 6 6 6
6 6 6
6 6 6
a .* b = 2 2 2
2 2 2
2 2 2