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