From 3c776066a0195f2e99d3503f8b058e468d53b884 Mon Sep 17 00:00:00 2001 From: Gunes Bayir Date: Wed, 12 Jul 2023 14:50:56 +0100 Subject: Rename ITileOperand and introduce vector/scalar interfaces in CKW Partially Resolves: COMPMID-5788 This patch - renames ITileOperand to TileOperand, which seems to be a more intuitive name for the prospective users of Compute Kernel Writer - provides IScalarAccess and IVectorAccess interfaces to be used by Tile classes. It replaces the current IScalarTile and IVectorTile, and forms a more intuitive inheritance hierarchy where each subclass "is a" member of the parent class semantically. Signed-off-by: Gunes Bayir Change-Id: I2b5253b0595e63f8ff3047c608d593b3b364634d Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9910 Reviewed-by: Jakub Sujak Reviewed-by: Viet-Hoa Do Comments-Addressed: Arm Jenkins Benchmark: Arm Jenkins Tested-by: Arm Jenkins --- compute_kernel_writer/include/ckw/ITileOperand.h | 41 ------------------------ compute_kernel_writer/include/ckw/Kernel.h | 4 +-- compute_kernel_writer/include/ckw/KernelWriter.h | 10 +++--- compute_kernel_writer/include/ckw/TileOperand.h | 41 ++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 48 deletions(-) delete mode 100644 compute_kernel_writer/include/ckw/ITileOperand.h create mode 100644 compute_kernel_writer/include/ckw/TileOperand.h (limited to 'compute_kernel_writer/include/ckw') diff --git a/compute_kernel_writer/include/ckw/ITileOperand.h b/compute_kernel_writer/include/ckw/ITileOperand.h deleted file mode 100644 index db39ea0262..0000000000 --- a/compute_kernel_writer/include/ckw/ITileOperand.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2023 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#ifndef COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEOPERAND -#define COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEOPERAND - -namespace ckw -{ - -/** Tile operand which can be either scalar, vector or 2D tile. */ -class ITileOperand -{ -public: - /* Destructor */ - virtual ~ITileOperand(); -}; - -} // namespace ckw - -#endif /* COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEOPERAND */ diff --git a/compute_kernel_writer/include/ckw/Kernel.h b/compute_kernel_writer/include/ckw/Kernel.h index 54e7ca33fd..d93ed6f1d3 100644 --- a/compute_kernel_writer/include/ckw/Kernel.h +++ b/compute_kernel_writer/include/ckw/Kernel.h @@ -32,7 +32,7 @@ namespace ckw // Forward Declerations class TileInfo; -class ITileOperand; +class TileOperand; enum class TargetLanguage; @@ -59,7 +59,7 @@ public: const std::string &source_code() const; /** Add a tile operand */ - virtual ITileOperand &add_operand(const std::string &name, const TileInfo &tile_info) = 0; + virtual TileOperand &add_operand(const std::string &name, const TileInfo &tile_info) = 0; private: TargetLanguage _language; diff --git a/compute_kernel_writer/include/ckw/KernelWriter.h b/compute_kernel_writer/include/ckw/KernelWriter.h index f1635c6449..85ae47f686 100644 --- a/compute_kernel_writer/include/ckw/KernelWriter.h +++ b/compute_kernel_writer/include/ckw/KernelWriter.h @@ -25,7 +25,7 @@ #ifndef CKW_INCLUDE_CKW_KERNELWRITER_H #define CKW_INCLUDE_CKW_KERNELWRITER_H -#include "ckw/ITileOperand.h" +#include "ckw/TileOperand.h" #include #include @@ -103,23 +103,23 @@ public: * * @returns The created tile operand */ - virtual ITileOperand &declare_tile(const std::string &name, const TileInfo &tile_info) = 0; + virtual TileOperand &declare_tile(const std::string &name, const TileInfo &tile_info) = 0; protected: int32_t id_space() const; /** Pure virtual function to be overridden by language specific subclasses to add a tile operand to the kernel */ - virtual ITileOperand &add_operand(const std::string &name, const TileInfo &tile_info) = 0; + virtual TileOperand &add_operand(const std::string &name, const TileInfo &tile_info) = 0; /** Add a tile operand to the operand list */ - ITileOperand &add_operand(std::unique_ptr &operand_ptr); + TileOperand &add_operand(std::unique_ptr &operand_ptr); /** Generate full variable name by prefixing it with id space */ std::string generate_full_name(const std::string &name) const; private: int32_t _id_space{ 0 }; - std::set> _operands {}; + std::set> _operands {}; }; } // namespace ckw diff --git a/compute_kernel_writer/include/ckw/TileOperand.h b/compute_kernel_writer/include/ckw/TileOperand.h new file mode 100644 index 0000000000..abd3e0ac97 --- /dev/null +++ b/compute_kernel_writer/include/ckw/TileOperand.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 Arm Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef CKW_INCLUDE_CKW_TILEOPERAND +#define CKW_INCLUDE_CKW_TILEOPERAND + +namespace ckw +{ + +/** Tile operand which can be either scalar, vector or 2D tile. */ +class TileOperand +{ +public: + /* Destructor */ + virtual ~TileOperand(); +}; + +} // namespace ckw + +#endif /* COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEOPERAND */ -- cgit v1.2.1