1

我对 cuda 内核的实现有疑问。

我生成了一个 cude 内核,我想在其中添加 cuDoubleComplex 变量的元素。后来我也想对元素做一些乘法。

我尝试了几种方法,但找不到解决方案。

我的功能是:

 __global__ void process(double *fieldRange, double *fieldAzimut, double **recPosition, double **transPosition, double *TimeAxisPulse, double timeStep, cuDoubleComplex *rawData, int nmbrPulses, int nmbrSamples, double carrierFrequency, cuDoubleComplex *result)

我尝试做类似的事情

result[tid]=result[tid]+newValue

其中 newValue 也是一个 cuDoubleComplex。我尝试使用 cublasZaxpy 函数,但我被告知不允许从全局函数调用主机函数

我可以用 cuDoubleComplex 变量在内核中做一个简单的加法吗?

4

1 回答 1

3

您可以调用该函数cuCadd,例如:

result[tid]=cuCadd(result[tid],newValue);

并确保您拥有#include "cuComplex.h"#include <cuComplex.h>根据您的路径设置工作。

于 2013-03-07T12:07:29.080 回答