CUdeviceptr deviceInputA = new CUdeviceptr();
cuMemAlloc(deviceInputA, size * Sizeof.DOUBLE);
cuMemcpyHtoD(deviceInputA, Pointer.to(inputfingerprint), size * Sizeof.DOUBLE);
cuMemFree(deviceInputA);
Here cuMemFree is not releasing the GPU memory .