summaryrefslogtreecommitdiff
path: root/src/core/CL/CLHelpers.cpp
diff options
context:
space:
mode:
authorJenkins <bsgcomp@arm.com>2019-02-28 12:25:18 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2019-02-28 13:38:08 +0000
commit514be65ad8d3340f53fd9591035352ed285811ba (patch)
treeabe236598d76078a537fd247813e287d5bf34acd /src/core/CL/CLHelpers.cpp
parent3d2d44ef55ab6b08afda8be48301ce3c55c7bc67 (diff)
downloadARMComputeLibrary-514be65ad8d3340f53fd9591035352ed285811ba.tar.gz
arm_compute v19.02
Change-Id: I853a3ecf38f206da13c1b03640c8adf73c20477c
Diffstat (limited to 'src/core/CL/CLHelpers.cpp')
-rw-r--r--src/core/CL/CLHelpers.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/core/CL/CLHelpers.cpp b/src/core/CL/CLHelpers.cpp
index 0947d5897..18ef185ac 100644
--- a/src/core/CL/CLHelpers.cpp
+++ b/src/core/CL/CLHelpers.cpp
@@ -148,7 +148,7 @@ bool dot8_supported(const cl::Device &device)
const GPUTarget gpu_target = get_target_from_name(device_name);
// SW_WORKAROUND: Workaround for DDK revision r14p0.to enable cl_arm_integer_dot_product_int8
- std::set<GPUTarget> sw_workaround_issue = {GPUTarget::G76};
+ std::set<GPUTarget> sw_workaround_issue = { GPUTarget::G76 };
return (device_supports_extension(device, "cl_arm_integer_dot_product_int8") || sw_workaround_issue.count(gpu_target) != 0);
}
@@ -230,4 +230,29 @@ bool cl_winograd_convolution_layer_supported(const Size2D &output_tile, const Si
return (std::find(winograd_configs_nhwc.begin(), winograd_configs_nhwc.end(), p) != winograd_configs_nhwc.end());
}
}
+
+size_t preferred_vector_width(const cl::Device &device, const DataType dt)
+{
+ switch(dt)
+ {
+ case DataType::U8:
+ case DataType::S8:
+ case DataType::QASYMM8:
+ return device.getInfo<CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR>();
+ case DataType::U16:
+ case DataType::S16:
+ return device.getInfo<CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT>();
+ case DataType::U32:
+ case DataType::S32:
+ return device.getInfo<CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT>();
+ case DataType::F16:
+ case DataType::F32:
+ return device.getInfo<CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT>();
+ case DataType::U64:
+ case DataType::S64:
+ return device.getInfo<CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG>();
+ default:
+ return 1;
+ }
+}
} // namespace arm_compute