Where is ImageNPP_64F_C1?

I typed the code as follow and it didn’t pass the complie:

#include <ImageIO.h>
#include <ImagesNPP.h>
#include <ImagesCPU.h>

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <fstream>

#include <nppi.h>
#include <helper_string.h>
#include <helper_cuda.h>

#include <cuda_runtime.h>

int main()
	npp::ImageNPP_64f_C1 a;

The error is :

1>c:\programdata\nvidia corporation\cuda samples\v8.0_cudalibraries\common\utilnpp\ImagePacked.h(85): error : class "npp::ImageAllocator<Npp64f, 1ULL>" has no member "Free2D"

I check the ImageAllocatorNPP.h and find there are Npp8u\Npp16u\Npp16s\Npp32f\Npp32s but no Npp64f.

Did I do something wrong or just it actually don’t exist?

I think it’s just not implemented. That library is not officially part of NPP (it is not documented/included in the NPP docs) and it is provided merely as a convenience to help with generation of CUDA sample codes. Apparently none of the NPP CUDA sample codes required an image of that type, so it wasn’t tested.

You can file a bug if you wish at developer.nvidia.com. You could also just implement it yourself. The UtilNPP library is a header only library, and you already have a fully worked example for ImageNPP_32f_C1, so it should be straightforward to add full support for ImageNPP_64f_C1

Thanks, I use cudamalloc instead and it works well. I use that data type in SqrIntegral(), so I would make a bug report to see if it can be fixed