aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2020-03-30 14:09:27 +0100
committerGeorgios Pinitas <georgios.pinitas@arm.com>2020-03-31 13:48:17 +0000
commitafc630fee1c019bfbc191c37d9d7fdf805b0b1d7 (patch)
tree649088729726a44aea6c3bf792436f597efc63a8 /src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
parent5219ed8a3c56db22867cc0c49db93951a7acb36d (diff)
downloadComputeLibrary-afc630fee1c019bfbc191c37d9d7fdf805b0b1d7.tar.gz
COMPMID-3069: Resolve Bfloat16 validation issues.
Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com> Change-Id: Ic1c610cc01064071a7ff8b69ea598c4b0ddbe0ff Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2953 Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com> Reviewed-by: Pablo Marquez <pablo.tello@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp')
-rw-r--r--src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp b/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
index f6dc3a8f43..a41d23f8d7 100644
--- a/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
+++ b/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
@@ -418,6 +418,7 @@ Status NEGEMMConvolutionLayer::validate(const ITensorInfo *input, const ITensorI
const bool append_bias = false;
const bool is_quantized = is_data_type_quantized_asymmetric(data_type);
+ const bool is_bf16 = data_type == DataType::BFLOAT16;
bool skip_im2col = (data_layout == DataLayout::NHWC && kernel_width == 1 && kernel_height == 1 && conv_info.stride().first == 1 && conv_info.stride().second == 1);
// Get convolved dimensions
@@ -463,6 +464,10 @@ Status NEGEMMConvolutionLayer::validate(const ITensorInfo *input, const ITensorI
{
ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(biases, 1, DataType::S32);
}
+ else if(is_bf16)
+ {
+ ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(biases, 1, DataType::F32);
+ }
else
{
ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_TYPES(input, biases);