aboutsummaryrefslogtreecommitdiff
path: root/compute_kernel_writer/include/ckw/TensorInfo.h
diff options
context:
space:
mode:
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