From 806b8e856911e6691ede6725c7e2a0e7e0dd6e95 Mon Sep 17 00:00:00 2001 From: Gunes Bayir Date: Wed, 23 Aug 2023 23:28:31 +0100 Subject: Add declare_constant_tile API function in CKW Resolves: COMPMID-6535 Change-Id: I07d8aca96a0fcbd624f828b24513ee0500a14a74 Signed-off-by: Gunes Bayir Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10200 Reviewed-by: Viet-Hoa Do Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Benchmark: Arm Jenkins --- compute_kernel_writer/include/ckw/KernelWriter.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'compute_kernel_writer/include/ckw/KernelWriter.h') diff --git a/compute_kernel_writer/include/ckw/KernelWriter.h b/compute_kernel_writer/include/ckw/KernelWriter.h index d59867fa6f..022ae83999 100644 --- a/compute_kernel_writer/include/ckw/KernelWriter.h +++ b/compute_kernel_writer/include/ckw/KernelWriter.h @@ -27,6 +27,7 @@ #include "ckw/TensorOperand.h" #include "ckw/TileOperand.h" +#include "ckw/types/ConstantData.h" #include "ckw/types/ConvertPolicy.h" #include "ckw/types/Operators.h" @@ -37,13 +38,13 @@ namespace ckw { -class Kernel; - /** Forward Declerations */ +class Kernel; class TensorInfo; class TensorSampler; class TileInfo; +enum class DataType; enum class TargetArchitecture; enum class TargetLanguage; @@ -175,10 +176,19 @@ public: * @param[in] name Name of the tile * @param[in] tile_info Shape and data type of the tile * - * @returns The created tile operand + * @return The created tile operand */ virtual TileOperand declare_tile(const std::string &name, const TileInfo &tile_info) = 0; + /** Declare a constant tile given a @ref:ConstantData object + * + * @param[in] data a @ref ckw::ConstantData object that has the values and the + * underlying data type of the constant tile + * + * @return The created constant tile operand + */ + virtual TileOperand declare_constant_tile(const ConstantData &data) = 0; + /** Load the data from the tensor memory to the tile using the sampling information. * * @param[in] tile_op The tile to be loaded. @@ -240,6 +250,12 @@ protected: /** Get the reference to tensor object from the tensor operand. */ static ITensor &get_tensor(const TensorOperand &operand); + /** Get the values of a constant data object. */ + static const std::vector> &get_values(const ConstantData &data); + + /** Get the data type of a constant data object. */ + static DataType get_data_type(const ConstantData &data); + private: int32_t _id_space{ 0 }; }; -- cgit v1.2.1