The cuDNN library provides optimized performance for convolutional operations. By creating a convolutional layer, we will cover the API's configuration for the forward and backward operations.
The convolutional network layer performs convolution to the input data with its weights. This network architecture is useful when you want to build a neural network that's aware of regional information. Recall from the convolution implementation in Chapter 7, Parallel Programming Patterns in CUDA, that it needs considerable memory bandwidth and requires further optimization to get optimal performance. However, using the cuDNN library, we can obtain the best performance as well since we don't have to reinvent the wheel.
The implementation of a convolutional layer is similar to the fully connected layer implementation. There...