Операции с cuDoubleComplex внутри cuda-kernel

У меня есть вопрос к моей реализации ядра 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?

1

Решение

Вы можете вызвать функцию cuCadd, например:

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

А также убедитесь, что у вас есть #include "cuComplex.h" или же #include <cuComplex.h> какой бы ни работал в соответствии с настройками вашего пути.

3

Другие решения

Других решений пока нет …