diff options
author | Gunes Bayir <gunes.bayir@arm.com> | 2022-03-10 21:21:01 +0000 |
---|---|---|
committer | Gunes Bayir <gunes.bayir@arm.com> | 2022-03-17 17:41:21 +0000 |
commit | 8a87983c90299dfc7d6fbda3dba312e7603d7074 (patch) | |
tree | ad1299cd902e6b2e5662f3f6e1b8fd12835b8469 /src/core/experimental/dynamic_fusion/ClKernelBuildingAPI.cpp | |
parent | 193cad36d8ff70792562390b554304cc19284f61 (diff) | |
download | ComputeLibrary-8a87983c90299dfc7d6fbda3dba312e7603d7074.tar.gz |
Setup automatic kernel window for dynamic fusion
The window of the fused kernels is equal to the root kernel's window.
For this reason, the following kernels does not change the window and
intermediate tensors have the same shape and info as the destination tensor.
Resolves: COMPMID-5152
Change-Id: I25fe2fab8304ecaabfc2e4ade9bbf31a600a5033
Signed-off-by: Gunes Bayir <gunes.bayir@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7316
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: SiCong Li <sicong.li@arm.com>
Diffstat (limited to 'src/core/experimental/dynamic_fusion/ClKernelBuildingAPI.cpp')
-rw-r--r-- | src/core/experimental/dynamic_fusion/ClKernelBuildingAPI.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/experimental/dynamic_fusion/ClKernelBuildingAPI.cpp b/src/core/experimental/dynamic_fusion/ClKernelBuildingAPI.cpp index e40f9c6da9..6db1ca4cf5 100644 --- a/src/core/experimental/dynamic_fusion/ClKernelBuildingAPI.cpp +++ b/src/core/experimental/dynamic_fusion/ClKernelBuildingAPI.cpp @@ -61,13 +61,15 @@ Status add_tensor_intermed(ClKernelBlueprint &kernel_blueprint, ArgumentID &id) return Status{}; } -Status add_kcomp_gemm_native(ClKernelBlueprint &kernel_blueprint, const ClKernelComponentDescriptor &, const GemmNativeDescriptor &, +Status add_kcomp_gemm_native(ClKernelBlueprint &kernel_blueprint, const ClKernelComponentDescriptor &, + const GemmNativeDescriptor &gemm_native_desc, ArgumentID lhs_id, ArgumentID rhs_id, ArgumentID bias_id, ArgumentID &dst_id) { kernel_blueprint.impl().validate_arg_ids({ lhs_id, rhs_id, bias_id, dst_id }); - kernel_blueprint.impl().add_component( std::make_unique<ClGemmNativeKernelComponent>( + &kernel_blueprint, + gemm_native_desc, SharedVarLink{ lhs_id, SharedVarIO::Input, kernel_blueprint.impl().group(lhs_id) }, SharedVarLink{ rhs_id, SharedVarIO::Input, kernel_blueprint.impl().group(rhs_id) }, SharedVarLink{ dst_id, SharedVarIO::Output, kernel_blueprint.impl().group(dst_id) }, @@ -81,6 +83,7 @@ Status add_kcomp_eltwise_add(ClKernelBlueprint &kernel_blueprint, const ClKernel { kernel_blueprint.impl().add_component( std::make_unique<ClElementwiseAddKernelComponent>( + &kernel_blueprint, SharedVarLink{ src0_id, SharedVarIO::Input, kernel_blueprint.impl().group(src0_id) }, SharedVarLink{ src1_id, SharedVarIO::Input, kernel_blueprint.impl().group(src1_id) }, SharedVarLink{ dst_id, SharedVarIO::Output, kernel_blueprint.impl().group(dst_id) })); @@ -98,6 +101,7 @@ Status add_kcomp_store(ClKernelBlueprint &kernel_blueprint, const ClKernelCompon case StoreType::StoreBlockBoundaryAware: kernel_blueprint.impl().add_component( std::make_unique<ClStoreBlockBoundaryAwareKernelComponent>( + &kernel_blueprint, SharedVarLink{ src_tile, SharedVarIO::Input, kernel_blueprint.impl().group(src_tile) }, SharedVarLink{ dst_tile, SharedVarIO::Output, kernel_blueprint.impl().group(dst_tile) })); break; |