/* 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 );