Nvidia NPP nppiFilter与2D内核进行卷积时产生垃圾
我使用典型的莉娜图像作为输入: 这是我对 1D 卷积内核的实验,它产生了良好的输出. #include // provided in CUDA SDK #include // these image libraries are also in CUDA SDK #include #include void test_nppiFilter() { npp::ImageCPU_8u_C1 oHostSrc; npp::loadImage("Lena.pgm", oHostSrc); npp::ImageNPP_8u_C1 oDeviceSrc(oHostSrc); // malloc and memcpy to GPU NppiSize kernelSize = {3, 1}; // dimensions of convolution kernel
52 2023-03-31
编程技术问答社区
CUDA,NPP过滤器
CUDA NPP库支持使用nppifilter_8u_c1r命令对图像进行过滤,但请继续遇到错误.我启用和运行BoxFilternpp示例代码没有问题. eStatusNPP = nppiFilterBox_8u_C1R(oDeviceSrc.data(), oDeviceSrc.pitch(), oDeviceDst.data(), oDeviceDst.pitch(), oSizeROI, oMaskSize, oAnchor); 但是,如果我将其更改为使用nppifilter_8u_c1r,请返回错误-24(npp_texture_bind_error).下面的代码是我对原始BoxFilternpp样本进行的更改. NppiSize oMaskSize = {5,5}; npp::ImageCPU_32s_C1 hostKern
28 2023-03-31
编程技术问答社区
CUDA NPP-未知错误在GPU错误检查时出现
我正在尝试将图像中的所有像素总结,并使用CUDA NPP库获取所有像素的平均值.我的图像是维度w256 x h1024的8-bit unsigned char grayscale图像.我试图遵循声明指针并将相应的NPP型指针传递给NPP函数的所有必需规则. 但是,当我执行GPU错误检查我的代码时,我会得到unknown error.我试图调试它,但是,我似乎无法弄清楚我出错的地方,我想要一些帮助吗? 我还使用OpenCV来进行处理,因此将存在一些OpenCV代码. 编辑:代码已更新 #define gpuErrchk(ans) { gpuAssert((ans), __FILE__, __LINE__); } inline void gpuAssert(cudaError_t code, char *file, int line, bool abort=true) { if (code != cudaSuccess) { fpri
60 2023-03-01
编程技术问答社区
Nvidia NPP nppiFilter与2D内核进行卷积时产生垃圾
我使用典型的莉娜图像作为输入: 这是我对 1D 卷积内核的实验,它产生了良好的输出. #include // provided in CUDA SDK #include // these image libraries are also in CUDA SDK #include #include void test_nppiFilter() { npp::ImageCPU_8u_C1 oHostSrc; npp::loadImage("Lena.pgm", oHostSrc); npp::ImageNPP_8u_C1 oDeviceSrc(oHostSrc); // malloc and memcpy to GPU NppiSize kernelSize = {3, 1}; // dimensions of convolution kernel
26 2023-03-01
编程技术问答社区
如何将Npp8u *转换为CUdeviceptr
我是CUDA驱动程序API接口的新手 Npp8u * src; ...... unsigned char temp; temp = src; CUdeviceptr devPtr; ....... devPtr = (CUdeviceptr)temp; 我尝试像上面一样写转换,是对的! 解决方案 cuDevicePtr实际上是原始指针,而不是手柄. You can see the original architect of the CUDA driver and driver API discuss this 在这里(在此过程中给我学校).因此,如果您有现有的"键入"设备指针,则可以安全地将其施加到cuDevicePtr,反之亦然,例如: cuDevicePtr m; cuMemAlloc(&m, size); Npp8U* p = (Npp8U*)(m); // Pass p to NPP library functions... 是合法的,应该工作.
82 2022-09-01
编程技术问答社区
CUDA,NPP过滤器
CUDA NPP库支持使用nppiFilter_8u_C1R命令过滤图像,但仍会收到错误。我没有问题,让boxFilterNPP示例代码启动并运行。 eStatusNPP = nppiFilterBox_8u_C1R(oDeviceSrc.data(),oDeviceSrc.pitch (), oDeviceDst.data(),oDeviceDst.pitch(), oSizeROI,oMaskSize,oAnchor);但是如果我改变它使用nppiFilter_8u_C1R,eStatusNPP会返回错误-24(NPP_TEXTURE_BIND_ERROR)。下面的代码是我对原始boxFilterNPP示例的更改。 NppiSize oMaskSize = {5,5}; npp :: ImageCPU_32s_C1 hostKernel(5,5); for(int x = 0; x for(int y = 0; y hostKernel.pixe
1428 2022-07-17
编程技术问答社区