TI Deep Learning Product User Guide
itvm_rt.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright (c) 2021 Texas Instruments Incorporated
4 *
5 * All rights reserved not granted herein.
6 *
7 * Limited License.
8 *
9 * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10 * license under copyrights and patents it now or hereafter owns or controls to make,
11 * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12 * terms herein. With respect to the foregoing patent license, such license is granted
13 * solely to the extent that any such patent is necessary to Utilize the software alone.
14 * The patent license shall not apply to any combinations which include this software,
15 * other than combinations with devices manufactured by or for TI ("TI Devices").
16 * No hardware patent is licensed hereunder.
17 *
18 * Redistributions must preserve existing copyright notices and reproduce this license
19 * (including the above copyright notice and the disclaimer and (if applicable) source
20 * code license limitations below) in the documentation and/or other materials provided
21 * with the distribution
22 *
23 * Redistribution and use in binary form, without modification, are permitted provided
24 * that the following conditions are met:
25 *
26 * * No reverse engineering, decompilation, or disassembly of this software is
27 * permitted with respect to any software provided in binary form.
28 *
29 * * any redistribution and use are licensed by TI for use only with TI Devices.
30 *
31 * * Nothing shall obligate TI to provide you with source code for the software
32 * licensed and provided to you in object code.
33 *
34 * If software source code is provided to you, modification and redistribution of the
35 * source code are permitted provided that the following conditions are met:
36 *
37 * * any redistribution and use of the source code, including any resulting derivative
38 * works, are licensed by TI for use only with TI Devices.
39 *
40 * * any redistribution and use of any object code compiled from the source code
41 * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42 *
43 * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44 *
45 * may be used to endorse or promote products derived from this software without
46 * specific prior written permission.
47 *
48 * DISCLAIMER.
49 *
50 * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53 * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59 * OF THE POSSIBILITY OF SUCH DAMAGE.
60 *
61 */
62 
63 
75 #ifndef ITVM_RT_H_
76 #define ITVM_RT_H_
77 
78 #include <stdint.h>
79 #include <stdarg.h>
80 
81 #ifdef __cplusplus
82 extern "C" {
83 #endif
84 
85 #define TVMRT_MAX_INPUT_TENSORS (16U)
86 #define TVMRT_MAX_TOTAL_INPUT_TENSOR_NAMES_SIZE (512U)
87 #define TVMRT_MAX_TOTAL_TENSORS (32U)
88 #define TVMRT_MAX_TENSOR_DIM (8)
89 
91 typedef struct {
92  uint32_t size_in_bytes;
94 
96 typedef struct {
98  void *data;
100 
102 typedef struct {
104  void * deploy_mod;
111  uint32_t input_names_offset[TVMRT_MAX_INPUT_TENSORS];
115 
119  int32_t traceLogLevel;
126  int32_t(*TVMVprintf)(const char * format, va_list arg);
128  int32_t(*TVMWriteBinToFile)(const char *fileName, void *addr, int32_t size);
130  int32_t(*TVMReadBinFromFile)(const char *fileName, void *addr, int32_t size);
131 
141  uint32_t coreNum;
143 
144 
145 int32_t TVMRT_create(sTVMRT_Params_t *prms, void **handle);
146 int32_t TVMRT_invoke(void *handle,
147  sTVMRT_Tensor_t *in[], sTVMRT_Tensor_t *out[]);
148 /* Activate will be done by the invoke if the hanlde is not active. */
149 int32_t TVMRT_deactivate(void *handle);
150 int32_t TVMRT_delete(void *handle);
151 
153 
154 #ifdef __cplusplus
155 }
156 #endif
157 
159 /* iTI_DL_RT */
160 
161 #endif /*ITVM_RT_H_ */
162 
int32_t num_input_tensors
Definition: itvm_rt.h:107
int32_t TVMRT_delete(void *handle)
int32_t TVMRT_deactivate(void *handle)
int32_t TVMRT_setParamsDefault(sTVMRT_Params_t *prms)
int32_t tvm_rt_trace_size
Definition: itvm_rt.h:139
#define TVMRT_MAX_TOTAL_INPUT_TENSOR_NAMES_SIZE
Definition: itvm_rt.h:86
#define TVMRT_MAX_INPUT_TENSORS
Definition: itvm_rt.h:85
int32_t tvm_rt_trace_node
Definition: itvm_rt.h:137
TVMRT Tensor for TVMRT_invoke.
Definition: itvm_rt.h:96
int32_t traceLogLevel
Definition: itvm_rt.h:119
float maxPreEmptDelay
Definition: itvm_rt.h:133
int targetPriority
Definition: itvm_rt.h:135
#define TVMRT_MAX_TOTAL_TENSORS
Definition: itvm_rt.h:87
Parameters describing a TVMRT Tensor.
Definition: itvm_rt.h:91
uint32_t coreNum
Definition: itvm_rt.h:141
int32_t tvm_rt_debug_level
Definition: itvm_rt.h:117
int32_t TVMRT_invoke(void *handle, sTVMRT_Tensor_t *in[], sTVMRT_Tensor_t *out[])
void * traceBaseName
Definition: itvm_rt.h:124
int32_t traceWriteLevel
Definition: itvm_rt.h:122
int32_t num_output_tensors
Definition: itvm_rt.h:108
int32_t deploy_mod_size
Definition: itvm_rt.h:105
void * data
Pointer to raw tensor data.
Definition: itvm_rt.h:98
int32_t TVMRT_create(sTVMRT_Params_t *prms, void **handle)
TVMRT configuration parameters.
Definition: itvm_rt.h:102
uint32_t size_in_bytes
Definition: itvm_rt.h:92
void * deploy_mod
Definition: itvm_rt.h:104