xref: /dpdk/app/test-mldev/ml_options.h (revision 671e9c2013b9c921cb13e918a7a9a717101d0556)
1ac930a55SSrikanth Yalavarthi /* SPDX-License-Identifier: BSD-3-Clause
2ac930a55SSrikanth Yalavarthi  * Copyright (c) 2022 Marvell.
3ac930a55SSrikanth Yalavarthi  */
4ac930a55SSrikanth Yalavarthi 
5ac930a55SSrikanth Yalavarthi #ifndef ML_OPTIONS_H
6ac930a55SSrikanth Yalavarthi #define ML_OPTIONS_H
7ac930a55SSrikanth Yalavarthi 
8ac930a55SSrikanth Yalavarthi #include <stdbool.h>
9ac930a55SSrikanth Yalavarthi #include <stdint.h>
10ac930a55SSrikanth Yalavarthi 
11ac930a55SSrikanth Yalavarthi #define ML_TEST_NAME_MAX_LEN 32
12bb38d854SSrikanth Yalavarthi #define ML_TEST_MAX_MODELS   8
13ac930a55SSrikanth Yalavarthi 
14ac930a55SSrikanth Yalavarthi /* Options names */
15ac930a55SSrikanth Yalavarthi #define ML_TEST		("test")
16ac930a55SSrikanth Yalavarthi #define ML_DEVICE_ID	("dev_id")
17ac930a55SSrikanth Yalavarthi #define ML_SOCKET_ID	("socket_id")
18f6661e6dSSrikanth Yalavarthi #define ML_MODELS	("models")
19bbd272edSSrikanth Yalavarthi #define ML_FILELIST	("filelist")
20*671e9c20SAnup Prabhu #define ML_QUANTIZED_IO ("quantized_io")
21bbd272edSSrikanth Yalavarthi #define ML_REPETITIONS	("repetitions")
2239890f07SSrikanth Yalavarthi #define ML_BURST_SIZE	("burst_size")
23c0e87165SSrikanth Yalavarthi #define ML_QUEUE_PAIRS	("queue_pairs")
24c0e87165SSrikanth Yalavarthi #define ML_QUEUE_SIZE	("queue_size")
25da679339SSrikanth Yalavarthi #define ML_TOLERANCE	("tolerance")
265a82bc33SSrikanth Yalavarthi #define ML_STATS	("stats")
27ac930a55SSrikanth Yalavarthi #define ML_DEBUG	("debug")
28ac930a55SSrikanth Yalavarthi #define ML_HELP		("help")
29ac930a55SSrikanth Yalavarthi 
30f6661e6dSSrikanth Yalavarthi struct ml_filelist {
31f6661e6dSSrikanth Yalavarthi 	char model[PATH_MAX];
32bbd272edSSrikanth Yalavarthi 	char input[PATH_MAX];
33bbd272edSSrikanth Yalavarthi 	char output[PATH_MAX];
34da679339SSrikanth Yalavarthi 	char reference[PATH_MAX];
35f6661e6dSSrikanth Yalavarthi };
36f6661e6dSSrikanth Yalavarthi 
37ac930a55SSrikanth Yalavarthi struct ml_options {
38ac930a55SSrikanth Yalavarthi 	char test_name[ML_TEST_NAME_MAX_LEN];
39ac930a55SSrikanth Yalavarthi 	int16_t dev_id;
40ac930a55SSrikanth Yalavarthi 	int socket_id;
41f6661e6dSSrikanth Yalavarthi 	struct ml_filelist filelist[ML_TEST_MAX_MODELS];
42bb38d854SSrikanth Yalavarthi 	uint8_t nb_filelist;
43bbd272edSSrikanth Yalavarthi 	uint64_t repetitions;
4439890f07SSrikanth Yalavarthi 	uint16_t burst_size;
45c0e87165SSrikanth Yalavarthi 	uint16_t queue_pairs;
46c0e87165SSrikanth Yalavarthi 	uint16_t queue_size;
47da679339SSrikanth Yalavarthi 	float tolerance;
485a82bc33SSrikanth Yalavarthi 	bool stats;
49ac930a55SSrikanth Yalavarthi 	bool debug;
50*671e9c20SAnup Prabhu 	bool quantized_io;
51ac930a55SSrikanth Yalavarthi };
52ac930a55SSrikanth Yalavarthi 
53ac930a55SSrikanth Yalavarthi void ml_options_default(struct ml_options *opt);
54ac930a55SSrikanth Yalavarthi int ml_options_parse(struct ml_options *opt, int argc, char **argv);
55ac930a55SSrikanth Yalavarthi void ml_options_dump(struct ml_options *opt);
56ac930a55SSrikanth Yalavarthi 
57ac930a55SSrikanth Yalavarthi #endif /* ML_OPTIONS_H */
58