考虑这行代码:
gpuArray(-1)^0.5;
结果是:
答案= 0.0000 + 1.0000i
现在考虑以下代码行:
gpuArray(-1).^0.5;
结果是:
使用错误。^ POWER:需要返回一个复杂的结果,但这不支持实际输入 X 和 Y on 显卡。请改用 POWER(COMPLEX(X), COMPLEX(Y,0))。
这个问题显然与double -> complex double
GPU 上的转换有关,这是不允许的。确实,当我应用解决方法(文档中也提到过)时,它解决了问题 - 但我不明白为什么。
有人会对此有所了解吗?这是 VRAM 的一些限制吗?我正在使用的特定卡(我的是 GTX 660,CC 为 3.0)?MATLAB 的实现(我使用的是 R2018b)?操作系统?