【问题标题】:GPU computing in matlabmatlab中的GPU计算
【发布时间】:2015-02-05 00:47:59
【问题描述】:

我的 matlab 版本是 2014a。范数函数内置于 matlab 中的 gpuArray 函数中。我认为当输入是 gpuArray 时它应该返回 gpuArray 类。但在我的matlab中,它返回双倍。谁能告诉我发生了什么?

例子,

a=gpuArray.randn(3,4);
b=norm(a)

b 的类型是“double”而不是“gpuArray”。

谢谢

【问题讨论】:

  • 请问:这是否会导致您的代码出现任何问题,或者仅仅是您观察到的不一致?
  • 不会造成问题。我只是不确定如果我把它放在循环中,这种不一致是否会减慢我的代码。好像每次都在 CPU 和 GPU 之间来回传输。

标签: matlab gpu


【解决方案1】:

不幸的是,正如您所观察到的,这是gpuArray 的实现不一致。一般而言,minmaxsum 等返回与输入数组的值相关的数据的方法返回值为gpuArray,但norm 不会。

【讨论】:

  • 如果我把它放在我的循环中,这会减慢我的代码吗?
  • 对标量的操作通常在 CPU 上更快,因此我建议避免将标量数据放到 GPU 上。所以实际上,如果不一致,这种行为可能是有益的。
  • 非常感谢,埃德里克。
猜你喜欢
  • 2014-09-12
  • 2019-08-06
  • 2014-10-10
  • 2018-08-19
  • 2015-08-21
  • 2011-11-23
  • 2015-04-14
  • 2018-05-14
  • 2016-11-08
相关资源
最近更新 更多