主要内容

在GPU上使用复数

图形处理器使用复数的条件

如果在GPU上运行的函数的输出可能很复杂,则必须显式指定其输入参数为复杂复杂的函数。这适用于操作的函数gpuArray对象直接连接到所操作的函数gpuArray数据使用arrayfun

当创建一个gpuArray有负面的成分,使用G = gpuArray(复杂的(x)),则可以成功执行sqrt (G).例如,

X = [-1 0 1];G = gpuArray(复杂的(x));rootG = sqrt (G)
0.000 + 1.0000i 0.000 + 0.000 i 1.000 + 0.000 i

如果结果是agpuArray对于复数据,如果所有虚部都为零,这些虚部保留,数据保持复。这可能导致在对数据进行操作时执行不必要的计算,例如,排序而且伊斯雷尔

如果使用arrayfun,函数输入可以指定为arrayfun调用。例如,

X = [-1 0 1];G = gpuArray (x);A = arrayfun(@(p)√(complex(p)), G)
0.000 + 1.0000i 0.000 + 0.000 i 1.000 + 0.000 i

返回复杂数据的函数

这个表列出了可能返回复杂数据的函数,以及输出保持实数的输入范围。

函数 实际输出的输入范围
这些“可信赖医疗组织”(x) abs (x) < = 1
作用(x) x > = 1
acoth (x) abs (x) > = 1
正式启动(x) abs (x) > = 1
asec (x) abs (x) > = 1
asech (x) 0 <= x <= 1
正如(x) abs (x) < = 1
atanh (x) abs (x) < = 1
日志(x) x > = 0
log1p (x) x > = 1
log10 (x) x > = 0
log2 (x) x > = 0
功率(x, y) x > = 0
reallog (x) x > = 0
realsqrt (x) x > = 0
sqrt (x) x > = 0

另请参阅

|

相关的话题

Baidu
map