aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/CPUUtils.cpp
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2018-10-09 15:13:12 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:55:45 +0000
commitecae3a14746fc7f678735b1a82347bd03f9a397f (patch)
tree4c02d64cb9cbee8d270e2c498cc8ff1655bcdb36 /src/runtime/CPUUtils.cpp
parentdf3b5bb87296fdcde8ef88153f6365d693e80295 (diff)
downloadComputeLibrary-ecae3a14746fc7f678735b1a82347bd03f9a397f.tar.gz
COMPMID-1451: Enable dot kernels in NEGEMMAssembly functions
Change-Id: I9dd26b80025ea3a4c66f5f0bf41b7a98dd0d3aa4 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/152549 Tested-by: bsgcomp <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Diffstat (limited to 'src/runtime/CPUUtils.cpp')
-rw-r--r--src/runtime/CPUUtils.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/runtime/CPUUtils.cpp b/src/runtime/CPUUtils.cpp
index f8feb33838..d81337c2b8 100644
--- a/src/runtime/CPUUtils.cpp
+++ b/src/runtime/CPUUtils.cpp
@@ -339,17 +339,18 @@ void get_cpu_configuration(CPUInfo &cpuinfo)
populate_models_cpuinfo(percpu);
}
int j(0);
- // Update dot product and FP16 support if all CPUs support these features:
- bool all_support_dot = true;
- bool all_support_fp16 = true;
+ // Update dot product and FP16 support if one of the CPUs support these features
+ // We assume that the system does not have mixed architectures
+ bool one_supports_dot = false;
+ bool one_supports_fp16 = false;
for(const auto &v : percpu)
{
- all_support_dot &= model_supports_dot(v);
- all_support_fp16 &= model_supports_fp16(v);
+ one_supports_dot |= model_supports_dot(v);
+ one_supports_fp16 |= model_supports_fp16(v);
cpuinfo.set_cpu_model(j++, v);
}
- cpuinfo.set_dotprod(all_support_dot || hwcaps_dot_support);
- cpuinfo.set_fp16(all_support_fp16 || hwcaps_fp16_support);
+ cpuinfo.set_dotprod(one_supports_dot || hwcaps_dot_support);
+ cpuinfo.set_fp16(one_supports_fp16 || hwcaps_fp16_support);
#else /* !defined(BARE_METAL) && (defined(__arm__) || defined(__aarch64__)) */
ARM_COMPUTE_UNUSED(cpuinfo);
#endif /* !defined(BARE_METAL) && (defined(__arm__) || defined(__aarch64__)) */