public static extern cudaError cudaMallocPitch(ref CUdeviceptr devPtr, ref SizeT pitch, SizeT width, SizeT height);
 public curandStatus GenerateUniformDouble(RandGenerator generator, IntPtr outputPtr, SizeT n)
 {
     return curandGenerateUniformDouble(generator, outputPtr, n);
 }
 public curandStatus GenerateNormal(RandGenerator generator, IntPtr outputPtr, SizeT n, float mean, float stddev)
 {
     return curandGenerateNormal(generator, outputPtr, n, mean, stddev);
 }
 private static extern curandStatus curandGenerateLongLong(RandGenerator generator, IntPtr outputPtr, SizeT num);
 private static extern curandStatus curandGenerateNormalDouble(RandGenerator generator, IntPtr outputPtr, SizeT n, double mean, double stddev);
 public static extern cudaError cudaMemcpyAsync(CUdeviceptr dst, IntPtr src, SizeT count, cudaMemcpyKind kind, cudaStream stream);
 public static extern cudaError cudaD3D9ResourceGetMappedSize(ref SizeT pSize, IntPtr pResource, uint face, uint level);
 public static extern cudaError cudaMemcpy(CUdeviceptr dst, [In] uint[] src, SizeT count, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpy2D(CUdeviceptr dst, SizeT dpitch, IntPtr src, SizeT spitch, SizeT width, SizeT height, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpy(CUdeviceptr dst, [In] cuFloatComplex[] src, SizeT count, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpy(IntPtr dst, CUdeviceptr src, SizeT count, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpy([Out] ulong[] dst, CUdeviceptr src, SizeT count, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpy([Out] cuFloatReal[] dst, CUdeviceptr src, SizeT count, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpy([Out] cuDoubleComplex[] dst, CUdeviceptr src, SizeT count, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpy2DToArrayAsync(ref cudaArray dst, SizeT wOffset, SizeT hOffset, IntPtr src, SizeT spitch, SizeT width, SizeT height, cudaMemcpyKind kind, cudaStream stream);
 public static extern cudaError cudaMemcpy2DArrayToArray(ref cudaArray dst, SizeT wOffsetDst, SizeT hOffsetDst, ref cudaArray src, SizeT wOffsetSrc, SizeT hOffsetSrc, SizeT width, SizeT height, cudaMemcpyKind kind);
 public static extern cudaError cudaMemcpyArrayToArray(ref cudaArray dst, SizeT wOffsetDst, SizeT hOffsetDst, ref cudaArray src, SizeT wOffsetSrc, SizeT hOffsetSrc, SizeT count, cudaMemcpyKind kind);
 public static extern cudaError cudaBindTexture(ref SizeT offset, ref textureReference texref, CUdeviceptr devPtr, ref cudaChannelFormatDesc desc, SizeT size);
 public static extern cudaError cudaD3D9ResourceGetMappedPitch(ref SizeT pPitch, ref SizeT pSlicePitch, IntPtr pResource, uint face, uint level);
 public static extern cudaError cudaMemcpy2DAsync(IntPtr dst, SizeT dpitch, CUdeviceptr src, SizeT spitch, SizeT width, SizeT height, cudaMemcpyKind kind, cudaStream stream);
 public static extern cudaError cudaD3D9ResourceGetSurfaceDimensions(ref SizeT pWidth, ref SizeT pHeight, ref SizeT pDepth, IntPtr pResource, uint face, uint level);
 public static extern cudaError cudaMemcpy2DFromArray(CUdeviceptr dst, SizeT dpitch, ref cudaArray src, SizeT wOffset, SizeT hOffset, SizeT width, SizeT height, cudaMemcpyKind kind);
 private static extern curandStatus curandGenerateNormal(RandGenerator generator, IntPtr outputPtr, SizeT n, float mean, float stddev);
 public static extern cudaError cudaMemcpy2DFromArrayAsync(IntPtr dst, SizeT dpitch, ref cudaArray src, SizeT wOffset, SizeT hOffset, SizeT width, SizeT height, cudaMemcpyKind kind, cudaStream stream);
 private static extern curandStatus curandGenerateUniformDouble(RandGenerator generator, IntPtr outputPtr, SizeT num);
 public static extern cudaError cudaMemcpy2DToArray(ref cudaArray dst, SizeT wOffset, SizeT hOffset, CUdeviceptr src, SizeT spitch, SizeT width, SizeT height, cudaMemcpyKind kind);
 public curandStatus GenerateLongLong(RandGenerator generator, IntPtr outputPtr, SizeT num)
 {
     return curandGenerateLongLong(generator, outputPtr, num);
 }
 public static extern cudaError cudaBindTexture2D(ref SizeT offset, textureReference texref, CUdeviceptr devPtr, cudaChannelFormatDesc desc, SizeT width, SizeT height, SizeT pitch);
 public curandStatus GenerateNormalDouble(RandGenerator generator, IntPtr outputPtr, SizeT n, double mean, double stddev)
 {
     return curandGenerateNormalDouble(generator, outputPtr, n, mean, stddev);
 }
 public static extern cudaError cudaMallocHost(ref IntPtr ptr, SizeT size);