aboutsummaryrefslogtreecommitdiff
path: root/src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h
diff options
context:
space:
mode:
authorSiCong Li <sicong.li@arm.com>2023-07-18 17:56:49 +0100
committerSiCong Li <sicong.li@arm.com>2023-07-28 15:29:15 +0000
commit16b37527906c68885f81a8db35f9d6040d73efec (patch)
tree9669b5ebda00b3e3b1ac55992c144b09324b5997 /src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h
parent9129549110527fd53655d3e6b61e8e59bed6f97f (diff)
downloadComputeLibrary-16b37527906c68885f81a8db35f9d6040d73efec.tar.gz
Port ElementwiseBinary to CKW part 2
* Add fp16 support * Implement broadcasting to elementwise binary * Implement kernel name and kernel config id * Always use explicit cast in ckw unary, binary and ternary elementwise functions. This is to address the accidental use of double literals, with other benefits. * Refactor TypeConverter for smaller includes Resolves COMPMID-6260 Change-Id: I26b726746f8c0dd7b5942ad379d56f4d7642d15f Signed-off-by: SiCong Li <sicong.li@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9999 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Jakub Sujak <jakub.sujak@arm.com> Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h')
-rw-r--r--src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h b/src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h
index 62255f1cf6..14086f785e 100644
--- a/src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h
+++ b/src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h
@@ -100,6 +100,27 @@ public:
{
return Window{};
}
+ /** Generate the name of the component
+ *
+ * This will be concatenated with other components' names to form the name of the kernel
+ */
+ virtual std::string get_name(const ComponentGroup &comp_group) const
+ {
+ ARM_COMPUTE_UNUSED(comp_group);
+ return "unnamed";
+ }
+ /** Generate the tuner id of the component
+ * This id should capture all the parameters that distinguish one kernel's lws tuning from another.
+ * e.g. two components that are identical in every other way, but have output tensor dimensions should
+ * have different tuner ids, because the lws of one may not be optimal on the other.
+ *
+ * This will be concatenated with other components' tuner id to form the tuner id of the kernel
+ */
+ virtual std::string get_tuner_id(const ComponentGroup &comp_group) const
+ {
+ ARM_COMPUTE_UNUSED(comp_group);
+ return "";
+ }
/** Get component id */
ComponentId id() const
{