aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Marquez Tello <pablo.tello@arm.com>2023-12-12 10:09:59 +0000
committerPablo Marquez Tello <pablo.tello@arm.com>2023-12-12 14:36:16 +0000
commitb526431b1079a86b30a1bf6e905435e7121584f9 (patch)
tree09956b6447fac37957fe491e78dd4e8d190246ab
parent391f872c9fd9831cc2298a2a27eccfc21d727cb8 (diff)
downloadComputeLibrary-b526431b1079a86b30a1bf6e905435e7121584f9.tar.gz
Winograd changes to enable fp16 in armv8a multi_isa builds
* Changes in filelist.json: moved fp16 code from common to fp16 * Replaced the guard __ARM_FEATURE_FP16_VECTOR_ARITHMETIC with ENABLE_FP16_KERNELS. * Resolves COMPMID-6755 Change-Id: I4da1c53d3f9e4734e5e67125265ab4e3fc0dcbe4 Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10865 Benchmark: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Jakub Sujak <jakub.sujak@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--filelist.json14
-rw-r--r--src/cpu/operators/CpuWinogradConv2d.cpp4
2 files changed, 9 insertions, 9 deletions
diff --git a/filelist.json b/filelist.json
index 3fd48e669c..617b01648f 100644
--- a/filelist.json
+++ b/filelist.json
@@ -1125,27 +1125,20 @@
"src/core/NEON/kernels/convolution/common/qasymm8.cpp",
"src/core/NEON/kernels/convolution/common/qsymm8.cpp",
"src/core/NEON/kernels/convolution/common/utils.cpp",
- "src/core/NEON/kernels/convolution/winograd/input_transforms_fp16.cpp",
"src/core/NEON/kernels/convolution/winograd/input_transforms_fp32.cpp",
- "src/core/NEON/kernels/convolution/winograd/output_transforms_fp16.cpp",
"src/core/NEON/kernels/convolution/winograd/output_transforms_fp32.cpp",
- "src/core/NEON/kernels/convolution/winograd/weight_transforms_fp16.cpp",
"src/core/NEON/kernels/convolution/winograd/weight_transforms_fp32.cpp",
- "src/core/NEON/kernels/convolution/winograd/winograd_fp16.cpp",
"src/core/NEON/kernels/convolution/winograd/winograd_fp32.cpp",
- "src/core/NEON/kernels/convolution/winograd/input_transforms/a64_fp16_6x6.cpp",
"src/core/NEON/kernels/convolution/winograd/input_transforms/a64_fp32_6x6.cpp",
"src/core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_1x8.cpp",
"src/core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_4x4.cpp",
"src/core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_6x6.cpp",
- "src/core/NEON/kernels/convolution/winograd/output_transforms/a64_fp16_4x4_3x3.cpp",
"src/core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x2_1x7.cpp",
"src/core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x4_1x5.cpp",
"src/core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x6_1x3.cpp",
"src/core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_2x2_3x3.cpp",
"src/core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_2x2_5x5.cpp",
"src/core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_4x4_3x3.cpp",
- "src/core/NEON/kernels/convolution/winograd/weight_transforms/a64_fp16_4x4_3x3.cpp",
"src/core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_2x2_3x3.cpp",
"src/core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_2x2_5x5.cpp",
"src/core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_4x4_3x3.cpp",
@@ -1162,6 +1155,13 @@
],
"fp16": [
"src/cpu/kernels/directconv2d/nchw/fp16.cpp",
+ "src/core/NEON/kernels/convolution/winograd/winograd_fp16.cpp",
+ "src/core/NEON/kernels/convolution/winograd/input_transforms_fp16.cpp",
+ "src/core/NEON/kernels/convolution/winograd/output_transforms_fp16.cpp",
+ "src/core/NEON/kernels/convolution/winograd/weight_transforms_fp16.cpp",
+ "src/core/NEON/kernels/convolution/winograd/input_transforms/a64_fp16_6x6.cpp",
+ "src/core/NEON/kernels/convolution/winograd/output_transforms/a64_fp16_4x4_3x3.cpp",
+ "src/core/NEON/kernels/convolution/winograd/weight_transforms/a64_fp16_4x4_3x3.cpp",
"src/cpu/kernels/directconv2d/nhwc/neon/fp16.cpp"
]
},
diff --git a/src/cpu/operators/CpuWinogradConv2d.cpp b/src/cpu/operators/CpuWinogradConv2d.cpp
index e4bcdc0b64..7d81aee0e9 100644
--- a/src/cpu/operators/CpuWinogradConv2d.cpp
+++ b/src/cpu/operators/CpuWinogradConv2d.cpp
@@ -122,13 +122,13 @@ bool get_winograd_kernel_implementation(const ITensorInfo
success = arm_conv::winograd::get_implementation<float>(*winograd_impl, &CPUInfo::get(), *conv_args, nthreads,
enable_fast_math, &winograd_cfg, nullptr);
}
-#if defined(__aarch64__) && defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
+#if defined(__aarch64__) && defined(ENABLE_FP16_KERNELS)
else if (data_type == DataType::F16)
{
success = arm_conv::winograd::get_implementation<__fp16>(*winograd_impl, &CPUInfo::get(), *conv_args, nthreads,
enable_fast_math, &winograd_cfg, nullptr);
}
-#endif // defined(__aarch64__) && defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
+#endif // defined(__aarch64__) && defined(ENABLE_FP16_KERNELS)
else
{
success = false;