diff options
author | Pablo Marquez Tello <pablo.tello@arm.com> | 2023-12-12 10:09:59 +0000 |
---|---|---|
committer | Pablo Marquez Tello <pablo.tello@arm.com> | 2023-12-12 14:36:16 +0000 |
commit | b526431b1079a86b30a1bf6e905435e7121584f9 (patch) | |
tree | 09956b6447fac37957fe491e78dd4e8d190246ab | |
parent | 391f872c9fd9831cc2298a2a27eccfc21d727cb8 (diff) | |
download | ComputeLibrary-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.json | 14 | ||||
-rw-r--r-- | src/cpu/operators/CpuWinogradConv2d.cpp | 4 |
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; |