diff options
author | SiCong Li <sicong.li@arm.com> | 2023-07-18 17:56:49 +0100 |
---|---|---|
committer | SiCong Li <sicong.li@arm.com> | 2023-07-28 15:29:15 +0000 |
commit | 16b37527906c68885f81a8db35f9d6040d73efec (patch) | |
tree | 9669b5ebda00b3e3b1ac55992c144b09324b5997 /src/dynamic_fusion/sketch/gpu/ckw_driver/IGpuCkwComponentDriver.h | |
parent | 9129549110527fd53655d3e6b61e8e59bed6f97f (diff) | |
download | ComputeLibrary-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.h | 21 |
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 { |