Library/ManagedCuda/CudaDNN/CudaDNNContext.cs
/// <summary>
/// This function attempts all cuDNN algorithms for
/// cudnnConvolutionBackwardData_v3 and outputs performance metrics to a user-
/// allocated array of cudnnConvolutionBwdDataAlgoPerf_t. These metrics are written
/// in sorted fashion where the first element has the lowest compute time.
/// </summary>
/// <param name="wDesc">Handle to a previously initialized filter descriptor.</param>
/// <param name="dyDesc">Handle to the previously initialized input differential tensor descriptor.</param>
/// <param name="convDesc">Previously initialized convolution descriptor.</param>
/// <param name="dxDesc">Handle to the previously initialized output tensor descriptor.</param>
/// <param name="requestedAlgoCount">The maximum number of elements to be stored in perfResults.</param>
/// <returns>An array to store performance metrics sorted ascending by compute time.</returns>
This function attempts all cuDNN algorithms for
cudnnConvolutionBackwardData_v3 and outputs performance metrics to a user
allocated array of cudnnConvolutionBwdDataAlgoPerf_t. These metrics are written
in sorted fashion where the first element has the lowest compute time.
This function attempts all cuDNN algorithms for cudnnConvolutionBackwardData_v3 and outputs performance metrics to a user allocated array of cudnnConvolutionBwdDataAlgoPerf_t . These metrics are written in sorted fashion where the first element has the lowest compute time .
public cudnnConvolutionBwdDataAlgoPerf[] FindConvolutionBackwardDataAlgorithm(FilterDescriptor wDesc,
                                                            TensorDescriptor dyDesc,
                                                            ConvolutionDescriptor convDesc,
                                                            TensorDescriptor dxDesc,
                                                            int requestedAlgoCount
                                                        )
        {
            cudnnConvolutionBwdDataAlgoPerf[] temp = new cudnnConvolutionBwdDataAlgoPerf[requestedAlgoCount];
            int returnedAlgoCount = 0;
            res = CudaDNNNativeMethods.cudnnFindConvolutionBackwardDataAlgorithm(_handle, wDesc.Desc, dyDesc.Desc, convDesc.Desc, dxDesc.Desc, requestedAlgoCount, ref returnedAlgoCount, temp);
            Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cudnnFindConvolutionBackwardDataAlgorithm", res));
            if (res != cudnnStatus.Success) throw new CudaDNNException(res);
            if (returnedAlgoCount <= 0) return null;
            cudnnConvolutionBwdDataAlgoPerf[] perfResults = new cudnnConvolutionBwdDataAlgoPerf[returnedAlgoCount];
            Array.Copy(temp, perfResults, returnedAlgoCount);
            return perfResults;
        }
public cudnnConvolutionBwdDataAlgoPerf [ ] FindConvolutionBackwardDataAlgorithm ( FilterDescriptor wDesc , TensorDescriptor dyDesc , ConvolutionDescriptor convDesc , TensorDescriptor dxDesc , int requestedAlgoCount ) { cudnnConvolutionBwdDataAlgoPerf [ ] temp = new cudnnConvolutionBwdDataAlgoPerf [ requestedAlgoCount ] ; int returnedAlgoCount = 0 ; res = CudaDNNNativeMethods . cudnnFindConvolutionBackwardDataAlgorithm ( _handle , wDesc . Desc , dyDesc . Desc , convDesc . Desc , dxDesc . Desc , requestedAlgoCount , ref returnedAlgoCount , temp ) ; Debug . WriteLine ( String . Format ( " " , DateTime . Now , " " , res ) ) ; if ( res != cudnnStatus . Success ) throw new CudaDNNException ( res ) ; if ( returnedAlgoCount <= 0 ) return null ; cudnnConvolutionBwdDataAlgoPerf [ ] perfResults = new cudnnConvolutionBwdDataAlgoPerf [ returnedAlgoCount ] ; Array . Copy ( temp , perfResults , returnedAlgoCount ) ; return perfResults ; }
This function attempts all cuDNN algorithms for
cudnnConvolutionBackwardData_v3 and outputs performance metrics to a user
allocated array of cudnnConvolutionBwdDataAlgoPerf_t.
This function attempts all cuDNN algorithms for cudnnConvolutionBackwardData_v3 and outputs performance metrics to a user allocated array of cudnnConvolutionBwdDataAlgoPerf_t .
An array to store performance metrics sorted ascending by compute time.
An array to store performance metrics sorted ascending by compute time .
wDesc
FilterDescriptor
Handle to a previously initialized filter descriptor.
Handle to a previously initialized filter descriptor .
dyDesc
TensorDescriptor
Handle to the previously initialized input differential tensor descriptor.
Handle to the previously initialized input differential tensor descriptor .
convDesc
ConvolutionDescriptor
Previously initialized convolution descriptor.
Previously initialized convolution descriptor .
dxDesc
TensorDescriptor
Handle to the previously initialized output tensor descriptor.
Handle to the previously initialized output tensor descriptor .
requestedAlgoCount
int
The maximum number of elements to be stored in perfResults.
The maximum number of elements to be stored in perfResults .