Функция NPP возвращает ошибку выполнения ядра nppiFilterRow_8u_C1R CUDA

#nsight #npp

#nsight #npp

Вопрос:

Я использую приложение nvidia nsight для поворота и размытия изображений. Я использую библиотеки NPP для того же, oDeviceDst заполняется данными с вывода функции rotate, которая работает нормально.Код показан ниже: Также обратите внимание, что приведенный ниже фрагмент кода находится в цикле for для некоторых углов поворота.

 npp::ImageNPP_8u_C1 oDeviceDst(768 , 768);

Npp32s masksize = (Npp32s)KERNEL_LENGTH; 

Npp32s anchor = (Npp32s)KERNEL_RADIUS;

NppiSize SzROI ={(int)oDeviceDst_gauss.width(),(int)oDeviceDst_gauss.height()};

std::cout << " anchor " << anchor << std::endl; std::cout << " masksize " << masksize << std::endl;

NppStatus status2 = nppiFilterRow_8u_C1R(oDeviceDst.data(), oDeviceDst.pitch(), oDeviceDst_gauss.data(), oDeviceDst_gauss.pitch(), SzROI, (Npp32s*)h_Kernel, masksize , anchor, int(sumh));

std::cerr << "status of blur is" << status2 << std::endl;
  

Но как только я запускаю ее (удаленно по цели), я получаю статус -1000.
состояние размытия -1000.

Выход

Кто-нибудь сталкивался с подобной проблемой при использовании библиотек NPP.

Комментарии:

1. На основе github.com/NVIDIA/cuda-samples/blob /… , похоже, что выделение не удалось. Проверьте, освобождаются ли предыдущие выделения памяти или изображение слишком большое?

2. Спасибо, Прабинд, хотя теперь другая ошибка: NPP_CUDA_KERNEL_EXECUTION_ERROR = -1000

3. Понял, возникла проблема в одном из параметров nppiRowfilter. Значения ядра были присвоены с хоста, и это должна быть переменная устройства. Теперь ошибки распределителя изображений нет. Хотя ошибка выполнения ядра сохраняется. Спасибо, Прабинд!