在下面的代码中,G2 = G .* G和G2 = G * G有什么区别?为什么我得到的第一个代码GPU负载100%,第二个我得到GPU负载和内存控制器负载传感器,两者都在100%上的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 GPUX = 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发布于 2014-01-16 19:29:59
有矩阵乘法(mtimes)和元素乘法(times)。
http://www.mathworks.de/de/help/matlab/ref/mtimes.html
http://www.mathworks.de/de/help/matlab/ref/times.html
发布于 2014-01-16 19:31:10
运算符*用于矩阵乘法,其中尺寸必须匹配。有时,您可能希望使用元素按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 2https://stackoverflow.com/questions/21171006
复制相似问题