aboutsummaryrefslogtreecommitdiff
path: root/compute_kernel_writer/include/ckw/TensorInfo.h
diff options
context:
space:
mode:
authorGian Marco Iodice <gianmarco.iodice@arm.com>2023-07-07 11:25:57 +0100
committerViet-Hoa Do <viet-hoa.do@arm.com>2023-07-20 08:48:15 +0000
commitebfdb5a1ea73c2269eec5af492970c2174ab7d0f (patch)
tree5c60d083100118f0a40e629dfa69b7a7373dd7fd /compute_kernel_writer/include/ckw/TensorInfo.h
parent29dc9fc1d3d6e90746ba1173e3318b774dcf7bed (diff)
downloadComputeLibrary-ebfdb5a1ea73c2269eec5af492970c2174ab7d0f.tar.gz
Integrate CLTensorArgument
- Add CLTensorArgument to query the components and storages as OpenCL variables (or by values when possible) - Add caching mechanism in CLTensorArgument to keep track of the components and storages used - Add unit tests Resolves COMPMID-5787 Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com> Change-Id: Ib39e1f77b097e5b907a296fe6b0d41bb4bcd4ffc Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9908 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
Diffstat (limited to 'compute_kernel_writer/include/ckw/TensorInfo.h')
-rw-r--r--compute_kernel_writer/include/ckw/TensorInfo.h72
1 files changed, 7 insertions, 65 deletions
diff --git a/compute_kernel_writer/include/ckw/TensorInfo.h b/compute_kernel_writer/include/ckw/TensorInfo.h
index 63d9f412b6..87cf7c1426 100644
--- a/compute_kernel_writer/include/ckw/TensorInfo.h
+++ b/compute_kernel_writer/include/ckw/TensorInfo.h
@@ -26,85 +26,27 @@
#define COMPUTE_KERNEL_WRITER_INCLUDE_CKW_TENSORINFO_H
#include "ckw/types/DataType.h"
-
+#include "ckw/types/TensorDataLayout.h"
#include <array>
#include <cstdint>
namespace ckw
{
-/** Compute Kernel Writer tensor data layout (or memory format) */
-enum class TensorDataLayout
-{
- Unknown,
- Nhwc,
- Ndhwc
-};
-
-/** Compute Kernel Writer tensor data layout component */
-enum class TensorDataLayoutComponent
-{
- Unknown,
- N,
- D,
- H,
- W,
- C,
-};
-
-/** Compute Kernel Writer tensor component bitmask. The bitmask can be used to retrieve
- * the info from @ref TensorComponent.
- */
-enum class TensorComponentBitmask : uint32_t
-{
- OffsetFirstElement = 0x01000000, // For example, OffsetFirstElement in @ref TensorComponent
- Stride = 0x02000000, // For example, stride0 in @ref TensorComponent
- Dimension = 0x04000000, // For example, Dim0 in @ref TensorComponent
- FoldedDimensions = 0x08000000, // For example, Dim0xDim1 in @ref TensorComponent
-};
-
-/** Compute Kernel Writer tensor component. The tensor components are used to access specific backend-agnostic tensor arguments,
- * such as the tensor dimensions and tensor strides.
- * The data type is represented as an integer. The value of the integer value
- * is assigned to retrieve the information through the @ref TensorComponentBitmask.
- */
-enum class TensorComponent : uint32_t
-{
- Unknown = 0x00000000,
- OffsetFirstElement = 0x01000000,
- Stride0 = 0x02000001,
- Stride1 = 0x02000010,
- Stride2 = 0x02000100,
- Stride3 = 0x02001000,
- Stride4 = 0x02010000,
- Dim0 = 0x04000001,
- Dim1 = 0x04000010,
- Dim2 = 0x04000100,
- Dim3 = 0x04001000,
- Dim4 = 0x04010000,
- Dim1xDim2 = 0x08000110,
- Dim2xDim3 = 0x08001100,
- Dim1xDim2xDim3 = 0x08001110
-};
-
-/** Compute Kernel Writer tensor storage. The tensor storage represents the type of tensor memory object.
- */
-enum class TensorStorage : uint32_t
-{
- Unknown = 0x00000000,
- BufferUint8Ptr = 0x01000000,
- Texture2dReadOnly = 0x02000001,
- Texture2dWriteOnly = 0x02000010,
-};
/** Compute Kernel Writer tensor shape
- * Negative dimensions can be interpreted as dynamic dimensions by the Compute Kernel Writer
+ * The value -1 for the tensor dimension is reserved to dynamic dimensions.
*/
using TensorShape = std::array<int32_t, 5>;
+/** Tensor dimension value reserved to dynamic dimensions */
+constexpr int32_t kDynamicTensorDimensionValue = -1;
+
/** Compute Kernel Writer tensor info */
class TensorInfo
{
public:
+ /** Default constructor */
+ TensorInfo() = default;
/** Constructor
*
* @param[in] dt Tensor data type