Texture memory and NPP

Do NPP functions benefit from passing memory allocated with cudaMallocArray or other specialized allocation functions? I know that there are some functions such as the Compress Label Markers function that requires allocation with cudaMalloc instead of cudaMallocPitched, however on the page regarding NPP-related memory allocation functions it says that (unless otherwise specified) all NPP functions will work with any valid device-allocated memory pointers. If that’s the case, then it would make sense that for functions where locality of the memory is important (e.g. bilinear resize functions) there could be some performance benefit.

A cudaArray is an opaque type. It will not work correctly with most NPP functions I am familiar with. Some NPP functions can accept pitched pointers, these are usually evident because they have an input step parameter (somewhere/somehow).

Most NPP functions I am familiar with, that require a device memory pointer, should be provided a pointer allocated by cudaMalloc or cudaMallocPitch or cudaMallocManaged, or similar. cudaHostAlloc should also work, but I don’t recommend that for performance reasons.