matlab中的GPU计算

matlab中的GPU计算,matlab,gpu,Matlab,Gpu,我的matlab版本是2014a。模函数是在matlab的gpuArray函数中建立的。我认为当输入为gpuArray时,它应该返回gpuArray类。但在我的matlab中,它返回双精度。谁能告诉我发生了什么事 例如 a=gpuArray.randn(3,4); b=norm(a) b的类型是“double”而不是“gpuArray” 谢谢不幸的是,您发现在gpuArray的实现中存在不一致之处。一般来说,返回与输入数组的值相关的数据的方法,如min、max、sum等。返回值为gpuArra

我的matlab版本是2014a。模函数是在matlab的gpuArray函数中建立的。我认为当输入为gpuArray时,它应该返回gpuArray类。但在我的matlab中,它返回双精度。谁能告诉我发生了什么事

例如

a=gpuArray.randn(3,4);
b=norm(a)
b的类型是“double”而不是“gpuArray”


谢谢

不幸的是,您发现在
gpuArray
的实现中存在不一致之处。一般来说,返回与输入数组的值相关的数据的方法,如
min
max
sum
等。返回值为
gpuArray
,但
norm
不返回值。

我可以问一下:这会导致代码出现任何问题吗,或者这仅仅是你观察到的不一致?它不会引起问题。如果我将代码放入循环中,我只是不确定这种不一致性是否会降低代码的速度。似乎每次都要在CPU和GPU之间来回传输。如果我将代码放入循环,会不会降低代码的速度?在CPU上对标量的操作通常更快,因此我建议避免将标量数据放入GPU。所以实际上,如果不一致,这种行为可能是有益的。非常感谢,艾德里克。