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