aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels/winograd/winograd_layer.cpp
diff options
context:
space:
mode:
authorPablo Tello <pablo.tello@arm.com>2018-01-23 09:36:04 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:45:00 +0000
commitd6ca478a7e410f8f529c2e505305b46d9fe21a9b (patch)
tree5c50c06e07f812890f127b1c4933996987f74f17 /src/core/NEON/kernels/winograd/winograd_layer.cpp
parentd05dce46a14a7b67f322328ecd95bf96bdd30bae (diff)
downloadComputeLibrary-d6ca478a7e410f8f529c2e505305b46d9fe21a9b.tar.gz
COMPMID-784: Added support for biases in WinogradLayer.
1) Updated to the latest code from the RSH repo. 2) Moved winograd transforms into kernels. 3) Added support for biases Change-Id: I7f39f34a599b49d7d9b549cc10a4f4d4a8007ab8 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/117474 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/winograd/winograd_layer.cpp')
-rw-r--r--src/core/NEON/kernels/winograd/winograd_layer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/NEON/kernels/winograd/winograd_layer.cpp b/src/core/NEON/kernels/winograd/winograd_layer.cpp
index 689ecba5fb..f16d62c0ef 100644
--- a/src/core/NEON/kernels/winograd/winograd_layer.cpp
+++ b/src/core/NEON/kernels/winograd/winograd_layer.cpp
@@ -157,6 +157,7 @@ WinogradConvolutionLayer(
TIn* const winograd_weights, /** Pointer to storage for weight tensor in the Winograd domain. Must be at least the size returned by `get_weight_storage_size`. */
const TIn* const input, /** Pointer to NHWC ordered input tensor, in the spatial domain. */
TIn* const winograd_input, /** Pointer to working space for the input tensor in the Winograd domain. Must be at least the size returned by `get_input_storage_size`. */
+ const TOut* const biases, /** Pointer to biases vector. */
TOut* const output, /** Pointer to NHWC ordered output tensor, in the spatial domain. */
TOut* const winograd_output /** Pointer to working space for the output tensor in the Winograd domain. Must be at least the size returned by `get_output_storage_size`. */
) : _kernel_shape(n_output_channels, KernelRows, KernelCols, n_input_channels),
@@ -193,7 +194,7 @@ WinogradConvolutionLayer(
winograd_input, winograd_weights, winograd_output
),
output_transform(
- winograd_output, _output_matrix_stride, _output_matrix_row_stride,
+ winograd_output, _output_matrix_stride, _output_matrix_row_stride, biases,
output, n_batches, _n_output_rows, _n_output_cols, n_output_channels
)
{
@@ -202,3 +203,4 @@ WinogradConvolutionLayer(
// Instantiate valid implementations.
template class WinogradConvolutionLayer<2, 2, 3, 3, float, float>;
template class WinogradConvolutionLayer<4, 4, 3, 3, float, float>;
+template class WinogradConvolutionLayer<2, 2, 5, 5, float, float>;