| 1728 | // space in order to speed up the convolution operation. |
| 1729 | template <typename ElementType> |
| 1730 | bool DoConvolveBackwardData( |
| 1731 | Stream* stream, const dnn::FilterDescriptor& filter_descriptor, |
| 1732 | const DeviceMemory<ElementType>& filter_data, |
| 1733 | const dnn::BatchDescriptor& output_descriptor, |
| 1734 | const DeviceMemory<ElementType>& backward_output_data, |
| 1735 | const dnn::ConvolutionDescriptor& convolution_descriptor, |
| 1736 | const dnn::BatchDescriptor& input_descriptor, |
| 1737 | DeviceMemory<ElementType>* backward_input_data, |
| 1738 | const dnn::AlgorithmDesc& algorithm_desc, |
| 1739 | DeviceMemory<uint8>* scratch_memory, |
| 1740 | ProfileResult* output_profile_result) { |
| 1741 | return IsStatusOk( |
| 1742 | DoConvolve( |
| 1743 | ConvolutionKind::BACKWARD_DATA, ToDataType<ElementType>::value, |
| 1744 | ToDataType<ElementType>::value, stream, input_descriptor, |
| 1745 | *backward_input_data, filter_descriptor, filter_data, |
| 1746 | output_descriptor, backward_output_data, convolution_descriptor, |
| 1747 | algorithm_desc, *scratch_memory, output_profile_result), |
| 1748 | !output_profile_result); |
| 1749 | } |
| 1750 | |
| 1751 | template <typename ElementType> |
| 1752 | bool DoConvolveBackwardData( |