ONNX Runtime
Loading...
Searching...
No Matches
onnxruntime_c_api.h
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4// See docs\c_cxx\README.md on generating the Doxygen documentation from this file
5
31#pragma once
32#include <stdlib.h>
33#include <stdint.h>
34#include <string.h>
35
40#define ORT_API_VERSION 16
41
42#ifdef __cplusplus
43extern "C" {
44#endif
45
47// SAL2 Definitions
48#ifndef _WIN32
49#define _In_
50#define _In_z_
51#define _In_opt_
52#define _In_opt_z_
53#define _Out_
54#define _Outptr_
55#define _Out_opt_
56#define _Inout_
57#define _Inout_opt_
58#define _Frees_ptr_opt_
59#define _Ret_maybenull_
60#define _Ret_notnull_
61#define _Check_return_
62#define _Outptr_result_maybenull_
63#define _In_reads_(X)
64#define _Inout_updates_all_(X)
65#define _Out_writes_bytes_all_(X)
66#define _Out_writes_all_(X)
67#define _Success_(X)
68#define _Outptr_result_buffer_maybenull_(X)
69#define ORT_ALL_ARGS_NONNULL __attribute__((nonnull))
70#else
71#include <specstrings.h>
72#define ORT_ALL_ARGS_NONNULL
73#endif
74
75#ifdef _WIN32
76// Define ORT_DLL_IMPORT if your program is dynamically linked to Ort.
77// dllexport is not used, we use a .def file.
78#ifdef ORT_DLL_IMPORT
79#define ORT_EXPORT __declspec(dllimport)
80#else
81#define ORT_EXPORT
82#endif
83#define ORT_API_CALL _stdcall
84#define ORT_MUST_USE_RESULT
85#define ORTCHAR_T wchar_t
86#else
87// To make symbols visible on macOS/iOS
88#ifdef __APPLE__
89#define ORT_EXPORT __attribute__((visibility("default")))
90#else
91#define ORT_EXPORT
92#endif
93#define ORT_API_CALL
94#define ORT_MUST_USE_RESULT __attribute__((warn_unused_result))
95#define ORTCHAR_T char
96#endif
97
100#ifndef ORT_TSTR
101#ifdef _WIN32
102#define ORT_TSTR(X) L##X
103// When X is a macro, L##X is not defined. In this case, we need to use ORT_TSTR_ON_MACRO.
104#define ORT_TSTR_ON_MACRO(X) L"" X
105#else
106#define ORT_TSTR(X) X
107#define ORT_TSTR_ON_MACRO(X) X
108#endif
109#endif
110
111// On Windows, ORT_FILE is a wchar_t version of the __FILE__ macro.
112// Otherwise, ORT_FILE is equivalent to __FILE__.
113#ifndef ORT_FILE
114#define ORT_FILE_INTERNAL(x) ORT_TSTR(x)
115#define ORT_FILE ORT_FILE_INTERNAL(__FILE__)
116#endif
117
118// Any pointer marked with _In_ or _Out_, cannot be NULL.
119
120// Windows users should use unicode paths when possible to bypass the MAX_PATH limitation
121// Every pointer marked with _In_ or _Out_, cannot be NULL. Caller should ensure that.
122// for ReleaseXXX(...) functions, they can accept NULL pointer.
123
124#ifdef __cplusplus
125// For any compiler with C++11 support, MSVC 2015 and greater, or Clang version supporting noexcept.
126// Such complex condition is needed because compilers set __cplusplus value differently.
127#ifndef __has_feature
128#define __has_feature(x) 0
129#endif
130#if ((__cplusplus >= 201103L) || (_MSC_VER >= 1900) || (defined(__has_feature) && __has_feature(cxx_noexcept)))
131#define NO_EXCEPTION noexcept
132#else
133#define NO_EXCEPTION throw()
134#endif
135#else
136#define NO_EXCEPTION
137#endif
138
139// __VA_ARGS__ on Windows and Linux are different
140#define ORT_API(RETURN_TYPE, NAME, ...) RETURN_TYPE ORT_API_CALL NAME(__VA_ARGS__) NO_EXCEPTION
141
142#define ORT_API_STATUS(NAME, ...) \
143 _Success_(return == 0) _Check_return_ _Ret_maybenull_ OrtStatusPtr ORT_API_CALL NAME(__VA_ARGS__) \
144 NO_EXCEPTION ORT_MUST_USE_RESULT
145
146// XXX: Unfortunately, SAL annotations are known to not work with function pointers
147#define ORT_API2_STATUS(NAME, ...) \
148 _Check_return_ _Ret_maybenull_ OrtStatusPtr(ORT_API_CALL* NAME)(__VA_ARGS__) NO_EXCEPTION ORT_MUST_USE_RESULT
149
150// Used in *.cc files. Almost as same as ORT_API_STATUS, except without ORT_MUST_USE_RESULT and ORT_EXPORT
151#define ORT_API_STATUS_IMPL(NAME, ...) \
152 _Success_(return == 0) _Check_return_ _Ret_maybenull_ OrtStatusPtr ORT_API_CALL NAME(__VA_ARGS__) NO_EXCEPTION
153
154#define ORT_CLASS_RELEASE(X) void(ORT_API_CALL * Release##X)(_Frees_ptr_opt_ Ort##X * input)
155
156#ifdef __DOXYGEN__
157#undef ORT_API_STATUS
158#define ORT_API_STATUS(NAME, ...) OrtStatus* NAME(__VA_ARGS__)
159#undef ORT_API2_STATUS
160#define ORT_API2_STATUS(NAME, ...) OrtStatus* NAME(__VA_ARGS__)
161#undef ORT_CLASS_RELEASE
162#define ORT_CLASS_RELEASE(X) void Release##X(Ort##X* input)
163#undef NO_EXCEPTION
164#define NO_EXCEPTION
165#endif
176 ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT, // maps to c type float
177 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8, // maps to c type uint8_t
178 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8, // maps to c type int8_t
179 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT16, // maps to c type uint16_t
180 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT16, // maps to c type int16_t
181 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT32, // maps to c type int32_t
182 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64, // maps to c type int64_t
183 ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING, // maps to c++ type std::string
186 ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE, // maps to c type double
187 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT32, // maps to c type uint32_t
188 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT64, // maps to c type uint64_t
189 ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX64, // complex with float32 real and imaginary components
190 ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX128, // complex with float64 real and imaginary components
191 ONNX_TENSOR_ELEMENT_DATA_TYPE_BFLOAT16 // Non-IEEE floating-point format based on IEEE754 single-precision
193
194// Synced with onnx TypeProto oneof
195typedef enum ONNXType {
204
205// These types are synced with internal
206// SparseFormatFlags
207typedef enum OrtSparseFormat {
213
214// Enum allows to query sparse tensor indices
221
226typedef enum OrtLoggingLevel {
233
234typedef enum OrtErrorCode {
248
249typedef enum OrtOpAttrType {
258
260#define ORT_RUNTIME_CLASS(X) \
261 struct Ort##X; \
262 typedef struct Ort##X Ort##X;
263
268// The actual types defined have an Ort prefix
269ORT_RUNTIME_CLASS(Env);
270ORT_RUNTIME_CLASS(Status); // nullptr for Status* indicates success
271ORT_RUNTIME_CLASS(MemoryInfo);
272ORT_RUNTIME_CLASS(IoBinding);
273ORT_RUNTIME_CLASS(Session); // Don't call ReleaseSession from Dllmain (because session owns a thread pool)
274ORT_RUNTIME_CLASS(Value);
275ORT_RUNTIME_CLASS(RunOptions);
276ORT_RUNTIME_CLASS(TypeInfo);
277ORT_RUNTIME_CLASS(TensorTypeAndShapeInfo);
278ORT_RUNTIME_CLASS(MapTypeInfo);
279ORT_RUNTIME_CLASS(SequenceTypeInfo);
280ORT_RUNTIME_CLASS(OptionalTypeInfo);
281ORT_RUNTIME_CLASS(SessionOptions);
282ORT_RUNTIME_CLASS(CustomOpDomain);
283ORT_RUNTIME_CLASS(ModelMetadata);
284ORT_RUNTIME_CLASS(ThreadPoolParams);
285ORT_RUNTIME_CLASS(ThreadingOptions);
286ORT_RUNTIME_CLASS(ArenaCfg);
287ORT_RUNTIME_CLASS(PrepackedWeightsContainer);
288ORT_RUNTIME_CLASS(TensorRTProviderOptionsV2);
289ORT_RUNTIME_CLASS(CUDAProviderOptionsV2);
290ORT_RUNTIME_CLASS(CANNProviderOptions);
291ORT_RUNTIME_CLASS(DnnlProviderOptions);
292ORT_RUNTIME_CLASS(Op);
293ORT_RUNTIME_CLASS(OpAttr);
294ORT_RUNTIME_CLASS(Logger);
295
296#ifdef _WIN32
297typedef _Return_type_success_(return == 0) OrtStatus* OrtStatusPtr;
298#else
300#endif
301
308typedef struct OrtAllocator {
309 uint32_t version;
310 void*(ORT_API_CALL* Alloc)(struct OrtAllocator* this_, size_t size);
311 void(ORT_API_CALL* Free)(struct OrtAllocator* this_, void* p);
312 const struct OrtMemoryInfo*(ORT_API_CALL* Info)(const struct OrtAllocator* this_);
314
315typedef void(ORT_API_CALL* OrtLoggingFunction)(
316 void* param, OrtLoggingLevel severity, const char* category, const char* logid, const char* code_location,
317 const char* message);
318
328 ORT_ENABLE_ALL = 99
330
331typedef enum ExecutionMode {
335
348
349struct OrtKernelInfo;
351struct OrtKernelContext;
353struct OrtCustomOp;
354typedef struct OrtCustomOp OrtCustomOp;
355
356typedef enum OrtAllocatorType {
361
364// Whenever this struct is updated, please also update the MakeKey function in onnxruntime / core / framework / execution_provider.cc
365typedef enum OrtMemType {
370} OrtMemType;
371
379
383 OrtCudnnConvAlgoSearchExhaustive, // expensive exhaustive benchmarking using cudnnFindConvolutionForwardAlgorithmEx
384 OrtCudnnConvAlgoSearchHeuristic, // lightweight heuristic based search using cudnnGetConvolutionForwardAlgorithm_v7
385 OrtCudnnConvAlgoSearchDefault, // default algorithm using CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM
387
393#ifdef __cplusplus
395 : device_id{},
397 gpu_mem_limit{SIZE_MAX},
403 tunable_op_enable{false},
405#endif
406
411
417
423
431
440
445
450
454
460
466
468
474#ifdef __cplusplus
476 : device_id{},
478 gpu_mem_limit{SIZE_MAX},
484 tunable_op_enable{false},
486#endif
487
492
497
503
511
520
525
530
534
540
546
548
555 int has_user_compute_stream; // indicator of user specified CUDA compute stream.
556 void* user_compute_stream; // user specified CUDA compute stream.
557 int trt_max_partition_iterations; // maximum iterations for TensorRT parser to get capability
558 int trt_min_subgraph_size; // minimum size of TensorRT subgraphs
559 size_t trt_max_workspace_size; // maximum workspace size for TensorRT.
560 int trt_fp16_enable; // enable TensorRT FP16 precision. Default 0 = false, nonzero = true
561 int trt_int8_enable; // enable TensorRT INT8 precision. Default 0 = false, nonzero = true
562 const char* trt_int8_calibration_table_name; // TensorRT INT8 calibration table name.
563 int trt_int8_use_native_calibration_table; // use native TensorRT generated calibration table. Default 0 = false, nonzero = true
564 int trt_dla_enable; // enable DLA. Default 0 = false, nonzero = true
565 int trt_dla_core; // DLA core number. Default 0
566 int trt_dump_subgraphs; // dump TRT subgraph. Default 0 = false, nonzero = true
567 int trt_engine_cache_enable; // enable engine caching. Default 0 = false, nonzero = true
568 const char* trt_engine_cache_path; // specify engine cache path
569 int trt_engine_decryption_enable; // enable engine decryption. Default 0 = false, nonzero = true
570 const char* trt_engine_decryption_lib_path; // specify engine decryption library path
571 int trt_force_sequential_engine_build; // force building TensorRT engine sequentially. Default 0 = false, nonzero = true
572 // This is the legacy struct and don't add new fields here.
573 // For new field that can be represented by string, please add it in include/onnxruntime/core/providers/tensorrt/tensorrt_provider_options.h
574 // For non-string field, need to create a new separate api to handle it.
576
582 int device_id; // hip device id.
583 int migraphx_fp16_enable; // enable MIGraphX FP16 precision. Default 0 = false, nonzero = true
584 int migraphx_int8_enable; // enable MIGraphX INT8 precision. Default 0 = false, nonzero = true
586
592#ifdef __cplusplus
595 device_id{},
597 cache_dir{},
598 context{},
601#endif
606 const char* device_type;
608 const char* device_id;
610 const char* cache_dir; // path is set to empty by default
611 void* context;
613 unsigned char enable_dynamic_shapes;
615
616struct OrtApi;
617typedef struct OrtApi OrtApi;
618
619struct OrtTrainingApi;
620typedef struct OrtTrainingApi OrtTrainingApi;
621
636 const OrtApi*(ORT_API_CALL* GetApi)(uint32_t version)NO_EXCEPTION;
637
642 const char*(ORT_API_CALL* GetVersionString)(void)NO_EXCEPTION;
643};
644
645typedef struct OrtApiBase OrtApiBase;
646
651ORT_EXPORT const OrtApiBase* ORT_API_CALL OrtGetApiBase(void) NO_EXCEPTION;
652
658typedef void (*OrtThreadWorkerFn)(void* ort_worker_fn_param);
659
660typedef const struct OrtCustomHandleType {
663
669typedef OrtCustomThreadHandle (*OrtCustomCreateThreadFn)(void* ort_custom_thread_creation_options, OrtThreadWorkerFn ort_thread_worker_fn, void* ort_worker_fn_param);
670
676typedef void (*OrtCustomJoinThreadFn)(OrtCustomThreadHandle ort_custom_thread_handle);
677
678typedef OrtStatus*(ORT_API_CALL* RegisterCustomOpsFn)(OrtSessionOptions* options, const OrtApiBase* api);
679
687struct OrtApi {
690
698 OrtStatus*(ORT_API_CALL* CreateStatus)(OrtErrorCode code, _In_ const char* msg)NO_EXCEPTION ORT_ALL_ARGS_NONNULL;
699
705 OrtErrorCode(ORT_API_CALL* GetErrorCode)(_In_ const OrtStatus* status) NO_EXCEPTION ORT_ALL_ARGS_NONNULL;
706
712 const char*(ORT_API_CALL* GetErrorMessage)(_In_ const OrtStatus* status)NO_EXCEPTION ORT_ALL_ARGS_NONNULL;
713
717
726 ORT_API2_STATUS(CreateEnv, OrtLoggingLevel log_severity_level, _In_ const char* logid, _Outptr_ OrtEnv** out);
727
739 ORT_API2_STATUS(CreateEnvWithCustomLogger, OrtLoggingFunction logging_function, _In_opt_ void* logger_param,
740 OrtLoggingLevel log_severity_level, _In_ const char* logid, _Outptr_ OrtEnv** out);
741
749 ORT_API2_STATUS(EnableTelemetryEvents, _In_ const OrtEnv* env);
757 ORT_API2_STATUS(DisableTelemetryEvents, _In_ const OrtEnv* env);
758
762
772 // TODO: document the path separator convention? '/' vs '\'
773 // TODO: should specify the access characteristics of model_path. Is this read only during the
774 // execution of CreateSession, or does the OrtSession retain a handle to the file/directory
775 // and continue to access throughout the OrtSession lifetime?
776 // What sort of access is needed to model_path : read or read/write?
777 ORT_API2_STATUS(CreateSession, _In_ const OrtEnv* env, _In_ const ORTCHAR_T* model_path,
778 _In_ const OrtSessionOptions* options, _Outptr_ OrtSession** out);
779
790 ORT_API2_STATUS(CreateSessionFromArray, _In_ const OrtEnv* env, _In_ const void* model_data, size_t model_data_length,
791 _In_ const OrtSessionOptions* options, _Outptr_ OrtSession** out);
792
811 ORT_API2_STATUS(Run, _Inout_ OrtSession* session, _In_opt_ const OrtRunOptions* run_options,
812 _In_reads_(input_len) const char* const* input_names,
813 _In_reads_(input_len) const OrtValue* const* inputs, size_t input_len,
814 _In_reads_(output_names_len) const char* const* output_names, size_t output_names_len,
815 _Inout_updates_all_(output_names_len) OrtValue** outputs);
816
820
836 ORT_API2_STATUS(CreateSessionOptions, _Outptr_ OrtSessionOptions** options);
837
845 ORT_API2_STATUS(SetOptimizedModelFilePath, _Inout_ OrtSessionOptions* options,
846 _In_ const ORTCHAR_T* optimized_model_filepath);
847
855 ORT_API2_STATUS(CloneSessionOptions, _In_ const OrtSessionOptions* in_options,
856 _Outptr_ OrtSessionOptions** out_options);
857
869 ORT_API2_STATUS(SetSessionExecutionMode, _Inout_ OrtSessionOptions* options, ExecutionMode execution_mode);
870
878 ORT_API2_STATUS(EnableProfiling, _Inout_ OrtSessionOptions* options, _In_ const ORTCHAR_T* profile_file_prefix);
879
886 ORT_API2_STATUS(DisableProfiling, _Inout_ OrtSessionOptions* options);
887
901 ORT_API2_STATUS(EnableMemPattern, _Inout_ OrtSessionOptions* options);
902
911 ORT_API2_STATUS(DisableMemPattern, _Inout_ OrtSessionOptions* options);
912
921 ORT_API2_STATUS(EnableCpuMemArena, _Inout_ OrtSessionOptions* options);
922
929 ORT_API2_STATUS(DisableCpuMemArena, _Inout_ OrtSessionOptions* options);
930
938 ORT_API2_STATUS(SetSessionLogId, _Inout_ OrtSessionOptions* options, const char* logid);
939
949 ORT_API2_STATUS(SetSessionLogVerbosityLevel, _Inout_ OrtSessionOptions* options, int session_log_verbosity_level);
950
958 ORT_API2_STATUS(SetSessionLogSeverityLevel, _Inout_ OrtSessionOptions* options, int session_log_severity_level);
959
968 ORT_API2_STATUS(SetSessionGraphOptimizationLevel, _Inout_ OrtSessionOptions* options,
969 GraphOptimizationLevel graph_optimization_level);
970
984 ORT_API2_STATUS(SetIntraOpNumThreads, _Inout_ OrtSessionOptions* options, int intra_op_num_threads);
985
998 ORT_API2_STATUS(SetInterOpNumThreads, _Inout_ OrtSessionOptions* options, int inter_op_num_threads);
999
1003
1011 ORT_API2_STATUS(CreateCustomOpDomain, _In_ const char* domain, _Outptr_ OrtCustomOpDomain** out);
1012
1022 ORT_API2_STATUS(CustomOpDomain_Add, _Inout_ OrtCustomOpDomain* custom_op_domain, _In_ const OrtCustomOp* op);
1023
1027
1037 ORT_API2_STATUS(AddCustomOpDomain, _Inout_ OrtSessionOptions* options, _In_ OrtCustomOpDomain* custom_op_domain);
1038
1055 ORT_API2_STATUS(RegisterCustomOpsLibrary, _Inout_ OrtSessionOptions* options, _In_ const char* library_path, _Outptr_ void** library_handle);
1056
1060
1072 ORT_API2_STATUS(SessionGetInputCount, _In_ const OrtSession* session, _Out_ size_t* out);
1073
1085 ORT_API2_STATUS(SessionGetOutputCount, _In_ const OrtSession* session, _Out_ size_t* out);
1086
1096 ORT_API2_STATUS(SessionGetOverridableInitializerCount, _In_ const OrtSession* session, _Out_ size_t* out);
1097
1106 ORT_API2_STATUS(SessionGetInputTypeInfo, _In_ const OrtSession* session, size_t index, _Outptr_ OrtTypeInfo** type_info);
1107
1116 ORT_API2_STATUS(SessionGetOutputTypeInfo, _In_ const OrtSession* session, size_t index, _Outptr_ OrtTypeInfo** type_info);
1117
1126 ORT_API2_STATUS(SessionGetOverridableInitializerTypeInfo, _In_ const OrtSession* session, size_t index, _Outptr_ OrtTypeInfo** type_info);
1127
1137 ORT_API2_STATUS(SessionGetInputName, _In_ const OrtSession* session, size_t index, _Inout_ OrtAllocator* allocator, _Outptr_ char** value);
1138
1148 ORT_API2_STATUS(SessionGetOutputName, _In_ const OrtSession* session, size_t index, _Inout_ OrtAllocator* allocator, _Outptr_ char** value);
1149
1159 ORT_API2_STATUS(SessionGetOverridableInitializerName, _In_ const OrtSession* session, size_t index,
1160 _Inout_ OrtAllocator* allocator, _Outptr_ char** value);
1161
1165
1172 ORT_API2_STATUS(CreateRunOptions, _Outptr_ OrtRunOptions** out);
1173
1183 ORT_API2_STATUS(RunOptionsSetRunLogVerbosityLevel, _Inout_ OrtRunOptions* options, int log_verbosity_level);
1184
1192 ORT_API2_STATUS(RunOptionsSetRunLogSeverityLevel, _Inout_ OrtRunOptions* options, int log_severity_level);
1193
1203 ORT_API2_STATUS(RunOptionsSetRunTag, _Inout_ OrtRunOptions* options, _In_ const char* run_tag);
1204
1214 ORT_API2_STATUS(RunOptionsGetRunLogVerbosityLevel, _In_ const OrtRunOptions* options,
1215 _Out_ int* log_verbosity_level);
1216
1224 ORT_API2_STATUS(RunOptionsGetRunLogSeverityLevel, _In_ const OrtRunOptions* options, _Out_ int* log_severity_level);
1225
1237 ORT_API2_STATUS(RunOptionsGetRunTag, _In_ const OrtRunOptions* options, _Out_ const char** run_tag);
1238
1247 ORT_API2_STATUS(RunOptionsSetTerminate, _Inout_ OrtRunOptions* options);
1248
1257 ORT_API2_STATUS(RunOptionsUnsetTerminate, _Inout_ OrtRunOptions* options);
1258
1262
1275 ORT_API2_STATUS(CreateTensorAsOrtValue, _Inout_ OrtAllocator* allocator, _In_ const int64_t* shape, size_t shape_len,
1277
1293 ORT_API2_STATUS(CreateTensorWithDataAsOrtValue, _In_ const OrtMemoryInfo* info, _Inout_ void* p_data,
1294 size_t p_data_len, _In_ const int64_t* shape, size_t shape_len, ONNXTensorElementDataType type,
1295 _Outptr_ OrtValue** out);
1296
1304 ORT_API2_STATUS(IsTensor, _In_ const OrtValue* value, _Out_ int* out);
1305
1316 ORT_API2_STATUS(GetTensorMutableData, _In_ OrtValue* value, _Outptr_ void** out);
1317
1326 ORT_API2_STATUS(FillStringTensor, _Inout_ OrtValue* value, _In_ const char* const* s, size_t s_len);
1327
1337 ORT_API2_STATUS(GetStringTensorDataLength, _In_ const OrtValue* value, _Out_ size_t* len);
1338
1358 ORT_API2_STATUS(GetStringTensorContent, _In_ const OrtValue* value, _Out_writes_bytes_all_(s_len) void* s,
1359 size_t s_len, _Out_writes_all_(offsets_len) size_t* offsets, size_t offsets_len);
1360
1364
1373 ORT_API2_STATUS(CastTypeInfoToTensorInfo, _In_ const OrtTypeInfo* type_info,
1374 _Outptr_result_maybenull_ const OrtTensorTypeAndShapeInfo** out);
1375
1383 ORT_API2_STATUS(GetOnnxTypeFromTypeInfo, _In_ const OrtTypeInfo* type_info, _Out_ enum ONNXType* out);
1384
1388
1396
1405
1414 ORT_API2_STATUS(SetDimensions, OrtTensorTypeAndShapeInfo* info, _In_ const int64_t* dim_values, size_t dim_count);
1415
1425 ORT_API2_STATUS(GetTensorElementType, _In_ const OrtTensorTypeAndShapeInfo* info,
1427
1437 ORT_API2_STATUS(GetDimensionsCount, _In_ const OrtTensorTypeAndShapeInfo* info, _Out_ size_t* out);
1438
1447 ORT_API2_STATUS(GetDimensions, _In_ const OrtTensorTypeAndShapeInfo* info, _Out_ int64_t* dim_values,
1448 size_t dim_values_length);
1449
1458 ORT_API2_STATUS(GetSymbolicDimensions, _In_ const OrtTensorTypeAndShapeInfo* info,
1459 _Out_writes_all_(dim_params_length) const char* dim_params[], size_t dim_params_length);
1460
1477 ORT_API2_STATUS(GetTensorShapeElementCount, _In_ const OrtTensorTypeAndShapeInfo* info, _Out_ size_t* out);
1478
1482
1490 ORT_API2_STATUS(GetTensorTypeAndShape, _In_ const OrtValue* value, _Outptr_ OrtTensorTypeAndShapeInfo** out);
1491
1499 ORT_API2_STATUS(GetTypeInfo, _In_ const OrtValue* value, _Outptr_result_maybenull_ OrtTypeInfo** out);
1500
1508 ORT_API2_STATUS(GetValueType, _In_ const OrtValue* value, _Out_ enum ONNXType* out);
1509
1513
1524 ORT_API2_STATUS(CreateMemoryInfo, _In_ const char* name, enum OrtAllocatorType type, int id,
1525 enum OrtMemType mem_type, _Outptr_ OrtMemoryInfo** out);
1526
1537 ORT_API2_STATUS(CreateCpuMemoryInfo, enum OrtAllocatorType type, enum OrtMemType mem_type,
1538 _Outptr_ OrtMemoryInfo** out);
1539
1550 ORT_API2_STATUS(CompareMemoryInfo, _In_ const OrtMemoryInfo* info1, _In_ const OrtMemoryInfo* info2, _Out_ int* out);
1551
1559 ORT_API2_STATUS(MemoryInfoGetName, _In_ const OrtMemoryInfo* ptr, _Out_ const char** out);
1560
1563 ORT_API2_STATUS(MemoryInfoGetId, _In_ const OrtMemoryInfo* ptr, _Out_ int* out);
1564
1567 ORT_API2_STATUS(MemoryInfoGetMemType, _In_ const OrtMemoryInfo* ptr, _Out_ OrtMemType* out);
1568
1571 ORT_API2_STATUS(MemoryInfoGetType, _In_ const OrtMemoryInfo* ptr, _Out_ OrtAllocatorType* out);
1572
1576
1578 ORT_API2_STATUS(AllocatorAlloc, _Inout_ OrtAllocator* ort_allocator, size_t size, _Outptr_ void** out);
1580 ORT_API2_STATUS(AllocatorFree, _Inout_ OrtAllocator* ort_allocator, void* p);
1582 ORT_API2_STATUS(AllocatorGetInfo, _In_ const OrtAllocator* ort_allocator, _Outptr_ const struct OrtMemoryInfo** out);
1583
1592 ORT_API2_STATUS(GetAllocatorWithDefaultOptions, _Outptr_ OrtAllocator** out);
1593
1597
1609 ORT_API2_STATUS(AddFreeDimensionOverride, _Inout_ OrtSessionOptions* options, _In_ const char* dim_denotation,
1610 _In_ int64_t dim_value);
1611
1615
1616 /* Internal information (not seen in Doxygen)
1617 *
1618 * APIs to support non-tensor types - map and sequence.
1619 * Currently only the following types are supported
1620 * Note: the following types should be kept in sync with data_types.h
1621 * Map types
1622 * =========
1623 * std::map<std::string, std::string>
1624 * std::map<std::string, int64_t>
1625 * std::map<std::string, float>
1626 * std::map<std::string, double>
1627 * std::map<int64_t, std::string>
1628 * std::map<int64_t, int64_t>
1629 * std::map<int64_t, float>
1630 * std::map<int64_t, double>
1631 *
1632 * Sequence types
1633 * ==============
1634 * std::vector<std::string>
1635 * std::vector<int64_t>
1636 * std::vector<float>
1637 * std::vector<double>
1638 * std::vector<std::map<std::string, float>>
1639 * std::vector<std::map<int64_t, float>
1640 */
1641
1656 ORT_API2_STATUS(GetValue, _In_ const OrtValue* value, int index, _Inout_ OrtAllocator* allocator,
1657 _Outptr_ OrtValue** out);
1658
1669 ORT_API2_STATUS(GetValueCount, _In_ const OrtValue* value, _Out_ size_t* out);
1670
1686 ORT_API2_STATUS(CreateValue, _In_reads_(num_values) const OrtValue* const* in, size_t num_values,
1687 enum ONNXType value_type, _Outptr_ OrtValue** out);
1688
1711 ORT_API2_STATUS(CreateOpaqueValue, _In_z_ const char* domain_name, _In_z_ const char* type_name,
1712 _In_ const void* data_container, size_t data_container_size, _Outptr_ OrtValue** out);
1713
1728 ORT_API2_STATUS(GetOpaqueValue, _In_ const char* domain_name, _In_ const char* type_name, _In_ const OrtValue* in,
1729 _Out_ void* data_container, size_t data_container_size);
1730
1735
1744 ORT_API2_STATUS(KernelInfoGetAttribute_float, _In_ const OrtKernelInfo* info, _In_ const char* name,
1745 _Out_ float* out);
1746
1755 ORT_API2_STATUS(KernelInfoGetAttribute_int64, _In_ const OrtKernelInfo* info, _In_ const char* name,
1756 _Out_ int64_t* out);
1757
1778 ORT_API2_STATUS(KernelInfoGetAttribute_string, _In_ const OrtKernelInfo* info, _In_ const char* name, _Out_ char* out,
1779 _Inout_ size_t* size);
1780
1785
1790 ORT_API2_STATUS(KernelContext_GetInputCount, _In_ const OrtKernelContext* context, _Out_ size_t* out);
1791
1796 ORT_API2_STATUS(KernelContext_GetOutputCount, _In_ const OrtKernelContext* context, _Out_ size_t* out);
1797
1802 ORT_API2_STATUS(KernelContext_GetInput, _In_ const OrtKernelContext* context, _In_ size_t index,
1803 _Out_ const OrtValue** out);
1804
1809 ORT_API2_STATUS(KernelContext_GetOutput, _Inout_ OrtKernelContext* context, _In_ size_t index,
1810 _In_ const int64_t* dim_values, size_t dim_count, _Outptr_ OrtValue** out);
1811
1815 ORT_CLASS_RELEASE(Env);
1819 ORT_CLASS_RELEASE(Status);
1823 ORT_CLASS_RELEASE(MemoryInfo);
1827 ORT_CLASS_RELEASE(Session); // Don't call ReleaseSession from Dllmain (because session owns a thread pool)
1831 ORT_CLASS_RELEASE(Value);
1835 ORT_CLASS_RELEASE(RunOptions);
1839 ORT_CLASS_RELEASE(TypeInfo);
1843 ORT_CLASS_RELEASE(TensorTypeAndShapeInfo);
1847 ORT_CLASS_RELEASE(SessionOptions);
1851 ORT_CLASS_RELEASE(CustomOpDomain);
1852
1856
1869 ORT_API2_STATUS(GetDenotationFromTypeInfo, _In_ const OrtTypeInfo* type_info, _Out_ const char** const denotation,
1870 _Out_ size_t* len);
1871
1885 ORT_API2_STATUS(CastTypeInfoToMapTypeInfo, _In_ const OrtTypeInfo* type_info,
1886 _Outptr_result_maybenull_ const OrtMapTypeInfo** out);
1887
1901 ORT_API2_STATUS(CastTypeInfoToSequenceTypeInfo, _In_ const OrtTypeInfo* type_info,
1902 _Outptr_result_maybenull_ const OrtSequenceTypeInfo** out);
1903
1907
1919 ORT_API2_STATUS(GetMapKeyType, _In_ const OrtMapTypeInfo* map_type_info, _Out_ enum ONNXTensorElementDataType* out);
1920
1928 ORT_API2_STATUS(GetMapValueType, _In_ const OrtMapTypeInfo* map_type_info, _Outptr_ OrtTypeInfo** type_info);
1929
1933
1943 ORT_API2_STATUS(GetSequenceElementType, _In_ const OrtSequenceTypeInfo* sequence_type_info,
1944 _Outptr_ OrtTypeInfo** type_info);
1945
1949 ORT_CLASS_RELEASE(MapTypeInfo);
1953 ORT_CLASS_RELEASE(SequenceTypeInfo);
1954
1958
1969 ORT_API2_STATUS(SessionEndProfiling, _In_ OrtSession* session, _Inout_ OrtAllocator* allocator, _Outptr_ char** out);
1970
1978 ORT_API2_STATUS(SessionGetModelMetadata, _In_ const OrtSession* session, _Outptr_ OrtModelMetadata** out);
1979
1983
1992 ORT_API2_STATUS(ModelMetadataGetProducerName, _In_ const OrtModelMetadata* model_metadata,
1993 _Inout_ OrtAllocator* allocator, _Outptr_ char** value);
1994
2003 ORT_API2_STATUS(ModelMetadataGetGraphName, _In_ const OrtModelMetadata* model_metadata,
2004 _Inout_ OrtAllocator* allocator, _Outptr_ char** value);
2005
2014 ORT_API2_STATUS(ModelMetadataGetDomain, _In_ const OrtModelMetadata* model_metadata, _Inout_ OrtAllocator* allocator,
2015 _Outptr_ char** value);
2016
2025 ORT_API2_STATUS(ModelMetadataGetDescription, _In_ const OrtModelMetadata* model_metadata,
2026 _Inout_ OrtAllocator* allocator, _Outptr_ char** value);
2027
2038 ORT_API2_STATUS(ModelMetadataLookupCustomMetadataMap, _In_ const OrtModelMetadata* model_metadata,
2039 _Inout_ OrtAllocator* allocator, _In_ const char* key, _Outptr_result_maybenull_ char** value);
2040
2048 ORT_API2_STATUS(ModelMetadataGetVersion, _In_ const OrtModelMetadata* model_metadata, _Out_ int64_t* value);
2049
2050 ORT_CLASS_RELEASE(ModelMetadata);
2051
2055
2069 ORT_API2_STATUS(CreateEnvWithGlobalThreadPools, OrtLoggingLevel log_severity_level, _In_ const char* logid,
2070 _In_ const OrtThreadingOptions* tp_options, _Outptr_ OrtEnv** out);
2071
2075
2085 ORT_API2_STATUS(DisablePerSessionThreads, _Inout_ OrtSessionOptions* options);
2086
2090
2096 ORT_API2_STATUS(CreateThreadingOptions, _Outptr_ OrtThreadingOptions** out);
2097
2098 ORT_CLASS_RELEASE(ThreadingOptions);
2099
2103
2115 ORT_API2_STATUS(ModelMetadataGetCustomMetadataMapKeys, _In_ const OrtModelMetadata* model_metadata,
2116 _Inout_ OrtAllocator* allocator, _Outptr_result_buffer_maybenull_(*num_keys) char*** keys, _Out_ int64_t* num_keys);
2117
2121
2129 ORT_API2_STATUS(AddFreeDimensionOverrideByName,
2130 _Inout_ OrtSessionOptions* options, _In_ const char* dim_name,
2131 _In_ int64_t dim_value);
2132
2136
2148 ORT_API2_STATUS(GetAvailableProviders, _Outptr_ char*** out_ptr, _Out_ int* provider_length);
2149
2158 ORT_API2_STATUS(ReleaseAvailableProviders, _In_ char** ptr,
2159 _In_ int providers_length);
2160
2164
2173 ORT_API2_STATUS(GetStringTensorElementLength, _In_ const OrtValue* value, size_t index, _Out_ size_t* out);
2174
2184 ORT_API2_STATUS(GetStringTensorElement, _In_ const OrtValue* value, size_t s_len, size_t index, _Out_writes_bytes_all_(s_len) void* s);
2185
2194 ORT_API2_STATUS(FillStringTensorElement, _Inout_ OrtValue* value, _In_ const char* s, size_t index);
2195
2199
2212 ORT_API2_STATUS(AddSessionConfigEntry, _Inout_ OrtSessionOptions* options,
2213 _In_z_ const char* config_key, _In_z_ const char* config_value);
2214
2218
2227 ORT_API2_STATUS(CreateAllocator, _In_ const OrtSession* session, _In_ const OrtMemoryInfo* mem_info,
2228 _Outptr_ OrtAllocator** out);
2229
2232 ORT_CLASS_RELEASE(Allocator);
2233
2237
2248 ORT_API2_STATUS(RunWithBinding, _Inout_ OrtSession* session, _In_ const OrtRunOptions* run_options, _In_ const OrtIoBinding* binding_ptr);
2249
2261 ORT_API2_STATUS(CreateIoBinding, _Inout_ OrtSession* session, _Outptr_ OrtIoBinding** out);
2262
2266
2269 ORT_CLASS_RELEASE(IoBinding);
2270
2281 ORT_API2_STATUS(BindInput, _Inout_ OrtIoBinding* binding_ptr, _In_ const char* name, _In_ const OrtValue* val_ptr);
2282
2293 ORT_API2_STATUS(BindOutput, _Inout_ OrtIoBinding* binding_ptr, _In_ const char* name, _In_ const OrtValue* val_ptr);
2294
2310 ORT_API2_STATUS(BindOutputToDevice, _Inout_ OrtIoBinding* binding_ptr, _In_ const char* name, _In_ const OrtMemoryInfo* mem_info_ptr);
2311
2329 ORT_API2_STATUS(GetBoundOutputNames, _In_ const OrtIoBinding* binding_ptr, _In_ OrtAllocator* allocator,
2330 _Out_ char** buffer, _Out_writes_all_(count) size_t** lengths, _Out_ size_t* count);
2331
2349 ORT_API2_STATUS(GetBoundOutputValues, _In_ const OrtIoBinding* binding_ptr, _In_ OrtAllocator* allocator,
2350 _Out_writes_all_(output_count) OrtValue*** output, _Out_ size_t* output_count);
2351
2354 void(ORT_API_CALL* ClearBoundInputs)(_Inout_ OrtIoBinding* binding_ptr) NO_EXCEPTION ORT_ALL_ARGS_NONNULL;
2355
2358 void(ORT_API_CALL* ClearBoundOutputs)(_Inout_ OrtIoBinding* binding_ptr) NO_EXCEPTION ORT_ALL_ARGS_NONNULL;
2359
2363
2378 ORT_API2_STATUS(TensorAt, _Inout_ OrtValue* value, const int64_t* location_values, size_t location_values_count, _Outptr_ void** out);
2379
2383
2398 ORT_API2_STATUS(CreateAndRegisterAllocator, _Inout_ OrtEnv* env, _In_ const OrtMemoryInfo* mem_info,
2399 _In_ const OrtArenaCfg* arena_cfg);
2400
2412 ORT_API2_STATUS(SetLanguageProjection, _In_ const OrtEnv* ort_env, _In_ OrtLanguageProjection projection);
2413
2417
2427 ORT_API2_STATUS(SessionGetProfilingStartTimeNs, _In_ const OrtSession* session, _Outptr_ uint64_t* out);
2428
2432
2444 ORT_API2_STATUS(SetGlobalIntraOpNumThreads, _Inout_ OrtThreadingOptions* tp_options, int intra_op_num_threads);
2445
2457 ORT_API2_STATUS(SetGlobalInterOpNumThreads, _Inout_ OrtThreadingOptions* tp_options, int inter_op_num_threads);
2458
2472 ORT_API2_STATUS(SetGlobalSpinControl, _Inout_ OrtThreadingOptions* tp_options, int allow_spinning);
2473
2477
2492 ORT_API2_STATUS(AddInitializer, _Inout_ OrtSessionOptions* options, _In_z_ const char* name,
2493 _In_ const OrtValue* val);
2494
2498
2514 ORT_API2_STATUS(CreateEnvWithCustomLoggerAndGlobalThreadPools, OrtLoggingFunction logging_function, _In_opt_ void* logger_param, OrtLoggingLevel log_severity_level,
2515 _In_ const char* logid, _In_ const struct OrtThreadingOptions* tp_options, _Outptr_ OrtEnv** out);
2516
2520
2531 _In_ OrtSessionOptions* options, _In_ const OrtCUDAProviderOptions* cuda_options);
2532
2543 _In_ OrtSessionOptions* options, _In_ const OrtROCMProviderOptions* rocm_options);
2544
2555 _In_ OrtSessionOptions* options, _In_ const OrtOpenVINOProviderOptions* provider_options);
2556
2560
2571 ORT_API2_STATUS(SetGlobalDenormalAsZero, _Inout_ OrtThreadingOptions* tp_options);
2572
2576
2589 ORT_API2_STATUS(CreateArenaCfg, _In_ size_t max_mem, int arena_extend_strategy, int initial_chunk_size_bytes,
2590 int max_dead_bytes_per_chunk, _Outptr_ OrtArenaCfg** out);
2591
2592 ORT_CLASS_RELEASE(ArenaCfg);
2593
2597
2609 ORT_API2_STATUS(ModelMetadataGetGraphDescription, _In_ const OrtModelMetadata* model_metadata,
2610 _Inout_ OrtAllocator* allocator, _Outptr_ char** value);
2611
2615
2626 _In_ OrtSessionOptions* options, _In_ const OrtTensorRTProviderOptions* tensorrt_options);
2627
2631
2642 ORT_API2_STATUS(SetCurrentGpuDeviceId, _In_ int device_id);
2643
2654 ORT_API2_STATUS(GetCurrentGpuDeviceId, _In_ int* device_id);
2655
2660
2683 ORT_API2_STATUS(KernelInfoGetAttributeArray_float, _In_ const OrtKernelInfo* info, _In_ const char* name,
2684 _Out_ float* out, _Inout_ size_t* size);
2685
2707 ORT_API2_STATUS(KernelInfoGetAttributeArray_int64, _In_ const OrtKernelInfo* info, _In_ const char* name,
2708 _Out_ int64_t* out, _Inout_ size_t* size);
2709
2713
2741 ORT_API2_STATUS(CreateArenaCfgV2, _In_reads_(num_keys) const char* const* arena_config_keys,
2742 _In_reads_(num_keys) const size_t* arena_config_values, _In_ size_t num_keys,
2743 _Outptr_ OrtArenaCfg** out);
2744
2748
2761 ORT_API2_STATUS(AddRunConfigEntry, _Inout_ OrtRunOptions* options,
2762 _In_z_ const char* config_key, _In_z_ const char* config_value);
2763
2767
2781
2786 ORT_CLASS_RELEASE(PrepackedWeightsContainer);
2787
2791
2809 ORT_API2_STATUS(CreateSessionWithPrepackedWeightsContainer, _In_ const OrtEnv* env, _In_ const ORTCHAR_T* model_path,
2810 _In_ const OrtSessionOptions* options, _Inout_ OrtPrepackedWeightsContainer* prepacked_weights_container,
2811 _Outptr_ OrtSession** out);
2812
2831 ORT_API2_STATUS(CreateSessionFromArrayWithPrepackedWeightsContainer, _In_ const OrtEnv* env,
2832 _In_ const void* model_data, size_t model_data_length,
2833 _In_ const OrtSessionOptions* options, _Inout_ OrtPrepackedWeightsContainer* prepacked_weights_container,
2834 _Outptr_ OrtSession** out);
2835
2839
2858 _In_ OrtSessionOptions* options, _In_ const OrtTensorRTProviderOptionsV2* tensorrt_options);
2859
2863
2871
2887 ORT_API2_STATUS(UpdateTensorRTProviderOptions, _Inout_ OrtTensorRTProviderOptionsV2* tensorrt_options,
2888 _In_reads_(num_keys) const char* const* provider_options_keys,
2889 _In_reads_(num_keys) const char* const* provider_options_values,
2890 _In_ size_t num_keys);
2891
2903 ORT_API2_STATUS(GetTensorRTProviderOptionsAsString, _In_ const OrtTensorRTProviderOptionsV2* tensorrt_options, _Inout_ OrtAllocator* allocator, _Outptr_ char** ptr);
2904
2909 void(ORT_API_CALL* ReleaseTensorRTProviderOptions)(_Frees_ptr_opt_ OrtTensorRTProviderOptionsV2* input);
2910
2914
2921 ORT_API2_STATUS(EnableOrtCustomOps, _Inout_ OrtSessionOptions* options);
2922
2926
2942 ORT_API2_STATUS(RegisterAllocator, _Inout_ OrtEnv* env, _In_ OrtAllocator* allocator);
2943
2954 ORT_API2_STATUS(UnregisterAllocator, _Inout_ OrtEnv* env,
2955 _In_ const OrtMemoryInfo* mem_info);
2956
2960
2969 ORT_API2_STATUS(IsSparseTensor, _In_ const OrtValue* value, _Out_ int* out);
2970
2987 ORT_API2_STATUS(CreateSparseTensorAsOrtValue, _Inout_ OrtAllocator* allocator, _In_ const int64_t* dense_shape,
2988 size_t dense_shape_len, ONNXTensorElementDataType type, _Outptr_ OrtValue** out);
2989
3007 ORT_API2_STATUS(FillSparseTensorCoo, _Inout_ OrtValue* ort_value, _In_ const OrtMemoryInfo* data_mem_info,
3008 _In_ const int64_t* values_shape, size_t values_shape_len, _In_ const void* values,
3009 _In_ const int64_t* indices_data, size_t indices_num);
3010
3030 ORT_API2_STATUS(FillSparseTensorCsr, _Inout_ OrtValue* ort_value, _In_ const OrtMemoryInfo* data_mem_info,
3031 _In_ const int64_t* values_shape, size_t values_shape_len, _In_ const void* values,
3032 _In_ const int64_t* inner_indices_data, size_t inner_indices_num,
3033 _In_ const int64_t* outer_indices_data, size_t outer_indices_num);
3034
3053 ORT_API2_STATUS(FillSparseTensorBlockSparse, _Inout_ OrtValue* ort_value, _In_ const OrtMemoryInfo* data_mem_info,
3054 _In_ const int64_t* values_shape, size_t values_shape_len, _In_ const void* values,
3055 _In_ const int64_t* indices_shape_data, size_t indices_shape_len,
3056 _In_ const int32_t* indices_data);
3057
3082 ORT_API2_STATUS(CreateSparseTensorWithValuesAsOrtValue, _In_ const OrtMemoryInfo* info, _Inout_ void* p_data,
3083 _In_ const int64_t* dense_shape, size_t dense_shape_len,
3084 _In_ const int64_t* values_shape, size_t values_shape_len,
3086
3101 ORT_API2_STATUS(UseCooIndices, _Inout_ OrtValue* ort_value, _Inout_ int64_t* indices_data, size_t indices_num);
3102
3119 ORT_API2_STATUS(UseCsrIndices, _Inout_ OrtValue* ort_value, _Inout_ int64_t* inner_data, size_t inner_num,
3120 _Inout_ int64_t* outer_data, size_t outer_num);
3121
3135 ORT_API2_STATUS(UseBlockSparseIndices, _Inout_ OrtValue* ort_value, const int64_t* indices_shape, size_t indices_shape_len, _Inout_ int32_t* indices_data);
3136
3144 ORT_API2_STATUS(GetSparseTensorFormat, _In_ const OrtValue* ort_value, _Out_ enum OrtSparseFormat* out);
3145
3153 ORT_API2_STATUS(GetSparseTensorValuesTypeAndShape, _In_ const OrtValue* ort_value, _Outptr_ OrtTensorTypeAndShapeInfo** out);
3154
3162 ORT_API2_STATUS(GetSparseTensorValues, _In_ const OrtValue* ort_value, _Outptr_ const void** out);
3163
3173 ORT_API2_STATUS(GetSparseTensorIndicesTypeShape, _In_ const OrtValue* ort_value, enum OrtSparseIndicesFormat indices_format, _Outptr_ OrtTensorTypeAndShapeInfo** out);
3174
3184 ORT_API2_STATUS(GetSparseTensorIndices, _In_ const OrtValue* ort_value, enum OrtSparseIndicesFormat indices_format, _Out_ size_t* num_indices, _Outptr_ const void** indices);
3188
3201 ORT_API2_STATUS(HasValue, _In_ const OrtValue* value, _Out_ int* out);
3202
3207
3219 ORT_API2_STATUS(KernelContext_GetGPUComputeStream, _In_ const OrtKernelContext* context, _Outptr_ void** out);
3220
3224
3230 ORT_API2_STATUS(GetTensorMemoryInfo, _In_ const OrtValue* value, _Out_ const OrtMemoryInfo** mem_info);
3231
3235
3245 ORT_API2_STATUS(GetExecutionProviderApi, _In_ const char* provider_name, _In_ uint32_t version, _Outptr_ const void** provider_api);
3246
3248
3251
3258 ORT_API2_STATUS(SessionOptionsSetCustomCreateThreadFn, _Inout_ OrtSessionOptions* options, _In_ OrtCustomCreateThreadFn ort_custom_create_thread_fn);
3259
3267 ORT_API2_STATUS(SessionOptionsSetCustomThreadCreationOptions, _Inout_ OrtSessionOptions* options, _In_ void* ort_custom_thread_creation_options);
3268
3276 ORT_API2_STATUS(SessionOptionsSetCustomJoinThreadFn, _Inout_ OrtSessionOptions* options, _In_ OrtCustomJoinThreadFn ort_custom_join_thread_fn);
3278
3281
3288 ORT_API2_STATUS(SetGlobalCustomCreateThreadFn, _Inout_ OrtThreadingOptions* tp_options, _In_ OrtCustomCreateThreadFn ort_custom_create_thread_fn);
3289
3297 ORT_API2_STATUS(SetGlobalCustomThreadCreationOptions, _Inout_ OrtThreadingOptions* tp_options, _In_ void* ort_custom_thread_creation_options);
3298
3306 ORT_API2_STATUS(SetGlobalCustomJoinThreadFn, _Inout_ OrtThreadingOptions* tp_options, _In_ OrtCustomJoinThreadFn ort_custom_join_thread_fn);
3308
3317 ORT_API2_STATUS(SynchronizeBoundInputs, _Inout_ OrtIoBinding* binding_ptr);
3318
3327 ORT_API2_STATUS(SynchronizeBoundOutputs, _Inout_ OrtIoBinding* binding_ptr);
3328
3331
3352 _In_ OrtSessionOptions* options, _In_ const OrtCUDAProviderOptionsV2* cuda_options);
3353
3357
3366 ORT_API2_STATUS(CreateCUDAProviderOptions, _Outptr_ OrtCUDAProviderOptionsV2** out);
3367
3385 ORT_API2_STATUS(UpdateCUDAProviderOptions, _Inout_ OrtCUDAProviderOptionsV2* cuda_options,
3386 _In_reads_(num_keys) const char* const* provider_options_keys,
3387 _In_reads_(num_keys) const char* const* provider_options_values,
3388 _In_ size_t num_keys);
3389
3404 ORT_API2_STATUS(GetCUDAProviderOptionsAsString, _In_ const OrtCUDAProviderOptionsV2* cuda_options, _Inout_ OrtAllocator* allocator, _Outptr_ char** ptr);
3405
3412 void(ORT_API_CALL* ReleaseCUDAProviderOptions)(_Frees_ptr_opt_ OrtCUDAProviderOptionsV2* input);
3413
3415
3428 _In_ OrtSessionOptions* options, _In_ const OrtMIGraphXProviderOptions* migraphx_options);
3429
3451 ORT_API2_STATUS(AddExternalInitializers, _In_ OrtSessionOptions* options,
3452 _In_reads_(input_len) const char* const* initializer_names,
3453 _In_reads_(input_len) const OrtValue* const* initializers, size_t initializers_num);
3454
3465 ORT_API2_STATUS(CreateOpAttr,
3466 _In_ const char* name,
3467 _In_ const void* data,
3468 _In_ int len,
3469 _In_ OrtOpAttrType type,
3470 _Outptr_ OrtOpAttr** op_attr);
3471
3472 /* \brief: Release op attribute
3473 *
3474 * \param[in] opAttr Attribute created by OrtApi::CreateOpAttr
3475 *
3476 * \since Version 1.12.
3477 */
3478 ORT_CLASS_RELEASE(OpAttr);
3479
3497 ORT_API2_STATUS(CreateOp,
3498 _In_ const OrtKernelInfo* info,
3499 _In_z_ const char* op_name,
3500 _In_z_ const char* domain,
3501 int version,
3502 _In_reads_(type_constraint_count) const char** type_constraint_names,
3503 _In_reads_(type_constraint_count) const ONNXTensorElementDataType* type_constraint_values,
3504 int type_constraint_count,
3505 _In_reads_(attr_count) const OrtOpAttr* const* attr_values,
3506 int attr_count,
3507 int input_count,
3508 int output_count,
3509 _Outptr_ OrtOp** ort_op);
3510
3523 ORT_API2_STATUS(InvokeOp,
3524 _In_ const OrtKernelContext* context,
3525 _In_ const OrtOp* ort_op,
3526 _In_ const OrtValue* const* input_values,
3527 _In_ int input_count,
3528 _Inout_ OrtValue* const* output_values,
3529 _In_ int output_count);
3530
3531 /* \brief: Release an onnxruntime operator
3532 *
3533 * \param[in] Op Operator created by OrtApi::CreateOp
3534 *
3535 * \since Version 1.12.
3536 */
3537 ORT_CLASS_RELEASE(Op);
3538
3585 ORT_API2_STATUS(SessionOptionsAppendExecutionProvider, _In_ OrtSessionOptions* options,
3586 _In_ const char* provider_name,
3587 _In_reads_(num_keys) const char* const* provider_options_keys,
3588 _In_reads_(num_keys) const char* const* provider_options_values,
3589 _In_ size_t num_keys);
3590
3591 /* \brief: Get a copy of kernel info
3592 *
3593 * \param[in] info Kernel info
3594 * \param[out] info_copy Copy of kernel info
3595 *
3596 * \since Version 1.12.
3597 */
3598 ORT_API2_STATUS(CopyKernelInfo,
3599 _In_ const OrtKernelInfo* info,
3600 _Outptr_ OrtKernelInfo** info_copy);
3601
3602 /* \brief: Release kernel info
3603 *
3604 * \param[in] KernelInfo A copy of kernel info returned by CopyKernelInfo
3605 *
3606 * \since Version 1.12.
3607 */
3608 ORT_CLASS_RELEASE(KernelInfo);
3609
3612
3626 const OrtTrainingApi*(ORT_API_CALL* GetTrainingApi)(uint32_t version)NO_EXCEPTION;
3627
3629
3642 _In_ OrtSessionOptions* options, _In_ const OrtCANNProviderOptions* cann_options);
3643
3652 ORT_API2_STATUS(CreateCANNProviderOptions, _Outptr_ OrtCANNProviderOptions** out);
3653
3665 ORT_API2_STATUS(UpdateCANNProviderOptions, _Inout_ OrtCANNProviderOptions* cann_options,
3666 _In_reads_(num_keys) const char* const* provider_options_keys,
3667 _In_reads_(num_keys) const char* const* provider_options_values,
3668 _In_ size_t num_keys);
3669
3683 ORT_API2_STATUS(GetCANNProviderOptionsAsString, _In_ const OrtCANNProviderOptions* cann_options,
3684 _Inout_ OrtAllocator* allocator, _Outptr_ char** ptr);
3685
3692 void(ORT_API_CALL* ReleaseCANNProviderOptions)(_Frees_ptr_opt_ OrtCANNProviderOptions* input);
3693
3694 /* \brief Get OrtDevice type from MemoryInfo
3695 *
3696 * \since Version 1.14
3697 */
3698 void(ORT_API_CALL* MemoryInfoGetDeviceType)(_In_ const OrtMemoryInfo* ptr, _Out_ OrtMemoryInfoDeviceType* out);
3699
3700 /* \brief Update the OrtEnv instance with custom log severity level
3701 *
3702 * \param[in] ort_env The OrtEnv instance being used
3703 * \param[in] log_severity_level The log severity level.
3704 *
3705 * \since Version 1.14.
3706 */
3707 ORT_API2_STATUS(UpdateEnvWithCustomLogLevel, _In_ OrtEnv* ort_env, OrtLoggingLevel log_severity_level);
3708
3709 /* \brief Set affinities for intra op threads
3710 *
3711 * Affinity string follows format:
3712 * logical_processor_id,logical_processor_id;logical_processor_id,logical_processor_id
3713 * Semicolon isolates configurations among threads, while comma split processors where ith thread expected to attach to.
3714 * e.g. 1,2,3;4,5
3715 * specifies affinities for two threads, with the 1st thread attach to the 1st, 2nd, and 3rd processor, and 2nd thread to the 4th and 5th.
3716 * To ease the configuration, an "interval" is also allowed:
3717 * e.g. 1-8;8-16;17-24
3718 * orders that the 1st thread runs on first eight processors, 2nd thread runs on next eight processors, and so forth.
3719 * Note:
3720 * 1. Once set, the number of thread affinities must equal to intra_op_num_threads - 1,
3721 * ort does not set affinity on the main thread which is started and managed by the calling app;
3722 * 2. For windows, ort will infer the group id from a logical processor id, for example, assuming there are two groups with each has 64 logical processors,
3723 * an id of 64 will be inferred as the last processor of the 1st group, while 65 will be interpreted as the 1st processor of the second group.
3724 * Hence 64-65 is an invalid configuration, because a windows thread cannot be attached to processors across group boundary.
3725 *
3726 * \since Version 1.14
3727 */
3728 ORT_API2_STATUS(SetGlobalIntraOpThreadAffinity, _Inout_ OrtThreadingOptions* tp_options, const char* affinity_string);
3729
3748 ORT_API2_STATUS(RegisterCustomOpsLibrary_V2, _Inout_ OrtSessionOptions* options, _In_ const ORTCHAR_T* library_name);
3749
3774 ORT_API2_STATUS(RegisterCustomOpsUsingFunction, _Inout_ OrtSessionOptions* options,
3775 _In_ const char* registration_func_name);
3776
3780
3792 ORT_API2_STATUS(KernelInfo_GetInputCount, _In_ const OrtKernelInfo* info, _Out_ size_t* out);
3793
3805 ORT_API2_STATUS(KernelInfo_GetOutputCount, _In_ const OrtKernelInfo* info, _Out_ size_t* out);
3806
3831 ORT_API2_STATUS(KernelInfo_GetInputName, _In_ const OrtKernelInfo* info, size_t index, _Out_ char* out,
3832 _Inout_ size_t* size);
3833
3859 ORT_API2_STATUS(KernelInfo_GetOutputName, _In_ const OrtKernelInfo* info, size_t index, _Out_ char* out,
3860 _Inout_ size_t* size);
3861
3874 ORT_API2_STATUS(KernelInfo_GetInputTypeInfo, _In_ const OrtKernelInfo* info, size_t index,
3875 _Outptr_ OrtTypeInfo** type_info);
3876
3889 ORT_API2_STATUS(KernelInfo_GetOutputTypeInfo, _In_ const OrtKernelInfo* info, size_t index,
3890 _Outptr_ OrtTypeInfo** type_info);
3891
3904 ORT_API2_STATUS(KernelInfoGetAttribute_tensor, _In_ const OrtKernelInfo* info, _In_z_ const char* name,
3905 _Inout_ OrtAllocator* allocator, _Outptr_ OrtValue** out);
3906
3911
3927 ORT_API2_STATUS(HasSessionConfigEntry, _In_ const OrtSessionOptions* options,
3928 _In_z_ const char* config_key, _Out_ int* out);
3929
3958 ORT_API2_STATUS(GetSessionConfigEntry, _In_ const OrtSessionOptions* options,
3959 _In_z_ const char* config_key, _Out_ char* config_value, _Inout_ size_t* size);
3960
3962
3975 _In_ OrtSessionOptions* options, _In_ const OrtDnnlProviderOptions* dnnl_options);
3976
3985 ORT_API2_STATUS(CreateDnnlProviderOptions, _Outptr_ OrtDnnlProviderOptions** out);
3986
4003 ORT_API2_STATUS(UpdateDnnlProviderOptions, _Inout_ OrtDnnlProviderOptions* dnnl_options,
4004 _In_reads_(num_keys) const char* const* provider_options_keys,
4005 _In_reads_(num_keys) const char* const* provider_options_values,
4006 _In_ size_t num_keys);
4007
4022 ORT_API2_STATUS(GetDnnlProviderOptionsAsString, _In_ const OrtDnnlProviderOptions* dnnl_options, _Inout_ OrtAllocator* allocator, _Outptr_ char** ptr);
4023
4028 void(ORT_API_CALL* ReleaseDnnlProviderOptions)(_Frees_ptr_opt_ OrtDnnlProviderOptions* input);
4029
4033
4056 ORT_API2_STATUS(KernelInfo_GetNodeName, _In_ const OrtKernelInfo* info, _Out_ char* out, _Inout_ size_t* size);
4057
4069 ORT_API2_STATUS(KernelInfo_GetLogger, _In_ const OrtKernelInfo* info, _Outptr_ const OrtLogger** logger);
4070
4075
4087 ORT_API2_STATUS(KernelContext_GetLogger, _In_ const OrtKernelContext* context, _Outptr_ const OrtLogger** logger);
4088
4093
4112 ORT_API2_STATUS(Logger_LogMessage, _In_ const OrtLogger* logger, OrtLoggingLevel log_severity_level,
4113 _In_z_ const char* message, _In_z_ const ORTCHAR_T* file_path, int line_number,
4114 _In_z_ const char* func_name);
4115
4127 ORT_API2_STATUS(Logger_GetLoggingSeverityLevel, _In_ const OrtLogger* logger, _Out_ OrtLoggingLevel* out);
4128
4130
4144 ORT_API2_STATUS(KernelInfoGetConstantInput_tensor, _In_ const OrtKernelInfo* info, size_t index, _Out_ int* is_constant, _Outptr_ const OrtValue** out);
4145
4166 ORT_API2_STATUS(CastTypeInfoToOptionalTypeInfo, _In_ const OrtTypeInfo* type_info,
4167 _Outptr_result_maybenull_ const OrtOptionalTypeInfo** out);
4168
4185 ORT_API2_STATUS(GetOptionalContainedTypeInfo, _In_ const OrtOptionalTypeInfo* optional_type_info,
4186 _Outptr_ OrtTypeInfo** out);
4187
4198 ORT_API2_STATUS(GetResizedStringTensorElementBuffer, _Inout_ OrtValue* value, _In_ size_t index, _In_ size_t length_in_bytes, _Inout_ char** buffer);
4199
4210 ORT_API2_STATUS(KernelContext_GetAllocator, _In_ const OrtKernelContext* context, _In_ const OrtMemoryInfo* mem_info, _Outptr_ OrtAllocator** out);
4211
4218 const char*(ORT_API_CALL* GetBuildInfoString)(void);
4219
4222
4231 ORT_API2_STATUS(CreateROCMProviderOptions, _Outptr_ OrtROCMProviderOptions** out);
4232
4250 ORT_API2_STATUS(UpdateROCMProviderOptions, _Inout_ OrtROCMProviderOptions* rocm_options,
4251 _In_reads_(num_keys) const char* const* provider_options_keys,
4252 _In_reads_(num_keys) const char* const* provider_options_values,
4253 _In_ size_t num_keys);
4254
4269 ORT_API2_STATUS(GetROCMProviderOptionsAsString, _In_ const OrtROCMProviderOptions* rocm_options, _Inout_ OrtAllocator* allocator, _Outptr_ char** ptr);
4270
4277 void(ORT_API_CALL* ReleaseROCMProviderOptions)(_Frees_ptr_opt_ OrtROCMProviderOptions* input);
4278
4280};
4281
4282/*
4283 * Steps to use a custom op:
4284 * 1 Create an OrtCustomOpDomain with the domain name used by the custom ops
4285 * 2 Create an OrtCustomOp structure for each op and add them to the domain
4286 * 3 Call OrtAddCustomOpDomain to add the custom domain of ops to the session options
4287 */
4288
4289// Specifies some characteristics of inputs/outputs of custom ops:
4290// Specify if the inputs/outputs are one of:
4291// 1) Non-optional (input/output must be present in the node)
4292// 2) Optional (input/output may be absent in the node)
4293// 3) Variadic: A variadic input or output specifies N (i.e., the minimum arity) or more operands.
4294// Only the last input or output of a custom op may be marked as variadic.
4295// The homogeneity of the variadic input or output determines whether all operands must be of the same
4296// tensor element type.
4302
4303/*
4304 * The OrtCustomOp structure defines a custom op's schema and its kernel callbacks. The callbacks are filled in by
4305 * the implementor of the custom op.
4306 */
4308 uint32_t version; // Must be initialized to ORT_API_VERSION
4309
4310 // This callback creates the kernel, which is a user defined parameter that is passed to the Kernel* callbacks below.
4311 void*(ORT_API_CALL* CreateKernel)(_In_ const struct OrtCustomOp* op, _In_ const OrtApi* api,
4312 _In_ const OrtKernelInfo* info);
4313
4314 // Returns the name of the op
4315 const char*(ORT_API_CALL* GetName)(_In_ const struct OrtCustomOp* op);
4316
4317 // Returns the type of the execution provider, return nullptr to use CPU execution provider
4318 const char*(ORT_API_CALL* GetExecutionProviderType)(_In_ const struct OrtCustomOp* op);
4319
4320 // Returns the count and types of the input & output tensors
4321 ONNXTensorElementDataType(ORT_API_CALL* GetInputType)(_In_ const struct OrtCustomOp* op, _In_ size_t index);
4322 size_t(ORT_API_CALL* GetInputTypeCount)(_In_ const struct OrtCustomOp* op);
4323 ONNXTensorElementDataType(ORT_API_CALL* GetOutputType)(_In_ const struct OrtCustomOp* op, _In_ size_t index);
4324 size_t(ORT_API_CALL* GetOutputTypeCount)(_In_ const struct OrtCustomOp* op);
4325
4326 // Op kernel callbacks
4327 void(ORT_API_CALL* KernelCompute)(_In_ void* op_kernel, _In_ OrtKernelContext* context);
4328 void(ORT_API_CALL* KernelDestroy)(_In_ void* op_kernel);
4329
4330 // Returns the characteristics of the input & output tensors
4331 OrtCustomOpInputOutputCharacteristic(ORT_API_CALL* GetInputCharacteristic)(_In_ const struct OrtCustomOp* op, _In_ size_t index);
4332 OrtCustomOpInputOutputCharacteristic(ORT_API_CALL* GetOutputCharacteristic)(_In_ const struct OrtCustomOp* op, _In_ size_t index);
4333
4334 // Returns the memory type of the input tensors. This API allows the custom op
4335 // to place the inputs on specific devices. By default, it returns
4336 // OrtMemTypeDefault, which means the input is placed on the default device for
4337 // the execution provider. If the inputs need to be with different memory tyeps,
4338 // this function can be overridden to return the specific memory types.
4339 OrtMemType(ORT_API_CALL* GetInputMemoryType)(_In_ const struct OrtCustomOp* op, _In_ size_t index);
4340
4341 // Returns the minimum number of input arguments expected for the variadic input.
4342 // Applicable only for custom ops that have a variadic input.
4343 int(ORT_API_CALL* GetVariadicInputMinArity)(_In_ const struct OrtCustomOp* op);
4344
4345 // Returns true (non-zero) if all arguments of a variadic input have to be of the same type (homogeneous),
4346 // and false (zero) otherwise.
4347 // Applicable only for custom ops that have a variadic input.
4348 int(ORT_API_CALL* GetVariadicInputHomogeneity)(_In_ const struct OrtCustomOp* op);
4349
4350 // Returns the minimum number of output values expected for the variadic output.
4351 // Applicable only for custom ops that have a variadic output.
4352 int(ORT_API_CALL* GetVariadicOutputMinArity)(_In_ const struct OrtCustomOp* op);
4353
4354 // Returns true (non-zero) if all outputs values of a variadic output have to be of the same type (homogeneous),
4355 // and false (zero) otherwise.
4356 // Applicable only for custom ops that have a variadic output.
4357 int(ORT_API_CALL* GetVariadicOutputHomogeneity)(_In_ const struct OrtCustomOp* op);
4358};
4359
4360/*
4361 * This is the old way to add the CUDA provider to the session, please use SessionOptionsAppendExecutionProvider_CUDA above to access the latest functionality
4362 * This function always exists, but will only succeed if Onnxruntime was built with CUDA support and the CUDA provider shared library exists
4363 *
4364 * \param device_id CUDA device id, starts from zero.
4365 */
4366ORT_API_STATUS(OrtSessionOptionsAppendExecutionProvider_CUDA, _In_ OrtSessionOptions* options, int device_id);
4367
4368/*
4369 * This is the old way to add the ROCm provider to the session, please use
4370 * SessionOptionsAppendExecutionProvider_ROCM above to access the latest functionality
4371 * This function always exists, but will only succeed if Onnxruntime was built with
4372 * HIP support and the ROCm provider shared library exists
4373 *
4374 * \param device_id HIP device id, starts from zero.
4375 */
4376ORT_API_STATUS(OrtSessionOptionsAppendExecutionProvider_ROCM, _In_ OrtSessionOptions* options, int device_id);
4377
4378/*
4379 * This is the old way to add the MIGraphX provider to the session, please use
4380 * SessionOptionsAppendExecutionProvider_MIGraphX above to access the latest functionality
4381 * This function always exists, but will only succeed if Onnxruntime was built with
4382 * HIP support and the MIGraphX provider shared library exists
4383 *
4384 * \param device_id HIP device id, starts from zero.
4385 */
4386ORT_API_STATUS(OrtSessionOptionsAppendExecutionProvider_MIGraphX, _In_ OrtSessionOptions* options, int device_id);
4387
4388/*
4389 * This is the old way to add the oneDNN provider to the session, please use
4390 * SessionOptionsAppendExecutionProvider_oneDNN above to access the latest functionality
4391 * This function always exists, but will only succeed if Onnxruntime was built with
4392 * oneDNN support and the oneDNN provider shared library exists
4393 *
4394 * \param use_arena zero: false. non-zero: true.
4395 */
4396ORT_API_STATUS(OrtSessionOptionsAppendExecutionProvider_Dnnl, _In_ OrtSessionOptions* options, int use_arena);
4397
4398#ifdef __cplusplus
4399}
4400#endif
OrtStatus * OrtSessionOptionsAppendExecutionProvider_MIGraphX(OrtSessionOptions *options, int device_id)
struct OrtMemoryInfo OrtMemoryInfo
Definition: onnxruntime_c_api.h:271
struct OrtKernelInfo OrtKernelInfo
Definition: onnxruntime_c_api.h:350
OrtLoggingLevel
Logging severity levels.
Definition: onnxruntime_c_api.h:226
const struct OrtCustomHandleType * OrtCustomThreadHandle
OrtMemoryInfoDeviceType
This mimics OrtDevice type constants so they can be returned in the API.
Definition: onnxruntime_c_api.h:374
void(* OrtLoggingFunction)(void *param, OrtLoggingLevel severity, const char *category, const char *logid, const char *code_location, const char *message)
Definition: onnxruntime_c_api.h:315
void(* OrtCustomJoinThreadFn)(OrtCustomThreadHandle ort_custom_thread_handle)
Custom thread join function.
Definition: onnxruntime_c_api.h:676
OrtStatus *(* RegisterCustomOpsFn)(OrtSessionOptions *options, const OrtApiBase *api)
Definition: onnxruntime_c_api.h:678
OrtCustomOpInputOutputCharacteristic
Definition: onnxruntime_c_api.h:4297
struct OrtTensorRTProviderOptionsV2 OrtTensorRTProviderOptionsV2
Definition: onnxruntime_c_api.h:288
struct OrtOpAttr OrtOpAttr
Definition: onnxruntime_c_api.h:293
struct OrtThreadingOptions OrtThreadingOptions
Definition: onnxruntime_c_api.h:285
struct OrtSequenceTypeInfo OrtSequenceTypeInfo
Definition: onnxruntime_c_api.h:279
OrtLanguageProjection
Language projection identifiers /see OrtApi::SetLanguageProjection.
Definition: onnxruntime_c_api.h:339
struct OrtDnnlProviderOptions OrtDnnlProviderOptions
Definition: onnxruntime_c_api.h:291
OrtSparseIndicesFormat
Definition: onnxruntime_c_api.h:215
struct OrtPrepackedWeightsContainer OrtPrepackedWeightsContainer
Definition: onnxruntime_c_api.h:287
struct OrtSession OrtSession
Definition: onnxruntime_c_api.h:273
struct OrtCustomOpDomain OrtCustomOpDomain
Definition: onnxruntime_c_api.h:282
struct OrtIoBinding OrtIoBinding
Definition: onnxruntime_c_api.h:272
OrtAllocatorType
Definition: onnxruntime_c_api.h:356
struct OrtOp OrtOp
Definition: onnxruntime_c_api.h:292
struct OrtModelMetadata OrtModelMetadata
Definition: onnxruntime_c_api.h:283
struct OrtTypeInfo OrtTypeInfo
Definition: onnxruntime_c_api.h:276
struct OrtTensorTypeAndShapeInfo OrtTensorTypeAndShapeInfo
Definition: onnxruntime_c_api.h:277
struct OrtCUDAProviderOptionsV2 OrtCUDAProviderOptionsV2
Definition: onnxruntime_c_api.h:289
struct OrtKernelContext OrtKernelContext
Definition: onnxruntime_c_api.h:352
OrtStatus * OrtSessionOptionsAppendExecutionProvider_Dnnl(OrtSessionOptions *options, int use_arena)
OrtCudnnConvAlgoSearch
Algorithm to use for cuDNN Convolution Op.
Definition: onnxruntime_c_api.h:382
struct OrtCANNProviderOptions OrtCANNProviderOptions
Definition: onnxruntime_c_api.h:290
struct OrtRunOptions OrtRunOptions
Definition: onnxruntime_c_api.h:275
void(* OrtThreadWorkerFn)(void *ort_worker_fn_param)
Thread work loop function.
Definition: onnxruntime_c_api.h:658
OrtStatus * OrtSessionOptionsAppendExecutionProvider_ROCM(OrtSessionOptions *options, int device_id)
struct OrtOptionalTypeInfo OrtOptionalTypeInfo
Definition: onnxruntime_c_api.h:280
struct OrtSessionOptions OrtSessionOptions
Definition: onnxruntime_c_api.h:281
struct OrtValue OrtValue
Definition: onnxruntime_c_api.h:274
GraphOptimizationLevel
Graph optimization level.
Definition: onnxruntime_c_api.h:324
OrtStatus * OrtStatusPtr
Definition: onnxruntime_c_api.h:299
OrtMemType
Memory types for allocated memory, execution provider specific types should be extended in each provi...
Definition: onnxruntime_c_api.h:365
OrtSparseFormat
Definition: onnxruntime_c_api.h:207
ONNXType
Definition: onnxruntime_c_api.h:195
struct OrtEnv OrtEnv
Definition: onnxruntime_c_api.h:269
OrtErrorCode
Definition: onnxruntime_c_api.h:234
struct OrtStatus OrtStatus
Definition: onnxruntime_c_api.h:270
struct OrtLogger OrtLogger
Definition: onnxruntime_c_api.h:294
struct OrtMapTypeInfo OrtMapTypeInfo
Definition: onnxruntime_c_api.h:278
struct OrtArenaCfg OrtArenaCfg
Definition: onnxruntime_c_api.h:286
ExecutionMode
Definition: onnxruntime_c_api.h:331
OrtStatus * OrtSessionOptionsAppendExecutionProvider_CUDA(OrtSessionOptions *options, int device_id)
OrtOpAttrType
Definition: onnxruntime_c_api.h:249
OrtCustomThreadHandle(* OrtCustomCreateThreadFn)(void *ort_custom_thread_creation_options, OrtThreadWorkerFn ort_thread_worker_fn, void *ort_worker_fn_param)
Ort custom thread creation function.
Definition: onnxruntime_c_api.h:669
ONNXTensorElementDataType
Definition: onnxruntime_c_api.h:174
const OrtApiBase * OrtGetApiBase(void)
The Onnxruntime library's entry point to access the C API.
@ ORT_LOGGING_LEVEL_VERBOSE
Verbose informational messages (least severe).
Definition: onnxruntime_c_api.h:227
@ ORT_LOGGING_LEVEL_INFO
Informational messages.
Definition: onnxruntime_c_api.h:228
@ ORT_LOGGING_LEVEL_ERROR
Error messages.
Definition: onnxruntime_c_api.h:230
@ ORT_LOGGING_LEVEL_WARNING
Warning messages.
Definition: onnxruntime_c_api.h:229
@ ORT_LOGGING_LEVEL_FATAL
Fatal error messages (most severe).
Definition: onnxruntime_c_api.h:231
@ OrtMemoryInfoDeviceType_GPU
Definition: onnxruntime_c_api.h:376
@ OrtMemoryInfoDeviceType_FPGA
Definition: onnxruntime_c_api.h:377
@ OrtMemoryInfoDeviceType_CPU
Definition: onnxruntime_c_api.h:375
@ INPUT_OUTPUT_VARIADIC
Definition: onnxruntime_c_api.h:4300
@ INPUT_OUTPUT_REQUIRED
Definition: onnxruntime_c_api.h:4298
@ INPUT_OUTPUT_OPTIONAL
Definition: onnxruntime_c_api.h:4299
@ ORT_PROJECTION_C
Definition: onnxruntime_c_api.h:340
@ ORT_PROJECTION_PYTHON
Definition: onnxruntime_c_api.h:343
@ ORT_PROJECTION_CPLUSPLUS
Definition: onnxruntime_c_api.h:341
@ ORT_PROJECTION_WINML
Definition: onnxruntime_c_api.h:345
@ ORT_PROJECTION_CSHARP
Definition: onnxruntime_c_api.h:342
@ ORT_PROJECTION_JAVA
Definition: onnxruntime_c_api.h:344
@ ORT_PROJECTION_NODEJS
Definition: onnxruntime_c_api.h:346
@ ORT_SPARSE_COO_INDICES
Definition: onnxruntime_c_api.h:216
@ ORT_SPARSE_BLOCK_SPARSE_INDICES
Definition: onnxruntime_c_api.h:219
@ ORT_SPARSE_CSR_OUTER_INDICES
Definition: onnxruntime_c_api.h:218
@ ORT_SPARSE_CSR_INNER_INDICES
Definition: onnxruntime_c_api.h:217
@ OrtDeviceAllocator
Definition: onnxruntime_c_api.h:358
@ OrtArenaAllocator
Definition: onnxruntime_c_api.h:359
@ OrtInvalidAllocator
Definition: onnxruntime_c_api.h:357
@ OrtCudnnConvAlgoSearchDefault
Definition: onnxruntime_c_api.h:385
@ OrtCudnnConvAlgoSearchExhaustive
Definition: onnxruntime_c_api.h:383
@ OrtCudnnConvAlgoSearchHeuristic
Definition: onnxruntime_c_api.h:384
@ ORT_ENABLE_BASIC
Definition: onnxruntime_c_api.h:326
@ ORT_ENABLE_ALL
Definition: onnxruntime_c_api.h:328
@ ORT_DISABLE_ALL
Definition: onnxruntime_c_api.h:325
@ ORT_ENABLE_EXTENDED
Definition: onnxruntime_c_api.h:327
@ OrtMemTypeCPUInput
Any CPU memory used by non-CPU execution provider.
Definition: onnxruntime_c_api.h:366
@ OrtMemTypeCPU
Temporary CPU accessible memory allocated by non-CPU execution provider, i.e. CUDA_PINNED.
Definition: onnxruntime_c_api.h:368
@ OrtMemTypeDefault
The default allocator for execution provider.
Definition: onnxruntime_c_api.h:369
@ OrtMemTypeCPUOutput
CPU accessible memory outputted by non-CPU execution provider, i.e. CUDA_PINNED.
Definition: onnxruntime_c_api.h:367
@ ORT_SPARSE_CSRC
Definition: onnxruntime_c_api.h:210
@ ORT_SPARSE_COO
Definition: onnxruntime_c_api.h:209
@ ORT_SPARSE_BLOCK_SPARSE
Definition: onnxruntime_c_api.h:211
@ ORT_SPARSE_UNDEFINED
Definition: onnxruntime_c_api.h:208
@ ONNX_TYPE_SEQUENCE
Definition: onnxruntime_c_api.h:198
@ ONNX_TYPE_MAP
Definition: onnxruntime_c_api.h:199
@ ONNX_TYPE_OPAQUE
Definition: onnxruntime_c_api.h:200
@ ONNX_TYPE_UNKNOWN
Definition: onnxruntime_c_api.h:196
@ ONNX_TYPE_TENSOR
Definition: onnxruntime_c_api.h:197
@ ONNX_TYPE_SPARSETENSOR
Definition: onnxruntime_c_api.h:201
@ ONNX_TYPE_OPTIONAL
Definition: onnxruntime_c_api.h:202
@ ORT_NO_SUCHFILE
Definition: onnxruntime_c_api.h:238
@ ORT_OK
Definition: onnxruntime_c_api.h:235
@ ORT_INVALID_ARGUMENT
Definition: onnxruntime_c_api.h:237
@ ORT_EP_FAIL
Definition: onnxruntime_c_api.h:246
@ ORT_NOT_IMPLEMENTED
Definition: onnxruntime_c_api.h:244
@ ORT_RUNTIME_EXCEPTION
Definition: onnxruntime_c_api.h:241
@ ORT_ENGINE_ERROR
Definition: onnxruntime_c_api.h:240
@ ORT_FAIL
Definition: onnxruntime_c_api.h:236
@ ORT_INVALID_PROTOBUF
Definition: onnxruntime_c_api.h:242
@ ORT_NO_MODEL
Definition: onnxruntime_c_api.h:239
@ ORT_INVALID_GRAPH
Definition: onnxruntime_c_api.h:245
@ ORT_MODEL_LOADED
Definition: onnxruntime_c_api.h:243
@ ORT_PARALLEL
Definition: onnxruntime_c_api.h:333
@ ORT_SEQUENTIAL
Definition: onnxruntime_c_api.h:332
@ ORT_OP_ATTR_INT
Definition: onnxruntime_c_api.h:251
@ ORT_OP_ATTR_FLOATS
Definition: onnxruntime_c_api.h:254
@ ORT_OP_ATTR_STRINGS
Definition: onnxruntime_c_api.h:256
@ ORT_OP_ATTR_UNDEFINED
Definition: onnxruntime_c_api.h:250
@ ORT_OP_ATTR_INTS
Definition: onnxruntime_c_api.h:252
@ ORT_OP_ATTR_STRING
Definition: onnxruntime_c_api.h:255
@ ORT_OP_ATTR_FLOAT
Definition: onnxruntime_c_api.h:253
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING
Definition: onnxruntime_c_api.h:183
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_INT32
Definition: onnxruntime_c_api.h:181
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT32
Definition: onnxruntime_c_api.h:187
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT16
Definition: onnxruntime_c_api.h:179
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED
Definition: onnxruntime_c_api.h:175
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX128
Definition: onnxruntime_c_api.h:190
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT64
Definition: onnxruntime_c_api.h:188
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64
Definition: onnxruntime_c_api.h:182
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_BOOL
Definition: onnxruntime_c_api.h:184
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT16
Definition: onnxruntime_c_api.h:185
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8
Definition: onnxruntime_c_api.h:177
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_INT16
Definition: onnxruntime_c_api.h:180
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE
Definition: onnxruntime_c_api.h:186
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8
Definition: onnxruntime_c_api.h:178
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT
Definition: onnxruntime_c_api.h:176
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_BFLOAT16
Definition: onnxruntime_c_api.h:191
@ ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX64
Definition: onnxruntime_c_api.h:189
Memory allocation interface.
Definition: onnxruntime_c_api.h:308
void(* Free)(struct OrtAllocator *this_, void *p)
Free a block of memory previously allocated with OrtAllocator::Alloc.
Definition: onnxruntime_c_api.h:311
const struct OrtMemoryInfo *(* Info)(const struct OrtAllocator *this_)
Return a pointer to an OrtMemoryInfo that describes this allocator.
Definition: onnxruntime_c_api.h:312
uint32_t version
Must be initialized to ORT_API_VERSION.
Definition: onnxruntime_c_api.h:309
void *(* Alloc)(struct OrtAllocator *this_, size_t size)
Returns a pointer to an allocated block of size bytes.
Definition: onnxruntime_c_api.h:310
The helper interface to get the right version of OrtApi.
Definition: onnxruntime_c_api.h:626
const char *(* GetVersionString)(void)
Returns a null terminated string of the version of the Onnxruntime library (eg: "1....
Definition: onnxruntime_c_api.h:642
const OrtApi *(* GetApi)(uint32_t version)
Get a pointer to the requested version of the OrtApi.
Definition: onnxruntime_c_api.h:636
The C API.
Definition: onnxruntime_c_api.h:687
OrtStatus * SetGlobalIntraOpThreadAffinity(OrtThreadingOptions *tp_options, const char *affinity_string)
OrtStatus * SessionGetOverridableInitializerTypeInfo(const OrtSession *session, size_t index, OrtTypeInfo **type_info)
Get overridable initializer type information.
OrtStatus * SessionOptionsSetCustomJoinThreadFn(OrtSessionOptions *options, OrtCustomJoinThreadFn ort_custom_join_thread_fn)
Set custom thread join function.
OrtStatus * KernelInfoGetAttributeArray_int64(const OrtKernelInfo *info, const char *name, int64_t *out, size_t *size)
Fetch an array of int64_t values stored as an attribute in the graph node.
OrtStatus * CreateSessionOptions(OrtSessionOptions **options)
Create an OrtSessionOptions object.
void(* ReleaseDnnlProviderOptions)(OrtDnnlProviderOptions *input)
Release an OrtDnnlProviderOptions.
Definition: onnxruntime_c_api.h:4028
OrtStatus * TensorAt(OrtValue *value, const int64_t *location_values, size_t location_values_count, void **out)
Direct memory access to a specified tensor element.
OrtStatus * KernelInfoGetAttribute_float(const OrtKernelInfo *info, const char *name, float *out)
Get a float stored as an attribute in the graph node.
OrtStatus * GetCANNProviderOptionsAsString(const OrtCANNProviderOptions *cann_options, OrtAllocator *allocator, char **ptr)
Get serialized CANN provider options string.
OrtStatus * InvokeOp(const OrtKernelContext *context, const OrtOp *ort_op, const OrtValue *const *input_values, int input_count, OrtValue *const *output_values, int output_count)
: Invoke the operator created by OrtApi::CreateOp The inputs must follow the order as specified in on...
OrtStatus * HasSessionConfigEntry(const OrtSessionOptions *options, const char *config_key, int *out)
Checks if the given session configuration entry exists.
const char *(* GetBuildInfoString)(void)
Returns a null terminated string of the build info including git info and cxx flags.
Definition: onnxruntime_c_api.h:4218
OrtStatus * GetTensorMemoryInfo(const OrtValue *value, const OrtMemoryInfo **mem_info)
Returns a pointer to the OrtMemoryInfo of a Tensor.
OrtStatus * EnableCpuMemArena(OrtSessionOptions *options)
Enable the memory arena on CPU.
OrtStatus * CreateSparseTensorWithValuesAsOrtValue(const OrtMemoryInfo *info, void *p_data, const int64_t *dense_shape, size_t dense_shape_len, const int64_t *values_shape, size_t values_shape_len, ONNXTensorElementDataType type, OrtValue **out)
OrtStatus * GetValueCount(const OrtValue *value, size_t *out)
Get non tensor value count from an OrtValue.
OrtStatus * SetGlobalCustomJoinThreadFn(OrtThreadingOptions *tp_options, OrtCustomJoinThreadFn ort_custom_join_thread_fn)
Set custom thread join function for global thread pools.
OrtStatus * CreateCUDAProviderOptions(OrtCUDAProviderOptionsV2 **out)
Create an OrtCUDAProviderOptionsV2.
OrtStatus * DisableProfiling(OrtSessionOptions *options)
Disable profiling for a session.
OrtStatus * KernelInfoGetAttributeArray_float(const OrtKernelInfo *info, const char *name, float *out, size_t *size)
Fetch an array of int64_t values stored as an attribute in the graph node.
OrtStatus * CreatePrepackedWeightsContainer(OrtPrepackedWeightsContainer **out)
Create an OrtPrepackedWeightsContainer.
OrtStatus * CreateSessionFromArrayWithPrepackedWeightsContainer(const OrtEnv *env, const void *model_data, size_t model_data_length, const OrtSessionOptions *options, OrtPrepackedWeightsContainer *prepacked_weights_container, OrtSession **out)
Create session from memory with prepacked weights container.
OrtStatus * AddFreeDimensionOverrideByName(OrtSessionOptions *options, const char *dim_name, int64_t dim_value)
OrtStatus * KernelInfo_GetInputCount(const OrtKernelInfo *info, size_t *out)
Get the number of inputs from OrtKernelInfo.
OrtStatus * GetSparseTensorFormat(const OrtValue *ort_value, enum OrtSparseFormat *out)
Returns sparse tensor format enum iff a given ort value contains an instance of sparse tensor.
OrtStatus * KernelContext_GetGPUComputeStream(const OrtKernelContext *context, void **out)
Used for custom operators, gets the GPU compute stream to use to launch the custom a GPU kernel.
OrtStatus * UpdateCANNProviderOptions(OrtCANNProviderOptions *cann_options, const char *const *provider_options_keys, const char *const *provider_options_values, size_t num_keys)
Set options in a CANN Execution Provider.
OrtStatus * SessionGetOutputName(const OrtSession *session, size_t index, OrtAllocator *allocator, char **value)
Get output name.
OrtStatus * SessionOptionsAppendExecutionProvider_TensorRT(OrtSessionOptions *options, const OrtTensorRTProviderOptions *tensorrt_options)
Append TensorRT provider to session options.
const OrtTrainingApi *(* GetTrainingApi)(uint32_t version)
Gets the Training C Api struct.
Definition: onnxruntime_c_api.h:3626
OrtStatus * SetIntraOpNumThreads(OrtSessionOptions *options, int intra_op_num_threads)
Sets the number of threads used to parallelize the execution within nodes.
OrtStatus * GetTypeInfo(const OrtValue *value, OrtTypeInfo **out)
Get type information of an OrtValue.
OrtStatus * CastTypeInfoToMapTypeInfo(const OrtTypeInfo *type_info, const OrtMapTypeInfo **out)
Get detailed map information from an OrtTypeInfo.
OrtStatus * KernelContext_GetLogger(const OrtKernelContext *context, const OrtLogger **logger)
Get the runtime logger from OrtKernelContext.
OrtStatus * SetGlobalCustomThreadCreationOptions(OrtThreadingOptions *tp_options, void *ort_custom_thread_creation_options)
Set custom thread creation options for global thread pools.
OrtStatus * AddSessionConfigEntry(OrtSessionOptions *options, const char *config_key, const char *config_value)
Set a session configuration entry as a pair of strings.
OrtStatus * SetGlobalDenormalAsZero(OrtThreadingOptions *tp_options)
Set threading flush-to-zero and denormal-as-zero.
void(* ClearBoundInputs)(OrtIoBinding *binding_ptr) __attribute__((nonnull))
Clears any previously set Inputs for an OrtIoBinding.
Definition: onnxruntime_c_api.h:2354
OrtStatus * KernelInfo_GetInputTypeInfo(const OrtKernelInfo *info, size_t index, OrtTypeInfo **type_info)
Get the type information for a OrtKernelInfo's input.
OrtStatus * KernelInfoGetAttribute_string(const OrtKernelInfo *info, const char *name, char *out, size_t *size)
Fetch a string stored as an attribute in the graph node.
OrtStatus * GetSparseTensorIndicesTypeShape(const OrtValue *ort_value, enum OrtSparseIndicesFormat indices_format, OrtTensorTypeAndShapeInfo **out)
Returns data type, shape for the type of indices specified by indices_format.
OrtStatus * SessionOptionsAppendExecutionProvider_MIGraphX(OrtSessionOptions *options, const OrtMIGraphXProviderOptions *migraphx_options)
Append MIGraphX provider to session options.
OrtStatus * RunOptionsSetRunLogVerbosityLevel(OrtRunOptions *options, int log_verbosity_level)
Set per-run log verbosity level.
OrtStatus * AddInitializer(OrtSessionOptions *options, const char *name, const OrtValue *val)
Add a pre-allocated initializer to a session.
OrtStatus * CreateEnv(OrtLoggingLevel log_severity_level, const char *logid, OrtEnv **out)
Create an OrtEnv.
OrtStatus * UseCooIndices(OrtValue *ort_value, int64_t *indices_data, size_t indices_num)
OrtStatus * GetTensorMutableData(OrtValue *value, void **out)
Get a pointer to the raw data inside a tensor.
OrtStatus * SessionOptionsAppendExecutionProvider_OpenVINO(OrtSessionOptions *options, const OrtOpenVINOProviderOptions *provider_options)
Append OpenVINO execution provider to the session options.
OrtStatus * IsSparseTensor(const OrtValue *value, int *out)
Sets *out to 1 iff an OrtValue is a SparseTensor, and 0 otherwise.
OrtStatus * GetTensorElementType(const OrtTensorTypeAndShapeInfo *info, enum ONNXTensorElementDataType *out)
Get element type in OrtTensorTypeAndShapeInfo.
OrtStatus * CreateSparseTensorAsOrtValue(OrtAllocator *allocator, const int64_t *dense_shape, size_t dense_shape_len, ONNXTensorElementDataType type, OrtValue **out)
Create an OrtValue with a sparse tensor that is empty.
OrtStatus * FillStringTensorElement(OrtValue *value, const char *s, size_t index)
Set a single string in a string tensor.
OrtStatus * CreateTensorWithDataAsOrtValue(const OrtMemoryInfo *info, void *p_data, size_t p_data_len, const int64_t *shape, size_t shape_len, ONNXTensorElementDataType type, OrtValue **out)
Create a tensor backed by a user supplied buffer.
OrtStatus * ModelMetadataGetGraphDescription(const OrtModelMetadata *model_metadata, OrtAllocator *allocator, char **value)
OrtStatus * UpdateDnnlProviderOptions(OrtDnnlProviderOptions *dnnl_options, const char *const *provider_options_keys, const char *const *provider_options_values, size_t num_keys)
Set options in a oneDNN Execution Provider.
OrtStatus * GetStringTensorElementLength(const OrtValue *value, size_t index, size_t *out)
Get the length of a single string in a string tensor.
void(* MemoryInfoGetDeviceType)(const OrtMemoryInfo *ptr, OrtMemoryInfoDeviceType *out)
Definition: onnxruntime_c_api.h:3698
OrtStatus * AddRunConfigEntry(OrtRunOptions *options, const char *config_key, const char *config_value)
Set a single run configuration entry as a pair of strings.
OrtStatus * GetBoundOutputValues(const OrtIoBinding *binding_ptr, OrtAllocator *allocator, OrtValue ***output, size_t *output_count)
Get the output OrtValue objects from an OrtIoBinding.
OrtStatus * ModelMetadataGetDomain(const OrtModelMetadata *model_metadata, OrtAllocator *allocator, char **value)
Get domain from an OrtModelMetadata.
OrtStatus * SetLanguageProjection(const OrtEnv *ort_env, OrtLanguageProjection projection)
Set language projection.
OrtStatus * FillStringTensor(OrtValue *value, const char *const *s, size_t s_len)
Set all strings at once in a string tensor.
OrtStatus * SetSessionLogId(OrtSessionOptions *options, const char *logid)
Set session log id.
OrtStatus * SessionOptionsAppendExecutionProvider_CUDA(OrtSessionOptions *options, const OrtCUDAProviderOptions *cuda_options)
Append CUDA provider to session options.
OrtStatus * AddExternalInitializers(OrtSessionOptions *options, const char *const *initializer_names, const OrtValue *const *initializers, size_t initializers_num)
Replace initialized Tensors with external data with the data provided in initializers.
OrtStatus * RegisterAllocator(OrtEnv *env, OrtAllocator *allocator)
Register a custom allocator.
OrtStatus * SetGlobalSpinControl(OrtThreadingOptions *tp_options, int allow_spinning)
Set global spin control options.
OrtStatus * MemoryInfoGetId(const OrtMemoryInfo *ptr, int *out)
Get the id from OrtMemoryInfo.
OrtStatus * KernelInfo_GetOutputName(const OrtKernelInfo *info, size_t index, char *out, size_t *size)
Get the name of a OrtKernelInfo's output.
OrtStatus * Logger_LogMessage(const OrtLogger *logger, OrtLoggingLevel log_severity_level, const char *message, const char *file_path, int line_number, const char *func_name)
Logs a message at the given severity level using the provided OrtLogger.
OrtStatus * CreateEnvWithCustomLogger(OrtLoggingFunction logging_function, void *logger_param, OrtLoggingLevel log_severity_level, const char *logid, OrtEnv **out)
Create an OrtEnv.
OrtStatus * MemoryInfoGetName(const OrtMemoryInfo *ptr, const char **out)
Get name from OrtMemoryInfo.
OrtStatus * Logger_GetLoggingSeverityLevel(const OrtLogger *logger, OrtLoggingLevel *out)
Get the logging severity level of the OrtLogger.
OrtStatus * GetExecutionProviderApi(const char *provider_name, uint32_t version, const void **provider_api)
Get a pointer to the requested version of the Execution Provider specific API extensions to the OrtAp...
OrtStatus * KernelContext_GetOutputCount(const OrtKernelContext *context, size_t *out)
Used for custom operators, get the output count of a kernel.
OrtStatus * GetTensorShapeElementCount(const OrtTensorTypeAndShapeInfo *info, size_t *out)
Get total number of elements in a tensor shape from an OrtTensorTypeAndShapeInfo.
OrtStatus * CastTypeInfoToTensorInfo(const OrtTypeInfo *type_info, const OrtTensorTypeAndShapeInfo **out)
Get OrtTensorTypeAndShapeInfo from an OrtTypeInfo.
OrtStatus * GetOptionalContainedTypeInfo(const OrtOptionalTypeInfo *optional_type_info, OrtTypeInfo **out)
Get OrtTypeInfo for the allowed contained type from an OrtOptionalTypeInfo.
OrtStatus * CreateOp(const OrtKernelInfo *info, const char *op_name, const char *domain, int version, const char **type_constraint_names, const ONNXTensorElementDataType *type_constraint_values, int type_constraint_count, const OrtOpAttr *const *attr_values, int attr_count, int input_count, int output_count, OrtOp **ort_op)
: Create onnxruntime native operator
OrtStatus * MemoryInfoGetType(const OrtMemoryInfo *ptr, OrtAllocatorType *out)
Get the OrtAllocatorType from OrtMemoryInfo.
OrtStatus * HasValue(const OrtValue *value, int *out)
Sets out to 1 iff an optional type OrtValue has an element, 0 otherwise (OrtValue is None) Use this A...
OrtStatus * CreateEnvWithGlobalThreadPools(OrtLoggingLevel log_severity_level, const char *logid, const OrtThreadingOptions *tp_options, OrtEnv **out)
Create an OrtEnv.
OrtStatus * KernelContext_GetAllocator(const OrtKernelContext *context, const OrtMemoryInfo *mem_info, OrtAllocator **out)
Get Allocator from KernelContext for a specific memoryInfo.
OrtStatus * KernelInfoGetConstantInput_tensor(const OrtKernelInfo *info, size_t index, int *is_constant, const OrtValue **out)
Get a OrtValue tensor stored as a constant initializer in the graph node.
OrtStatus * GetCUDAProviderOptionsAsString(const OrtCUDAProviderOptionsV2 *cuda_options, OrtAllocator *allocator, char **ptr)
OrtStatus * UpdateCUDAProviderOptions(OrtCUDAProviderOptionsV2 *cuda_options, const char *const *provider_options_keys, const char *const *provider_options_values, size_t num_keys)
Set options in a CUDA Execution Provider.
OrtStatus * CopyKernelInfo(const OrtKernelInfo *info, OrtKernelInfo **info_copy)
OrtStatus * GetTensorRTProviderOptionsAsString(const OrtTensorRTProviderOptionsV2 *tensorrt_options, OrtAllocator *allocator, char **ptr)
Get serialized TensorRT provider options string.
OrtStatus * SessionOptionsSetCustomThreadCreationOptions(OrtSessionOptions *options, void *ort_custom_thread_creation_options)
Set creation options for custom thread.
OrtStatus * GetDimensionsCount(const OrtTensorTypeAndShapeInfo *info, size_t *out)
Get dimension count in OrtTensorTypeAndShapeInfo.
void(* ReleaseROCMProviderOptions)(OrtROCMProviderOptions *input)
Release an OrtROCMProviderOptions.
Definition: onnxruntime_c_api.h:4277
OrtStatus * UpdateROCMProviderOptions(OrtROCMProviderOptions *rocm_options, const char *const *provider_options_keys, const char *const *provider_options_values, size_t num_keys)
Set options in a ROCm Execution Provider.
OrtStatus * KernelInfo_GetInputName(const OrtKernelInfo *info, size_t index, char *out, size_t *size)
Get the name of a OrtKernelInfo's input.
OrtStatus * RegisterCustomOpsLibrary(OrtSessionOptions *options, const char *library_path, void **library_handle)
OrtStatus * SetCurrentGpuDeviceId(int device_id)
Set current GPU device ID.
OrtStatus * GetOnnxTypeFromTypeInfo(const OrtTypeInfo *type_info, enum ONNXType *out)
Get ONNXType from OrtTypeInfo.
OrtStatus * GetDenotationFromTypeInfo(const OrtTypeInfo *type_info, const char **const denotation, size_t *len)
Get denotation from type information.
void(* ReleaseCANNProviderOptions)(OrtCANNProviderOptions *input)
Release an OrtCANNProviderOptions.
Definition: onnxruntime_c_api.h:3692
OrtStatus * SetGlobalInterOpNumThreads(OrtThreadingOptions *tp_options, int inter_op_num_threads)
Set global inter-op thread count.
OrtStatus * CloneSessionOptions(const OrtSessionOptions *in_options, OrtSessionOptions **out_options)
Create a copy of an existing OrtSessionOptions.
OrtStatus * GetSessionConfigEntry(const OrtSessionOptions *options, const char *config_key, char *config_value, size_t *size)
Get a session configuration value.
OrtStatus * SessionOptionsAppendExecutionProvider_TensorRT_V2(OrtSessionOptions *options, const OrtTensorRTProviderOptionsV2 *tensorrt_options)
Append TensorRT execution provider to the session options.
OrtStatus * AddFreeDimensionOverride(OrtSessionOptions *options, const char *dim_denotation, int64_t dim_value)
Override session symbolic dimensions.
OrtStatus * KernelContext_GetOutput(OrtKernelContext *context, size_t index, const int64_t *dim_values, size_t dim_count, OrtValue **out)
Used for custom operators, get an output of a kernel.
OrtStatus * EnableTelemetryEvents(const OrtEnv *env)
Enable Telemetry.
OrtStatus * CreateMemoryInfo(const char *name, enum OrtAllocatorType type, int id, enum OrtMemType mem_type, OrtMemoryInfo **out)
Create an OrtMemoryInfo.
OrtStatus * SessionOptionsAppendExecutionProvider_ROCM(OrtSessionOptions *options, const OrtROCMProviderOptions *rocm_options)
Append ROCM execution provider to the session options.
OrtStatus * SessionGetInputTypeInfo(const OrtSession *session, size_t index, OrtTypeInfo **type_info)
Get input type information.
OrtStatus * GetSymbolicDimensions(const OrtTensorTypeAndShapeInfo *info, const char *dim_params[], size_t dim_params_length)
Get symbolic dimension names in OrtTensorTypeAndShapeInfo.
OrtStatus * GetStringTensorDataLength(const OrtValue *value, size_t *len)
Get total byte length for all strings in a string tensor.
OrtStatus * KernelContext_GetInputCount(const OrtKernelContext *context, size_t *out)
Used for custom operators, get the input count of a kernel.
OrtStatus * BindOutputToDevice(OrtIoBinding *binding_ptr, const char *name, const OrtMemoryInfo *mem_info_ptr)
Bind an OrtIoBinding output to a device.
OrtStatus * SessionOptionsAppendExecutionProvider(OrtSessionOptions *options, const char *provider_name, const char *const *provider_options_keys, const char *const *provider_options_values, size_t num_keys)
: Append execution provider to the session options.
OrtStatus * SetSessionGraphOptimizationLevel(OrtSessionOptions *options, GraphOptimizationLevel graph_optimization_level)
Set the optimization level to apply when loading a graph.
OrtStatus * ModelMetadataGetDescription(const OrtModelMetadata *model_metadata, OrtAllocator *allocator, char **value)
Get description from an OrtModelMetadata.
OrtStatus * CreateCANNProviderOptions(OrtCANNProviderOptions **out)
Create an OrtCANNProviderOptions.
OrtStatus * DisablePerSessionThreads(OrtSessionOptions *options)
Use global thread pool on a session.
OrtStatus * SetDimensions(OrtTensorTypeAndShapeInfo *info, const int64_t *dim_values, size_t dim_count)
Set shape information in OrtTensorTypeAndShapeInfo.
OrtStatus * SetInterOpNumThreads(OrtSessionOptions *options, int inter_op_num_threads)
Sets the number of threads used to parallelize the execution of the graph.
OrtStatus * CustomOpDomain_Add(OrtCustomOpDomain *custom_op_domain, const OrtCustomOp *op)
Add a custom op to a custom op domain.
OrtStatus * GetSequenceElementType(const OrtSequenceTypeInfo *sequence_type_info, OrtTypeInfo **type_info)
Get element type from an OrtSequenceTypeInfo.
OrtStatus * RunOptionsGetRunLogVerbosityLevel(const OrtRunOptions *options, int *log_verbosity_level)
Get per-run log verbosity level.
OrtStatus * FillSparseTensorCsr(OrtValue *ort_value, const OrtMemoryInfo *data_mem_info, const int64_t *values_shape, size_t values_shape_len, const void *values, const int64_t *inner_indices_data, size_t inner_indices_num, const int64_t *outer_indices_data, size_t outer_indices_num)
OrtStatus * CreateAndRegisterAllocator(OrtEnv *env, const OrtMemoryInfo *mem_info, const OrtArenaCfg *arena_cfg)
Create an allocator and register it with the OrtEnv.
OrtStatus * CreateCpuMemoryInfo(enum OrtAllocatorType type, enum OrtMemType mem_type, OrtMemoryInfo **out)
Create an OrtMemoryInfo for CPU memory.
OrtStatus * AddCustomOpDomain(OrtSessionOptions *options, OrtCustomOpDomain *custom_op_domain)
Add custom op domain to a session options.
OrtStatus * KernelInfo_GetOutputTypeInfo(const OrtKernelInfo *info, size_t index, OrtTypeInfo **type_info)
Get the type information for a OrtKernelInfo's output.
OrtStatus * KernelContext_GetInput(const OrtKernelContext *context, size_t index, const OrtValue **out)
Used for custom operators, get an input of a kernel.
OrtStatus * CreateEnvWithCustomLoggerAndGlobalThreadPools(OrtLoggingFunction logging_function, void *logger_param, OrtLoggingLevel log_severity_level, const char *logid, const struct OrtThreadingOptions *tp_options, OrtEnv **out)
OrtStatus * DisableTelemetryEvents(const OrtEnv *env)
Disable Telemetry.
OrtStatus * KernelInfo_GetOutputCount(const OrtKernelInfo *info, size_t *out)
Get the number of outputs from OrtKernelInfo.
OrtStatus * ModelMetadataGetGraphName(const OrtModelMetadata *model_metadata, OrtAllocator *allocator, char **value)
Get graph name from an OrtModelMetadata.
OrtStatus * CreateROCMProviderOptions(OrtROCMProviderOptions **out)
Create an OrtROCMProviderOptions.
OrtStatus * ModelMetadataLookupCustomMetadataMap(const OrtModelMetadata *model_metadata, OrtAllocator *allocator, const char *key, char **value)
Return data for a key in the custom metadata map in an OrtModelMetadata.
OrtStatus * RunOptionsSetRunLogSeverityLevel(OrtRunOptions *options, int log_severity_level)
Set per-run log severity level.
OrtStatus * SetSessionExecutionMode(OrtSessionOptions *options, ExecutionMode execution_mode)
Set execution mode.
OrtStatus * SessionGetInputName(const OrtSession *session, size_t index, OrtAllocator *allocator, char **value)
Get input name.
OrtStatus * GetDnnlProviderOptionsAsString(const OrtDnnlProviderOptions *dnnl_options, OrtAllocator *allocator, char **ptr)
OrtStatus * CreateRunOptions(OrtRunOptions **out)
Create an OrtRunOptions.
OrtStatus * RunOptionsGetRunTag(const OrtRunOptions *options, const char **run_tag)
Get per-run tag.
OrtStatus * CreateCustomOpDomain(const char *domain, OrtCustomOpDomain **out)
Create a custom op domain.
OrtStatus * ModelMetadataGetCustomMetadataMapKeys(const OrtModelMetadata *model_metadata, OrtAllocator *allocator, char ***keys, int64_t *num_keys)
const char *(* GetErrorMessage)(const OrtStatus *status) __attribute__((nonnull))
Get error string from OrtStatus.
Definition: onnxruntime_c_api.h:712
OrtStatus * IsTensor(const OrtValue *value, int *out)
Return if an OrtValue is a tensor type.
OrtStatus * AllocatorFree(OrtAllocator *ort_allocator, void *p)
Calls OrtAllocator::Free function.
OrtStatus * GetMapValueType(const OrtMapTypeInfo *map_type_info, OrtTypeInfo **type_info)
Get the value type from an OrtMapTypeInfo.
OrtStatus * CreateSessionFromArray(const OrtEnv *env, const void *model_data, size_t model_data_length, const OrtSessionOptions *options, OrtSession **out)
Create an OrtSession from memory.
OrtStatus * CreateArenaCfgV2(const char *const *arena_config_keys, const size_t *arena_config_values, size_t num_keys, OrtArenaCfg **out)
Create an OrtArenaCfg.
OrtStatus * GetAllocatorWithDefaultOptions(OrtAllocator **out)
Get the default allocator.
OrtStatus * CreateSession(const OrtEnv *env, const char *model_path, const OrtSessionOptions *options, OrtSession **out)
Create an OrtSession from a model file.
OrtStatus * SessionOptionsAppendExecutionProvider_Dnnl(OrtSessionOptions *options, const OrtDnnlProviderOptions *dnnl_options)
Append dnnl provider to session options.
OrtStatus * CreateArenaCfg(size_t max_mem, int arena_extend_strategy, int initial_chunk_size_bytes, int max_dead_bytes_per_chunk, OrtArenaCfg **out)
OrtStatus * SessionGetInputCount(const OrtSession *session, size_t *out)
Get input count for a session.
OrtStatus * GetValue(const OrtValue *value, int index, OrtAllocator *allocator, OrtValue **out)
Get non tensor data from an OrtValue.
OrtStatus * GetSparseTensorIndices(const OrtValue *ort_value, enum OrtSparseIndicesFormat indices_format, size_t *num_indices, const void **indices)
Returns indices data for the type of the indices specified by indices_format.
OrtStatus * EnableProfiling(OrtSessionOptions *options, const char *profile_file_prefix)
Enable profiling for a session.
OrtStatus * GetStringTensorElement(const OrtValue *value, size_t s_len, size_t index, void *s)
Get a single string from a string tensor.
OrtStatus * GetTensorTypeAndShape(const OrtValue *value, OrtTensorTypeAndShapeInfo **out)
Get type and shape information from a tensor OrtValue.
OrtStatus * BindInput(OrtIoBinding *binding_ptr, const char *name, const OrtValue *val_ptr)
Bind an OrtValue to an OrtIoBinding input.
OrtStatus * GetResizedStringTensorElementBuffer(OrtValue *value, size_t index, size_t length_in_bytes, char **buffer)
Set a single string in a string tensor Do not zero terminate the string data.
OrtStatus * DisableCpuMemArena(OrtSessionOptions *options)
Disable the memory arena on CPU.
void(* ClearBoundOutputs)(OrtIoBinding *binding_ptr) __attribute__((nonnull))
Clears any previously set Outputs for an OrtIoBinding.
Definition: onnxruntime_c_api.h:2358
OrtStatus * SessionOptionsAppendExecutionProvider_CANN(OrtSessionOptions *options, const OrtCANNProviderOptions *cann_options)
Append CANN provider to session options.
OrtStatus * MemoryInfoGetMemType(const OrtMemoryInfo *ptr, OrtMemType *out)
Get the OrtMemType from OrtMemoryInfo.
OrtStatus * AllocatorGetInfo(const OrtAllocator *ort_allocator, const struct OrtMemoryInfo **out)
Calls OrtAllocator::Info function.
OrtStatus * CompareMemoryInfo(const OrtMemoryInfo *info1, const OrtMemoryInfo *info2, int *out)
Compare OrtMemoryInfo objects for equality.
OrtStatus * GetAvailableProviders(char ***out_ptr, int *provider_length)
Get the names of all available providers.
OrtStatus * SynchronizeBoundInputs(OrtIoBinding *binding_ptr)
Synchronize bound inputs. The call may be necessary for some providers, such as cuda,...
OrtStatus * GetOpaqueValue(const char *domain_name, const char *type_name, const OrtValue *in, void *data_container, size_t data_container_size)
Get internal data from an opaque (custom user defined type) OrtValue.
OrtStatus * AllocatorAlloc(OrtAllocator *ort_allocator, size_t size, void **out)
Calls OrtAllocator::Alloc function.
OrtStatus * RegisterCustomOpsLibrary_V2(OrtSessionOptions *options, const char *library_name)
Register custom ops from a shared library.
OrtStatus * SessionGetOverridableInitializerName(const OrtSession *session, size_t index, OrtAllocator *allocator, char **value)
Get overridable initializer name.
OrtStatus * GetROCMProviderOptionsAsString(const OrtROCMProviderOptions *rocm_options, OrtAllocator *allocator, char **ptr)
OrtStatus * UnregisterAllocator(OrtEnv *env, const OrtMemoryInfo *mem_info)
Unregister a custom allocator.
OrtStatus * DisableMemPattern(OrtSessionOptions *options)
Disable the memory pattern optimization.
OrtStatus * UseBlockSparseIndices(OrtValue *ort_value, const int64_t *indices_shape, size_t indices_shape_len, int32_t *indices_data)
OrtStatus *(* CreateStatus)(OrtErrorCode code, const char *msg) __attribute__((nonnull))
Create an OrtStatus from a null terminated string.
Definition: onnxruntime_c_api.h:698
OrtStatus * RunWithBinding(OrtSession *session, const OrtRunOptions *run_options, const OrtIoBinding *binding_ptr)
Run a model using Io Bindings for the inputs & outputs.
OrtStatus * CreateDnnlProviderOptions(OrtDnnlProviderOptions **out)
Create an OrtDnnlProviderOptions.
OrtStatus * GetMapKeyType(const OrtMapTypeInfo *map_type_info, enum ONNXTensorElementDataType *out)
Get key type from an OrtMapTypeInfo.
OrtStatus * RunOptionsGetRunLogSeverityLevel(const OrtRunOptions *options, int *log_severity_level)
Get per-run log severity level.
OrtStatus * CastTypeInfoToOptionalTypeInfo(const OrtTypeInfo *type_info, const OrtOptionalTypeInfo **out)
Get Optional Type information from an OrtTypeInfo.
OrtStatus * SessionGetModelMetadata(const OrtSession *session, OrtModelMetadata **out)
Get OrtModelMetadata from an OrtSession.
OrtStatus * GetCurrentGpuDeviceId(int *device_id)
Get current GPU device ID.
OrtStatus * SessionGetOutputTypeInfo(const OrtSession *session, size_t index, OrtTypeInfo **type_info)
Get output type information.
OrtStatus * EnableOrtCustomOps(OrtSessionOptions *options)
Enable custom operators.
OrtStatus * UpdateEnvWithCustomLogLevel(OrtEnv *ort_env, OrtLoggingLevel log_severity_level)
OrtStatus * CreateValue(const OrtValue *const *in, size_t num_values, enum ONNXType value_type, OrtValue **out)
Create a map or sequence OrtValue.
OrtStatus * RegisterCustomOpsUsingFunction(OrtSessionOptions *options, const char *registration_func_name)
Register custom ops by calling a RegisterCustomOpsFn function.
OrtStatus * RunOptionsSetTerminate(OrtRunOptions *options)
Set terminate flag.
OrtStatus * SetSessionLogVerbosityLevel(OrtSessionOptions *options, int session_log_verbosity_level)
Set session log verbosity level.
OrtStatus * SetSessionLogSeverityLevel(OrtSessionOptions *options, int session_log_severity_level)
Set session log severity level.
OrtStatus * CreateThreadingOptions(OrtThreadingOptions **out)
Create an OrtThreadingOptions.
OrtStatus * UseCsrIndices(OrtValue *ort_value, int64_t *inner_data, size_t inner_num, int64_t *outer_data, size_t outer_num)
OrtStatus * SessionGetOverridableInitializerCount(const OrtSession *session, size_t *out)
Get overridable initializer count.
OrtStatus * CreateSessionWithPrepackedWeightsContainer(const OrtEnv *env, const char *model_path, const OrtSessionOptions *options, OrtPrepackedWeightsContainer *prepacked_weights_container, OrtSession **out)
Create session with prepacked weights container.
OrtStatus * KernelInfo_GetLogger(const OrtKernelInfo *info, const OrtLogger **logger)
Get the session logger from OrtKernelInfo.
OrtStatus * UpdateTensorRTProviderOptions(OrtTensorRTProviderOptionsV2 *tensorrt_options, const char *const *provider_options_keys, const char *const *provider_options_values, size_t num_keys)
Set options in a TensorRT Execution Provider.
OrtStatus * KernelInfoGetAttribute_tensor(const OrtKernelInfo *info, const char *name, OrtAllocator *allocator, OrtValue **out)
Get a OrtValue tensor stored as an attribute in the graph node.
OrtStatus * EnableMemPattern(OrtSessionOptions *options)
Enable the memory pattern optimization.
OrtStatus * SetOptimizedModelFilePath(OrtSessionOptions *options, const char *optimized_model_filepath)
Set filepath to save optimized model after graph level transformations.
OrtStatus * CreateAllocator(const OrtSession *session, const OrtMemoryInfo *mem_info, OrtAllocator **out)
Create an allocator for an OrtSession following an OrtMemoryInfo.
OrtStatus * SynchronizeBoundOutputs(OrtIoBinding *binding_ptr)
Synchronize bound outputs. The call may be necessary for some providers, such as cuda,...
OrtStatus * SessionGetOutputCount(const OrtSession *session, size_t *out)
Get output count for a session.
OrtStatus * CastTypeInfoToSequenceTypeInfo(const OrtTypeInfo *type_info, const OrtSequenceTypeInfo **out)
Cast OrtTypeInfo to an OrtSequenceTypeInfo.
OrtStatus * Run(OrtSession *session, const OrtRunOptions *run_options, const char *const *input_names, const OrtValue *const *inputs, size_t input_len, const char *const *output_names, size_t output_names_len, OrtValue **outputs)
Run the model in an OrtSession.
OrtStatus * GetValueType(const OrtValue *value, enum ONNXType *out)
Get ONNXType of an OrtValue.
OrtStatus * KernelInfo_GetNodeName(const OrtKernelInfo *info, char *out, size_t *size)
Get the graph node name from OrtKernelInfo.
OrtStatus * CreateTensorRTProviderOptions(OrtTensorRTProviderOptionsV2 **out)
Create an OrtTensorRTProviderOptionsV2.
OrtStatus * GetDimensions(const OrtTensorTypeAndShapeInfo *info, int64_t *dim_values, size_t dim_values_length)
Get dimensions in OrtTensorTypeAndShapeInfo.
OrtStatus * SessionGetProfilingStartTimeNs(const OrtSession *session, uint64_t *out)
Return the time that profiling was started.
OrtStatus * RunOptionsUnsetTerminate(OrtRunOptions *options)
Clears the terminate flag.
OrtStatus * CreateOpaqueValue(const char *domain_name, const char *type_name, const void *data_container, size_t data_container_size, OrtValue **out)
Create an opaque (custom user defined type) OrtValue.
OrtStatus * GetSparseTensorValuesTypeAndShape(const OrtValue *ort_value, OrtTensorTypeAndShapeInfo **out)
Returns data type and shape of sparse tensor values (nnz) iff OrtValue contains a SparseTensor.
void(* ReleaseTensorRTProviderOptions)(OrtTensorRTProviderOptionsV2 *input)
Release an OrtTensorRTProviderOptionsV2.
Definition: onnxruntime_c_api.h:2909
OrtStatus * ReleaseAvailableProviders(char **ptr, int providers_length)
Release data from OrtApi::GetAvailableProviders. This API will never fail so you can rely on it in a ...
OrtStatus * RunOptionsSetRunTag(OrtRunOptions *options, const char *run_tag)
Set per-run tag.
OrtStatus * CreateIoBinding(OrtSession *session, OrtIoBinding **out)
Create an OrtIoBinding instance.
OrtStatus * SetGlobalIntraOpNumThreads(OrtThreadingOptions *tp_options, int intra_op_num_threads)
Set global intra-op thread count.
OrtStatus * CreateOpAttr(const char *name, const void *data, int len, OrtOpAttrType type, OrtOpAttr **op_attr)
: Create attribute of onnxruntime operator
OrtStatus * FillSparseTensorBlockSparse(OrtValue *ort_value, const OrtMemoryInfo *data_mem_info, const int64_t *values_shape, size_t values_shape_len, const void *values, const int64_t *indices_shape_data, size_t indices_shape_len, const int32_t *indices_data)
OrtStatus * ModelMetadataGetVersion(const OrtModelMetadata *model_metadata, int64_t *value)
Get version number from an OrtModelMetadata.
OrtStatus * GetStringTensorContent(const OrtValue *value, void *s, size_t s_len, size_t *offsets, size_t offsets_len)
Get all strings from a string tensor.
OrtStatus * GetBoundOutputNames(const OrtIoBinding *binding_ptr, OrtAllocator *allocator, char **buffer, size_t **lengths, size_t *count)
Get the names of an OrtIoBinding's outputs.
OrtStatus * CreateTensorTypeAndShapeInfo(OrtTensorTypeAndShapeInfo **out)
Create an OrtTensorTypeAndShapeInfo object.
OrtStatus * FillSparseTensorCoo(OrtValue *ort_value, const OrtMemoryInfo *data_mem_info, const int64_t *values_shape, size_t values_shape_len, const void *values, const int64_t *indices_data, size_t indices_num)
OrtStatus * SessionEndProfiling(OrtSession *session, OrtAllocator *allocator, char **out)
End profiling and return filename of the profile data.
OrtStatus * ModelMetadataGetProducerName(const OrtModelMetadata *model_metadata, OrtAllocator *allocator, char **value)
Get producer name from an OrtModelMetadata.
OrtStatus * SessionOptionsSetCustomCreateThreadFn(OrtSessionOptions *options, OrtCustomCreateThreadFn ort_custom_create_thread_fn)
Set custom thread creation function.
OrtStatus * SetGlobalCustomCreateThreadFn(OrtThreadingOptions *tp_options, OrtCustomCreateThreadFn ort_custom_create_thread_fn)
Set custom thread creation function for global thread pools.
OrtStatus * SessionOptionsAppendExecutionProvider_CUDA_V2(OrtSessionOptions *options, const OrtCUDAProviderOptionsV2 *cuda_options)
Append CUDA execution provider to the session options.
OrtStatus * CreateTensorAsOrtValue(OrtAllocator *allocator, const int64_t *shape, size_t shape_len, ONNXTensorElementDataType type, OrtValue **out)
Create a tensor.
void(* ReleaseCUDAProviderOptions)(OrtCUDAProviderOptionsV2 *input)
Release an OrtCUDAProviderOptionsV2.
Definition: onnxruntime_c_api.h:3412
OrtStatus * KernelInfoGetAttribute_int64(const OrtKernelInfo *info, const char *name, int64_t *out)
Fetch a 64-bit int stored as an attribute in the graph node.
OrtErrorCode(* GetErrorCode)(const OrtStatus *status) __attribute__((nonnull))
Get OrtErrorCode from OrtStatus.
Definition: onnxruntime_c_api.h:705
OrtStatus * SetTensorElementType(OrtTensorTypeAndShapeInfo *info, enum ONNXTensorElementDataType type)
Set element type in OrtTensorTypeAndShapeInfo.
OrtStatus * BindOutput(OrtIoBinding *binding_ptr, const char *name, const OrtValue *val_ptr)
Bind an OrtValue to an OrtIoBinding output.
OrtStatus * GetSparseTensorValues(const OrtValue *ort_value, const void **out)
Returns numeric data for sparse tensor values (nnz). For string values use GetStringTensor*().
CUDA Provider Options.
Definition: onnxruntime_c_api.h:392
int has_user_compute_stream
Flag indicating if there is a user provided compute stream Defaults to 0.
Definition: onnxruntime_c_api.h:444
int do_copy_in_default_stream
Flag indicating if copying needs to take place on the same stream as the compute stream in the CUDA E...
Definition: onnxruntime_c_api.h:439
void * user_compute_stream
User provided compute stream. If provided, please set has_user_compute_stream to 1.
Definition: onnxruntime_c_api.h:449
int tunable_op_enable
Enable TunableOp for using. Set it to 1/0 to enable/disable TunableOp. Otherwise, it is disabled by d...
Definition: onnxruntime_c_api.h:459
size_t gpu_mem_limit
CUDA memory limit (To use all possible memory pass in maximum size_t) Defaults to SIZE_MAX.
Definition: onnxruntime_c_api.h:422
int arena_extend_strategy
Strategy used to grow the memory arena 0 = kNextPowerOfTwo 1 = kSameAsRequested Defaults to 0.
Definition: onnxruntime_c_api.h:430
OrtCUDAProviderOptions()
Definition: onnxruntime_c_api.h:394
OrtArenaCfg * default_memory_arena_cfg
CUDA memory arena configuration parameters.
Definition: onnxruntime_c_api.h:453
int tunable_op_tuning_enable
Enable TunableOp for tuning. Set it to 1/0 to enable/disable TunableOp tuning. Otherwise,...
Definition: onnxruntime_c_api.h:465
OrtCudnnConvAlgoSearch cudnn_conv_algo_search
CUDA Convolution algorithm search configuration. See enum OrtCudnnConvAlgoSearch for more details....
Definition: onnxruntime_c_api.h:416
int device_id
CUDA device Id Defaults to 0.
Definition: onnxruntime_c_api.h:410
Definition: onnxruntime_c_api.h:660
char __place_holder
Definition: onnxruntime_c_api.h:661
Definition: onnxruntime_c_api.h:4307
int(* GetVariadicInputHomogeneity)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4348
OrtCustomOpInputOutputCharacteristic(* GetOutputCharacteristic)(const struct OrtCustomOp *op, size_t index)
Definition: onnxruntime_c_api.h:4332
size_t(* GetInputTypeCount)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4322
int(* GetVariadicOutputMinArity)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4352
const char *(* GetName)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4315
size_t(* GetOutputTypeCount)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4324
void(* KernelDestroy)(void *op_kernel)
Definition: onnxruntime_c_api.h:4328
int(* GetVariadicOutputHomogeneity)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4357
OrtMemType(* GetInputMemoryType)(const struct OrtCustomOp *op, size_t index)
Definition: onnxruntime_c_api.h:4339
void *(* CreateKernel)(const struct OrtCustomOp *op, const OrtApi *api, const OrtKernelInfo *info)
Definition: onnxruntime_c_api.h:4311
uint32_t version
Definition: onnxruntime_c_api.h:4308
ONNXTensorElementDataType(* GetInputType)(const struct OrtCustomOp *op, size_t index)
Definition: onnxruntime_c_api.h:4321
OrtCustomOpInputOutputCharacteristic(* GetInputCharacteristic)(const struct OrtCustomOp *op, size_t index)
Definition: onnxruntime_c_api.h:4331
const char *(* GetExecutionProviderType)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4318
ONNXTensorElementDataType(* GetOutputType)(const struct OrtCustomOp *op, size_t index)
Definition: onnxruntime_c_api.h:4323
int(* GetVariadicInputMinArity)(const struct OrtCustomOp *op)
Definition: onnxruntime_c_api.h:4343
void(* KernelCompute)(void *op_kernel, OrtKernelContext *context)
Definition: onnxruntime_c_api.h:4327
MIGraphX Provider Options.
Definition: onnxruntime_c_api.h:581
int migraphx_int8_enable
Definition: onnxruntime_c_api.h:584
int migraphx_fp16_enable
Definition: onnxruntime_c_api.h:583
int device_id
Definition: onnxruntime_c_api.h:582
OpenVINO Provider Options.
Definition: onnxruntime_c_api.h:591
unsigned char enable_opencl_throttling
0 = disabled, nonzero = enabled
Definition: onnxruntime_c_api.h:612
size_t num_of_threads
0 = Use default number of threads
Definition: onnxruntime_c_api.h:609
void * context
Definition: onnxruntime_c_api.h:611
unsigned char enable_vpu_fast_compile
0 = disabled, nonzero = enabled
Definition: onnxruntime_c_api.h:607
const char * cache_dir
Definition: onnxruntime_c_api.h:610
const char * device_type
Device type string.
Definition: onnxruntime_c_api.h:606
const char * device_id
Definition: onnxruntime_c_api.h:608
OrtOpenVINOProviderOptions()
Definition: onnxruntime_c_api.h:593
unsigned char enable_dynamic_shapes
0 = disabled, nonzero = enabled
Definition: onnxruntime_c_api.h:613
ROCM Provider Options.
Definition: onnxruntime_c_api.h:473
int device_id
ROCM device Id Defaults to 0.
Definition: onnxruntime_c_api.h:491
int do_copy_in_default_stream
Flag indicating if copying needs to take place on the same stream as the compute stream in the ROCM E...
Definition: onnxruntime_c_api.h:519
OrtArenaCfg * default_memory_arena_cfg
ROCM memory arena configuration parameters.
Definition: onnxruntime_c_api.h:533
size_t gpu_mem_limit
ROCM memory limit (To use all possible memory pass in maximum size_t) Defaults to SIZE_MAX.
Definition: onnxruntime_c_api.h:502
OrtROCMProviderOptions()
Definition: onnxruntime_c_api.h:475
int tunable_op_enable
Enable TunableOp for using. Set it to 1/0 to enable/disable TunableOp. Otherwise, it is disabled by d...
Definition: onnxruntime_c_api.h:539
void * user_compute_stream
User provided compute stream. If provided, please set has_user_compute_stream to 1.
Definition: onnxruntime_c_api.h:529
int arena_extend_strategy
Strategy used to grow the memory arena 0 = kNextPowerOfTwo 1 = kSameAsRequested Defaults to 0.
Definition: onnxruntime_c_api.h:510
int tunable_op_tuning_enable
Enable TunableOp for tuning. Set it to 1/0 to enable/disable TunableOp tuning. Otherwise,...
Definition: onnxruntime_c_api.h:545
int has_user_compute_stream
Flag indicating if there is a user provided compute stream Defaults to 0.
Definition: onnxruntime_c_api.h:524
int miopen_conv_exhaustive_search
ROCM MIOpen Convolution algorithm exaustive search option. Defaults to 0 (false).
Definition: onnxruntime_c_api.h:496
TensorRT Provider Options.
Definition: onnxruntime_c_api.h:553
int trt_engine_cache_enable
Definition: onnxruntime_c_api.h:567
void * user_compute_stream
Definition: onnxruntime_c_api.h:556
int device_id
CUDA device id (0 = default device)
Definition: onnxruntime_c_api.h:554
const char * trt_engine_cache_path
Definition: onnxruntime_c_api.h:568
int trt_engine_decryption_enable
Definition: onnxruntime_c_api.h:569
int trt_max_partition_iterations
Definition: onnxruntime_c_api.h:557
size_t trt_max_workspace_size
Definition: onnxruntime_c_api.h:559
int trt_dla_enable
Definition: onnxruntime_c_api.h:564
const char * trt_int8_calibration_table_name
Definition: onnxruntime_c_api.h:562
int has_user_compute_stream
Definition: onnxruntime_c_api.h:555
int trt_dla_core
Definition: onnxruntime_c_api.h:565
int trt_int8_use_native_calibration_table
Definition: onnxruntime_c_api.h:563
int trt_min_subgraph_size
Definition: onnxruntime_c_api.h:558
int trt_force_sequential_engine_build
Definition: onnxruntime_c_api.h:571
int trt_dump_subgraphs
Definition: onnxruntime_c_api.h:566
int trt_fp16_enable
Definition: onnxruntime_c_api.h:560
const char * trt_engine_decryption_lib_path
Definition: onnxruntime_c_api.h:570
int trt_int8_enable
Definition: onnxruntime_c_api.h:561
The Training C API that holds onnxruntime training function pointers.
Definition: onnxruntime_training_c_api.h:122