【发布时间】:2021-02-20 17:31:34
【问题描述】:
C++ 标准库有一个名为std::arg() 的函数。它返回其复数参数的相位角(或角度分量),以弧度表示。
我需要在 CUDA 内核中调用类似 std::arg() 的东西。 CUDA Math 库或 CUDA Complex Math 库中是否有等效函数?
【问题讨论】:
-
我查看了
cuComplex.h并没有退出。 CUDA 仅对复数提供基本支持;基本上是 CUBLAS 和 CUFFT 所要求的。您可以轻松地自己计算函数为 arg (x + i y) = atan2 (y, x)。 CUDA 支持 C++ 标准数学函数atan2()。 -
是的。我只是做了这样的事情并且它起作用了: double myPhaseAngle = atan2(cuCimag(myComplexDouble), cuCreal(myComplexDouble));
-
thrust.github.io/doc/… 是的,就是usable in an ordinary CUDA kernel,它不需要大量使用其他推力结构。
标签: math cuda complex-numbers