Exemple #1
0
        /* Softmax functions: All of the form "output = alpha * Op(inputs) + beta * output" */

        /* Function to perform forward softmax */
        public void SoftmaxForward(cudnnSoftmaxAlgorithm algorithm,
                                   cudnnSoftmaxMode mode,
                                   double alpha,
                                   TensorDescriptor srcDesc,
                                   CudaDeviceVariable <double> srcData,
                                   double beta,
                                   TensorDescriptor destDesc,
                                   CudaDeviceVariable <double> destData
                                   )
        {
            res = CudaDNNNativeMethods.cudnnSoftmaxForward(_handle, algorithm, mode, ref alpha, srcDesc.Desc, srcData.DevicePointer, ref beta, destDesc.Desc, destData.DevicePointer);
            Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cudnnSoftmaxForward", res));
            if (res != cudnnStatus.Success)
            {
                throw new CudaDNNException(res);
            }
        }
        /* Softmax functions: All of the form "output = alpha * Op(inputs) + beta * output" */
        /* Function to perform forward softmax */
        public void SoftmaxForward(cudnnSoftmaxAlgorithm algorithm,
									cudnnSoftmaxMode mode,
									double alpha,
									TensorDescriptor srcDesc,
									CudaDeviceVariable<double> srcData,
									double beta,
									TensorDescriptor destDesc,
									CudaDeviceVariable<double> destData
									)
        {
            res = CudaDNNNativeMethods.cudnnSoftmaxForward(_handle, algorithm, mode, ref alpha, srcDesc.Desc, srcData.DevicePointer, ref beta, destDesc.Desc, destData.DevicePointer);
            Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cudnnSoftmaxForward", res));
            if (res != cudnnStatus.Success) throw new CudaDNNException(res);
        }
		public static extern cudnnStatus cudnnSoftmaxBackward( cudnnHandle handle,
														cudnnSoftmaxAlgorithm algorithm,
														cudnnSoftmaxMode mode,
														ref double alpha,
														cudnnTensorDescriptor srcDesc,
														CUdeviceptr srcData,
														cudnnTensorDescriptor srcDiffDesc,
														CUdeviceptr srcDiffData,
														ref double beta,
														cudnnTensorDescriptor destDiffDesc,
														CUdeviceptr destDiffData
													  );
		public static extern cudnnStatus cudnnSoftmaxForward(  cudnnHandle handle,
														cudnnSoftmaxAlgorithm algorithm,
														cudnnSoftmaxMode mode,
														ref float alpha,
														cudnnTensorDescriptor srcDesc,
														CUdeviceptr srcData,
														ref float beta,
														cudnnTensorDescriptor destDesc,
														CUdeviceptr destData
													 );