У меня есть вопрос к моей реализации ядра 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?
Вы можете вызвать функцию cuCadd
, например:
result[tid]=cuCadd(result[tid],newValue);
А также убедитесь, что у вас есть #include "cuComplex.h"
или же #include <cuComplex.h>
какой бы ни работал в соответствии с настройками вашего пути.
Других решений пока нет …