aboutsummaryrefslogtreecommitdiff
path: root/src/core/CL/CLHelpers.cpp
diff options
context:
space:
mode:
authorMichele Di Giorgio <michele.digiorgio@arm.com>2019-10-09 15:32:39 +0100
committerMichele Di Giorgio <michele.digiorgio@arm.com>2019-10-30 14:44:46 +0000
commitdf4cf57c7394265b27d051cb1cf0152c53659126 (patch)
tree87da5d6abeff65b2cee55b63f73bb268776af560 /src/core/CL/CLHelpers.cpp
parent8b72199f25487040713d1668c998fdde3707413c (diff)
downloadComputeLibrary-df4cf57c7394265b27d051cb1cf0152c53659126.tar.gz
COMPMID-2306: CLDepthwiseConvolution: support for QUANT8_PER_CHANNEL_SYMM
Change-Id: I18c886400daa2dcba0b91011bc4e503d807a4732 Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-on: https://review.mlplatform.org/c/2143 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/CL/CLHelpers.cpp')
-rw-r--r--src/core/CL/CLHelpers.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/core/CL/CLHelpers.cpp b/src/core/CL/CLHelpers.cpp
index a3c73677c7..1132aa4540 100644
--- a/src/core/CL/CLHelpers.cpp
+++ b/src/core/CL/CLHelpers.cpp
@@ -70,6 +70,54 @@ std::string get_cl_type_from_data_type(const DataType &dt)
}
}
+std::string get_cl_promoted_type_from_data_type(const DataType &dt)
+{
+ switch(dt)
+ {
+ case DataType::U8:
+ case DataType::QASYMM8:
+ case DataType::QASYMM8_PER_CHANNEL:
+ return "ushort";
+ case DataType::S8:
+ case DataType::QSYMM8:
+ case DataType::QSYMM8_PER_CHANNEL:
+ return "short";
+ case DataType::U16:
+ case DataType::QASYMM16:
+ return "uint";
+ case DataType::S16:
+ case DataType::QSYMM16:
+ return "int";
+ case DataType::U32:
+ return "ulong";
+ case DataType::S32:
+ return "long";
+ case DataType::F16:
+ return "float";
+ default:
+ ARM_COMPUTE_ERROR("Cannot get promoted OpenCL type for the input data type.");
+ return "";
+ }
+}
+
+std::string get_cl_unsigned_type_from_element_size(size_t element_size)
+{
+ switch(element_size)
+ {
+ case 1:
+ return "uchar";
+ case 2:
+ return "ushort";
+ case 4:
+ return "uint";
+ case 8:
+ return "ulong";
+ default:
+ ARM_COMPUTE_ERROR("Data type not supported");
+ return "";
+ }
+}
+
std::string get_cl_select_type_from_data_type(const DataType &dt)
{
switch(dt)