diff options
author | Adnan AlSinan <adnan.alsinan@arm.com> | 2023-07-10 15:20:44 +0100 |
---|---|---|
committer | Adnan AlSinan <adnan.alsinan@arm.com> | 2023-07-14 12:55:26 +0000 |
commit | 4184e86508c3b1a744e9687d1112ba5f65f55eeb (patch) | |
tree | 582520ac5cdf54800a36e8162c1f9b6f0f6f29d8 /src/dynamic_fusion/sketch/gpu/ckw_driver/components/utils/WriterHelper.h | |
parent | a5577dbe4735656e488aa7a47261b993e49b6562 (diff) | |
download | ComputeLibrary-4184e86508c3b1a744e9687d1112ba5f65f55eeb.tar.gz |
Port ClTemplateActivation into Ckw
Resolves COMPMID-6256
Signed-off-by: Adnan AlSinan <adnan.alsinan@arm.com>
Change-Id: I48f6a9dfadefced20802bec1ab4ab843a9deba6e
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9912
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: SiCong Li <sicong.li@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/dynamic_fusion/sketch/gpu/ckw_driver/components/utils/WriterHelper.h')
-rw-r--r-- | src/dynamic_fusion/sketch/gpu/ckw_driver/components/utils/WriterHelper.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/dynamic_fusion/sketch/gpu/ckw_driver/components/utils/WriterHelper.h b/src/dynamic_fusion/sketch/gpu/ckw_driver/components/utils/WriterHelper.h index ca13329335..46c0f4ed8c 100644 --- a/src/dynamic_fusion/sketch/gpu/ckw_driver/components/utils/WriterHelper.h +++ b/src/dynamic_fusion/sketch/gpu/ckw_driver/components/utils/WriterHelper.h @@ -62,6 +62,32 @@ inline void load_lhs_rhs_tiles_and_prepare_sampler(GpuCkwScopedKernelWriter &wri } } +/** Load src and dst tiles of dimension [m0, n0] only when not loaded and prepare the sampler + */ +inline void load_src_dst_tiles_and_prepare_sampler(GpuCkwScopedKernelWriter &writer, GpuCkwComponentArgument *src, GpuCkwComponentArgument *dst, int32_t m0, int32_t n0, SamplerCreator create_sampler) +{ + if(!src->has_tile()) + { + const auto sampler = create_sampler(writer, m0, n0); + writer->op_load_once(src, sampler); + } + else + { + const auto &sampler = src->tile_sampler(); + writer->op_load_once(src, sampler); + } + + auto &src_tile = src->tile(); + const auto &sampler = src->tile_sampler(); + + // Prepare the output tile. + if(!dst->has_tile()) + { + auto &tile = writer->declare_tile("dst_tile", src_tile.tile_info()); + dst->init_virtual_tensor(tile, sampler); + } +} + } // namespace dynamic_fusion } // namespace experimental } // namespace arm_compute |