1fefed7a2SSrikanth Yalavarthi /* SPDX-License-Identifier: BSD-3-Clause
2fefed7a2SSrikanth Yalavarthi * Copyright (c) 2022 Marvell.
3fefed7a2SSrikanth Yalavarthi */
4fefed7a2SSrikanth Yalavarthi
5fefed7a2SSrikanth Yalavarthi #include <errno.h>
6fefed7a2SSrikanth Yalavarthi #include <stdint.h>
7fefed7a2SSrikanth Yalavarthi
8fefed7a2SSrikanth Yalavarthi #include <rte_mldev.h>
9fefed7a2SSrikanth Yalavarthi #include <rte_string_fns.h>
10fefed7a2SSrikanth Yalavarthi
11fefed7a2SSrikanth Yalavarthi #include "mldev_utils.h"
12fefed7a2SSrikanth Yalavarthi
13fefed7a2SSrikanth Yalavarthi /* Description:
14fefed7a2SSrikanth Yalavarthi * This file implements Machine Learning utility routines, except type conversion routines.
15fefed7a2SSrikanth Yalavarthi */
16fefed7a2SSrikanth Yalavarthi
17fefed7a2SSrikanth Yalavarthi int
rte_ml_io_type_size_get(enum rte_ml_io_type type)18fefed7a2SSrikanth Yalavarthi rte_ml_io_type_size_get(enum rte_ml_io_type type)
19fefed7a2SSrikanth Yalavarthi {
20fefed7a2SSrikanth Yalavarthi switch (type) {
21fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UNKNOWN:
22fefed7a2SSrikanth Yalavarthi return -EINVAL;
23fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_INT8:
24fefed7a2SSrikanth Yalavarthi return sizeof(int8_t);
25fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UINT8:
26fefed7a2SSrikanth Yalavarthi return sizeof(uint8_t);
27fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_INT16:
28fefed7a2SSrikanth Yalavarthi return sizeof(int16_t);
29fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UINT16:
30fefed7a2SSrikanth Yalavarthi return sizeof(uint16_t);
31fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_INT32:
32fefed7a2SSrikanth Yalavarthi return sizeof(int32_t);
33fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UINT32:
34fefed7a2SSrikanth Yalavarthi return sizeof(uint32_t);
35*42f3dcd9SSrikanth Yalavarthi case RTE_ML_IO_TYPE_INT64:
36*42f3dcd9SSrikanth Yalavarthi return sizeof(int64_t);
37*42f3dcd9SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UINT64:
38*42f3dcd9SSrikanth Yalavarthi return sizeof(uint64_t);
39fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_FP8:
40fefed7a2SSrikanth Yalavarthi return sizeof(uint8_t);
41fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_FP16:
42fefed7a2SSrikanth Yalavarthi return sizeof(uint8_t) * 2;
43fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_FP32:
44fefed7a2SSrikanth Yalavarthi return sizeof(uint8_t) * 4;
45fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_BFLOAT16:
46fefed7a2SSrikanth Yalavarthi return sizeof(uint8_t) * 2;
47fefed7a2SSrikanth Yalavarthi default:
48fefed7a2SSrikanth Yalavarthi return -EINVAL;
49fefed7a2SSrikanth Yalavarthi }
50fefed7a2SSrikanth Yalavarthi }
51fefed7a2SSrikanth Yalavarthi
52fefed7a2SSrikanth Yalavarthi void
rte_ml_io_type_to_str(enum rte_ml_io_type type,char * str,int len)53fefed7a2SSrikanth Yalavarthi rte_ml_io_type_to_str(enum rte_ml_io_type type, char *str, int len)
54fefed7a2SSrikanth Yalavarthi {
55fefed7a2SSrikanth Yalavarthi switch (type) {
56fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UNKNOWN:
57fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "unknown", len);
58fefed7a2SSrikanth Yalavarthi break;
59fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_INT8:
60fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "int8", len);
61fefed7a2SSrikanth Yalavarthi break;
62fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UINT8:
63fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "uint8", len);
64fefed7a2SSrikanth Yalavarthi break;
65fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_INT16:
66fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "int16", len);
67fefed7a2SSrikanth Yalavarthi break;
68fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UINT16:
69fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "uint16", len);
70fefed7a2SSrikanth Yalavarthi break;
71fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_INT32:
72fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "int32", len);
73fefed7a2SSrikanth Yalavarthi break;
74fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_UINT32:
75fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "uint32", len);
76fefed7a2SSrikanth Yalavarthi break;
77fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_FP8:
78fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "float8", len);
79fefed7a2SSrikanth Yalavarthi break;
80fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_FP16:
81fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "float16", len);
82fefed7a2SSrikanth Yalavarthi break;
83fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_FP32:
84fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "float32", len);
85fefed7a2SSrikanth Yalavarthi break;
86fefed7a2SSrikanth Yalavarthi case RTE_ML_IO_TYPE_BFLOAT16:
87fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "bfloat16", len);
88fefed7a2SSrikanth Yalavarthi break;
89fefed7a2SSrikanth Yalavarthi default:
90fefed7a2SSrikanth Yalavarthi rte_strlcpy(str, "invalid", len);
91fefed7a2SSrikanth Yalavarthi }
92fefed7a2SSrikanth Yalavarthi }
93