Beispiel #1
0
        public static CudnnTensorDescriptor CreateTensor()
        {
            CudnnTensorDescriptorHandle handle = default(CudnnTensorDescriptorHandle);

            Invoke(() => CudnnNativeMethods.cudnnCreateTensor4dDescriptor(out handle));
            Contract.Assume(handle.Pointer != IntPtr.Zero);

            return(new CudnnTensorDescriptor(handle));
        }
        internal CudnnTensorDescriptor(CudnnTensorDescriptorHandle handle)
        {
            if (handle.Pointer == IntPtr.Zero)
            {
                throw new ArgumentException("The handle pointer is null.", "handle");
            }

            Contract.EndContractBlock();

            this.Handle = handle;
        }
Beispiel #3
0
        public void Cudnn_NativeApi_TensorLifecycle()
        {
            CudnnHandle handle = default(CudnnHandle);

            Success(() => CudnnNativeMethods.cudnnCreate(out handle));

            CudnnTensorDescriptorHandle tensorDescriptor = default(CudnnTensorDescriptorHandle);

            Success(() => CudnnNativeMethods.cudnnCreateTensor4dDescriptor(out tensorDescriptor));
            Success(() => CudnnNativeMethods.cudnnDestroyTensor4dDescriptor(tensorDescriptor));
            Success(() => CudnnNativeMethods.cudnnDestroy(handle));
        }