aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGunes Bayir <gunes.bayir@arm.com>2023-07-05 11:39:37 +0100
committerGunes Bayir <gunes.bayir@arm.com>2023-07-06 14:45:59 +0000
commit2ae536a6ff4e7547c3c8d5fc2be8b7e815ca5f3d (patch)
tree49d0cc9d1e8f00e1eab125667eb71f2d9761dda9
parentc9eeee5c84ad817360a1719c538c6e6c0812ec13 (diff)
downloadComputeLibrary-2ae536a6ff4e7547c3c8d5fc2be8b7e815ca5f3d.tar.gz
Implement ITileOperand and set the relationship to CLTile
Partially Resolves: COMPMID-5788 Signed-off-by: Gunes Bayir <gunes.bayir@arm.com> Change-Id: I268cf02e4b1802b1718b39f251e42042e79e7443 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9869 Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
-rw-r--r--compute_kernel_writer/CMakeLists.txt1
-rw-r--r--compute_kernel_writer/include/ckw/ITileOperand.h41
-rw-r--r--compute_kernel_writer/include/ckw/TileInfo.h6
-rw-r--r--compute_kernel_writer/src/ITile.h6
-rw-r--r--compute_kernel_writer/src/ITileOperand.cpp30
-rw-r--r--compute_kernel_writer/src/cl/CLTile.h3
6 files changed, 80 insertions, 7 deletions
diff --git a/compute_kernel_writer/CMakeLists.txt b/compute_kernel_writer/CMakeLists.txt
index 186ab328f5..f739824402 100644
--- a/compute_kernel_writer/CMakeLists.txt
+++ b/compute_kernel_writer/CMakeLists.txt
@@ -121,6 +121,7 @@ target_sources(ckw PRIVATE
src/TensorInfo.cpp
src/TensorUtils.cpp
src/TileInfo.cpp
+ src/ITileOperand.cpp
)
if(CKW_ENABLE_OPENCL)
diff --git a/compute_kernel_writer/include/ckw/ITileOperand.h b/compute_kernel_writer/include/ckw/ITileOperand.h
new file mode 100644
index 0000000000..db39ea0262
--- /dev/null
+++ b/compute_kernel_writer/include/ckw/ITileOperand.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 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/TileInfo.h b/compute_kernel_writer/include/ckw/TileInfo.h
index 06c910c9fd..86a4b441b7 100644
--- a/compute_kernel_writer/include/ckw/TileInfo.h
+++ b/compute_kernel_writer/include/ckw/TileInfo.h
@@ -22,8 +22,8 @@
* SOFTWARE.
*/
-#ifndef COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEINFO_H
-#define COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEINFO_H
+#ifndef COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEINFO
+#define COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEINFO
#include "ckw/Types.h"
@@ -81,4 +81,4 @@ private:
} // namespace ckw
-#endif /* COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEINFO_H */
+#endif /* COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TILEINFO */
diff --git a/compute_kernel_writer/src/ITile.h b/compute_kernel_writer/src/ITile.h
index 15f4a3e623..ef0df2116a 100644
--- a/compute_kernel_writer/src/ITile.h
+++ b/compute_kernel_writer/src/ITile.h
@@ -21,8 +21,8 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-#ifndef COMPUTE_KERNEL_WRITER_SRC_ITILE_H
-#define COMPUTE_KERNEL_WRITER_SRC_ITILE_H
+#ifndef COMPUTE_KERNEL_WRITER_SRC_ITILE
+#define COMPUTE_KERNEL_WRITER_SRC_ITILE
#include "ckw/TileInfo.h"
@@ -134,4 +134,4 @@ public:
};
} // namespace ckw
-#endif /* COMPUTE_KERNEL_WRITER_SRC_ITILE_H */
+#endif /* COMPUTE_KERNEL_WRITER_SRC_ITILE */
diff --git a/compute_kernel_writer/src/ITileOperand.cpp b/compute_kernel_writer/src/ITileOperand.cpp
new file mode 100644
index 0000000000..2da7b7a5bf
--- /dev/null
+++ b/compute_kernel_writer/src/ITileOperand.cpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+#include "ckw/ITileOperand.h"
+
+namespace ckw
+{
+ ITileOperand::~ITileOperand() = default;
+} \ No newline at end of file
diff --git a/compute_kernel_writer/src/cl/CLTile.h b/compute_kernel_writer/src/cl/CLTile.h
index 83d49b7030..285f0b6e58 100644
--- a/compute_kernel_writer/src/cl/CLTile.h
+++ b/compute_kernel_writer/src/cl/CLTile.h
@@ -26,6 +26,7 @@
#include "src/ITile.h"
#include "src/cl/ICLTile.h"
+#include "ckw/ITileOperand.h"
#include <string>
@@ -35,7 +36,7 @@ namespace ckw
class TileInfo;
/** OpenCL specific tile */
-class CLTile : public ICLTile
+class CLTile : public ICLTile, public ITileOperand
{
public:
/** Constructor