DPDK patches and discussions
 help / color / mirror / Atom feed
From: Anup Prabhu <aprabhu@marvell.com>
To: Srikanth Yalavarthi <syalavarthi@marvell.com>,
	Srikanth Yalavarthi <syalavarthi@marvell.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	Shivah Shankar Shankar Narayan Rao <sshankarnara@marvell.com>,
	Jerin Jacob Kollanukkaran <jerinj@marvell.com>,
	Prince Takkar <ptakkar@marvell.com>,
	Parijat Shukla <pshukla@marvell.com>
Subject: RE: [PATCH v4 2/4] mldev: implement ML IO type handling functions
Date: Wed, 1 Feb 2023 13:53:01 +0000	[thread overview]
Message-ID: <BL0PR18MB3748FF6ECCF2D2C02E6DF4C5A5D19@BL0PR18MB3748.namprd18.prod.outlook.com> (raw)
In-Reply-To: <20230201090454.14649-3-syalavarthi@marvell.com>

[-- Attachment #1: Type: text/plain, Size: 4171 bytes --]



-----Original Message-----
From: Srikanth Yalavarthi <syalavarthi@marvell.com> 
Sent: Wednesday, February 1, 2023 2:35 PM
To: Srikanth Yalavarthi <syalavarthi@marvell.com>
Cc: dev@dpdk.org; Shivah Shankar Shankar Narayan Rao <sshankarnara@marvell.com>; Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Anup Prabhu <aprabhu@marvell.com>
Subject: [PATCH v4 2/4] mldev: implement ML IO type handling functions

Implemented ML utility functions to convert IO data type to name, IO format to name and routine to get the size of an IO data type in bytes.

Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
---
 lib/mldev/mldev_utils.c | 113 ++++++++++++++++++++++++++++++++++++++++
 lib/mldev/version.map   |   4 ++
 2 files changed, 117 insertions(+)

Acked-by: Anup Prabhu <aprabhu@marvell.com>

diff --git a/lib/mldev/mldev_utils.c b/lib/mldev/mldev_utils.c index 9dbbf013a0..d2442b123b 100644
--- a/lib/mldev/mldev_utils.c
+++ b/lib/mldev/mldev_utils.c
@@ -2,4 +2,117 @@
  * Copyright (c) 2022 Marvell.
  */
 
+#include <errno.h>
+#include <stdint.h>
+
+#include <rte_mldev.h>
+#include <rte_string_fns.h>
+
 #include "mldev_utils.h"
+
+/* Description:
+ * This file implements Machine Learning utility routines, except type conversion routines.
+ */
+
+int
+rte_ml_io_type_size_get(enum rte_ml_io_type type) {
+	switch (type) {
+	case RTE_ML_IO_TYPE_UNKNOWN:
+		return -EINVAL;
+	case RTE_ML_IO_TYPE_INT8:
+		return sizeof(int8_t);
+	case RTE_ML_IO_TYPE_UINT8:
+		return sizeof(uint8_t);
+	case RTE_ML_IO_TYPE_INT16:
+		return sizeof(int16_t);
+	case RTE_ML_IO_TYPE_UINT16:
+		return sizeof(uint16_t);
+	case RTE_ML_IO_TYPE_INT32:
+		return sizeof(int32_t);
+	case RTE_ML_IO_TYPE_UINT32:
+		return sizeof(uint32_t);
+	case RTE_ML_IO_TYPE_FP8:
+		return sizeof(uint8_t);
+	case RTE_ML_IO_TYPE_FP16:
+		return sizeof(uint8_t) * 2;
+	case RTE_ML_IO_TYPE_FP32:
+		return sizeof(uint8_t) * 4;
+	case RTE_ML_IO_TYPE_BFLOAT16:
+		return sizeof(uint8_t) * 2;
+	default:
+		return -EINVAL;
+	}
+}
+
+void
+rte_ml_io_type_to_str(enum rte_ml_io_type type, char *str, int len) {
+	switch (type) {
+	case RTE_ML_IO_TYPE_UNKNOWN:
+		rte_strlcpy(str, "unknown", len);
+		break;
+	case RTE_ML_IO_TYPE_INT8:
+		rte_strlcpy(str, "int8", len);
+		break;
+	case RTE_ML_IO_TYPE_UINT8:
+		rte_strlcpy(str, "uint8", len);
+		break;
+	case RTE_ML_IO_TYPE_INT16:
+		rte_strlcpy(str, "int16", len);
+		break;
+	case RTE_ML_IO_TYPE_UINT16:
+		rte_strlcpy(str, "uint16", len);
+		break;
+	case RTE_ML_IO_TYPE_INT32:
+		rte_strlcpy(str, "int32", len);
+		break;
+	case RTE_ML_IO_TYPE_UINT32:
+		rte_strlcpy(str, "uint32", len);
+		break;
+	case RTE_ML_IO_TYPE_FP8:
+		rte_strlcpy(str, "float8", len);
+		break;
+	case RTE_ML_IO_TYPE_FP16:
+		rte_strlcpy(str, "float16", len);
+		break;
+	case RTE_ML_IO_TYPE_FP32:
+		rte_strlcpy(str, "float32", len);
+		break;
+	case RTE_ML_IO_TYPE_BFLOAT16:
+		rte_strlcpy(str, "bfloat16", len);
+		break;
+	default:
+		rte_strlcpy(str, "invalid", len);
+	}
+}
+
+void
+rte_ml_io_format_to_str(enum rte_ml_io_format format, char *str, int 
+len) {
+	switch (format) {
+	case RTE_ML_IO_FORMAT_NCHW:
+		rte_strlcpy(str, "NCHW", len);
+		break;
+	case RTE_ML_IO_FORMAT_NHWC:
+		rte_strlcpy(str, "NHWC", len);
+		break;
+	case RTE_ML_IO_FORMAT_CHWN:
+		rte_strlcpy(str, "CHWN", len);
+		break;
+	case RTE_ML_IO_FORMAT_3D:
+		rte_strlcpy(str, "3D", len);
+		break;
+	case RTE_ML_IO_FORMAT_2D:
+		rte_strlcpy(str, "Matrix", len);
+		break;
+	case RTE_ML_IO_FORMAT_1D:
+		rte_strlcpy(str, "Vector", len);
+		break;
+	case RTE_ML_IO_FORMAT_SCALAR:
+		rte_strlcpy(str, "Scalar", len);
+		break;
+	default:
+		rte_strlcpy(str, "invalid", len);
+	}
+}
diff --git a/lib/mldev/version.map b/lib/mldev/version.map index 61955ab701..c2ceedfbb4 100644
--- a/lib/mldev/version.map
+++ b/lib/mldev/version.map
@@ -46,4 +46,8 @@ INTERNAL {
 	rte_ml_dev_pmd_get_dev;
 	rte_ml_dev_pmd_get_named_dev;
 	rte_ml_dev_pmd_release;
+
+	rte_ml_io_type_size_get;
+	rte_ml_io_type_to_str;
+	rte_ml_io_format_to_str;
 };
--
2.17.1


[-- Attachment #2: winmail.dat --]
[-- Type: application/ms-tnef, Size: 23526 bytes --]

  reply	other threads:[~2023-02-01 13:53 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-08 19:35 [PATCH v1 0/4] implementation of ML common code Srikanth Yalavarthi
2022-12-08 19:35 ` [PATCH v1 1/4] common/ml: add initial files for " Srikanth Yalavarthi
2022-12-08 19:35 ` [PATCH v1 2/4] common/ml: add data type conversion routines Srikanth Yalavarthi
2022-12-08 19:35 ` [PATCH v1 3/4] common/ml: add generic type conversion functions Srikanth Yalavarthi
2022-12-08 19:35 ` [PATCH v1 4/4] common/ml: add Arm NEON type conversion routines Srikanth Yalavarthi
2022-12-12  7:16   ` Ruifeng Wang
2022-12-12 17:25     ` Srikanth Yalavarthi
2022-12-12 17:21 ` [PATCH v1 0/4] implementation of ML common code Srikanth Yalavarthi
2022-12-12 17:21   ` [PATCH v2 1/4] common/ml: add initial files for " Srikanth Yalavarthi
2022-12-12 17:21   ` [PATCH v2 2/4] common/ml: add common utility functions Srikanth Yalavarthi
2022-12-12 17:21   ` [PATCH v2 3/4] common/ml: add scalar type conversion functions Srikanth Yalavarthi
2022-12-12 17:21   ` [PATCH v2 4/4] common/ml: add Arm NEON type conversion routines Srikanth Yalavarthi
2022-12-13  9:04     ` Ruifeng Wang
2022-12-20 17:52   ` [PATCH v3 0/4] implementation of ML common code Srikanth Yalavarthi
2022-12-20 17:52     ` [PATCH v3 1/4] common/ml: add initial files for " Srikanth Yalavarthi
2022-12-20 19:04       ` Stephen Hemminger
2022-12-20 19:19         ` [EXT] " Srikanth Yalavarthi
2022-12-20 17:52     ` [PATCH v3 2/4] common/ml: add common utility functions Srikanth Yalavarthi
2022-12-20 17:52     ` [PATCH v3 3/4] common/ml: add scalar type conversion functions Srikanth Yalavarthi
2022-12-20 17:52     ` [PATCH v3 4/4] common/ml: add Arm NEON type conversion routines Srikanth Yalavarthi
2022-12-21  3:08       ` Ruifeng Wang
2022-12-20 19:06     ` [PATCH v3 0/4] implementation of ML common code Stephen Hemminger
2022-12-20 19:17       ` [EXT] " Srikanth Yalavarthi
2023-01-25 13:18     ` Thomas Monjalon
2023-01-25 13:25       ` [EXT] " Srikanth Yalavarthi
2023-01-25 13:55         ` Thomas Monjalon
2023-01-25 14:59           ` Srikanth Yalavarthi
2023-01-26 10:57             ` Thomas Monjalon
2023-01-27  6:40               ` Jerin Jacob
2023-01-27  8:50                 ` Thomas Monjalon
2023-01-27  9:02                   ` Jerin Jacob
2023-01-27  9:26                     ` Thomas Monjalon
2023-01-27 10:28                       ` Jerin Jacob
2023-01-31 13:44                         ` Srikanth Yalavarthi
2023-02-01  9:15                           ` Srikanth Yalavarthi
2023-02-01  9:04 ` [PATCH v4 0/4] Implementation " Srikanth Yalavarthi
2023-02-01  9:04   ` [PATCH v4 1/4] mldev: add headers for internal ML functions Srikanth Yalavarthi
2023-02-01 13:54     ` Anup Prabhu
2023-02-01 15:28       ` Thomas Monjalon
2023-02-01  9:04   ` [PATCH v4 2/4] mldev: implement ML IO type handling functions Srikanth Yalavarthi
2023-02-01 13:53     ` Anup Prabhu [this message]
2023-02-01 14:01     ` Anup Prabhu
2023-02-01 14:15     ` Anup Prabhu
2023-02-01 14:26     ` Anup Prabhu
2023-02-01  9:04   ` [PATCH v4 3/4] mldev: add scalar type conversion functions Srikanth Yalavarthi
2023-02-01  9:04   ` [PATCH v4 4/4] mldev: add Arm NEON type conversion routines Srikanth Yalavarthi
2023-02-01  9:12 ` [PATCH v5 0/4] Implementation of ML common code Srikanth Yalavarthi
2023-02-01  9:12   ` [PATCH v5 1/4] mldev: add headers for internal ML functions Srikanth Yalavarthi
2023-02-01  9:12   ` [PATCH v5 2/4] mldev: implement ML IO type handling functions Srikanth Yalavarthi
2023-02-02  4:20     ` Anup Prabhu
2023-02-01  9:12   ` [PATCH v5 3/4] mldev: add scalar type conversion functions Srikanth Yalavarthi
2023-02-01  9:12   ` [PATCH v5 4/4] mldev: add Arm NEON type conversion routines Srikanth Yalavarthi
2023-02-07 16:00 ` [PATCH v6 0/4] Implementation of ML common code Srikanth Yalavarthi
2023-02-07 16:00   ` [PATCH v6 1/4] mldev: add headers for internal ML functions Srikanth Yalavarthi
2023-03-09 20:44     ` Thomas Monjalon
2023-02-07 16:00   ` [PATCH v6 2/4] mldev: implement ML IO type handling functions Srikanth Yalavarthi
2023-02-07 16:00   ` [PATCH v6 3/4] mldev: add scalar type conversion functions Srikanth Yalavarthi
2023-02-07 16:00   ` [PATCH v6 4/4] mldev: add Arm NEON type conversion routines Srikanth Yalavarthi
2023-03-09 21:37   ` [PATCH v6 0/4] Implementation of ML common code Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BL0PR18MB3748FF6ECCF2D2C02E6DF4C5A5D19@BL0PR18MB3748.namprd18.prod.outlook.com \
    --to=aprabhu@marvell.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=pshukla@marvell.com \
    --cc=ptakkar@marvell.com \
    --cc=sshankarnara@marvell.com \
    --cc=syalavarthi@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).