diff --git a/include/onnxruntime/core/session/onnxruntime_c_api.h b/include/onnxruntime/core/session/onnxruntime_c_api.h index f0f9694f03..8c82f50465 100644 --- a/include/onnxruntime/core/session/onnxruntime_c_api.h +++ b/include/onnxruntime/core/session/onnxruntime_c_api.h @@ -6,14 +6,14 @@ *

C

* * ::OrtApi - Click here to jump to the structure with all C API functions. -* +* *

C++

* * ::Ort - Click here to jump to the namespace holding all of the C++ wrapper classes -* +* * It is a set of header only wrapper classes around the C API. The goal is to turn the C style return value error codes into C++ exceptions, and to * automate memory management through standard C++ RAII principles. -* +* * \addtogroup Global * ONNX Runtime C API * @{ @@ -196,12 +196,16 @@ enum OrtSparseIndicesFormat { ORT_SPARSE_BLOCK_SPARSE_INDICES }; +/** \brief Logging severity levels + * + * In typical API usage, specifying a logging severity level specifies the minimum severity of log messages to show. + */ typedef enum OrtLoggingLevel { - ORT_LOGGING_LEVEL_VERBOSE, - ORT_LOGGING_LEVEL_INFO, - ORT_LOGGING_LEVEL_WARNING, - ORT_LOGGING_LEVEL_ERROR, - ORT_LOGGING_LEVEL_FATAL, + ORT_LOGGING_LEVEL_VERBOSE, ///< Verbose informational messages (least severe). + ORT_LOGGING_LEVEL_INFO, ///< Informational messages. + ORT_LOGGING_LEVEL_WARNING, ///< Warning messages. + ORT_LOGGING_LEVEL_ERROR, ///< Error messages. + ORT_LOGGING_LEVEL_FATAL, ///< Fatal error messages (most severe). } OrtLoggingLevel; typedef enum OrtErrorCode { @@ -339,7 +343,7 @@ typedef struct OrtCUDAProviderOptions { * * \note If a ::OrtArenaCfg has been applied, it will override this field */ - size_t gpu_mem_limit; + size_t gpu_mem_limit; /** \brief Strategy used to grow the memory arena * @@ -355,7 +359,7 @@ typedef struct OrtCUDAProviderOptions { } OrtCUDAProviderOptions; /** \brief ROCM Provider Options -* +* * \see OrtApi::SessionOptionsAppendExecutionProvider_ROCM */ typedef struct OrtROCMProviderOptions { @@ -414,7 +418,7 @@ struct OrtApi; typedef struct OrtApi OrtApi; /** \brief The helper interface to get the right version of OrtApi -* +* * Get a pointer to this structure through ::OrtGetApiBase */ struct OrtApiBase { @@ -430,7 +434,7 @@ struct OrtApiBase { typedef struct OrtApiBase OrtApiBase; /** \brief The Onnxruntime library's entry point to access the C API -* +* * Call this to get the a pointer to an ::OrtApiBase */ ORT_EXPORT const OrtApiBase* ORT_API_CALL OrtGetApiBase(void) NO_EXCEPTION; @@ -439,7 +443,7 @@ ORT_EXPORT const OrtApiBase* ORT_API_CALL OrtGetApiBase(void) NO_EXCEPTION; * * All C API functions are defined inside this structure as pointers to functions. * Call OrtApiBase::GetApi to get a pointer to it -* +* * \nosubgrouping */ struct OrtApi { @@ -474,27 +478,28 @@ struct OrtApi { /// @{ /** \brief Create an OrtEnv - * - * \param[in] logging_level - * \param[in] logid + * + * \param[in] log_severity_level The log severity level. + * \param[in] logid The log identifier. * \param[out] out Returned newly created OrtEnv. Must be freed with OrtApi::ReleaseEnv * * \snippet{doc} snippets.dox OrtStatus Return Value */ - ORT_API2_STATUS(CreateEnv, OrtLoggingLevel logging_level, _In_ const char* logid, _Outptr_ OrtEnv** out); + ORT_API2_STATUS(CreateEnv, OrtLoggingLevel log_severity_level, _In_ const char* logid, _Outptr_ OrtEnv** out); /** \brief Create an OrtEnv * - * \param[in] logging_function - * \param[in] logger_param - * \param[in] logging_level - * \param[in] logid + * \param[in] logging_function A pointer to a logging function. + * \param[in] logger_param A pointer to arbitrary data passed as the ::OrtLoggingFunction `param` parameter to + * `logging_function`. + * \param[in] log_severity_level The log severity level. + * \param[in] logid The log identifier. * \param[out] out Returned newly created OrtEnv. Must be freed with OrtApi::ReleaseEnv * * \snippet{doc} snippets.dox OrtStatus Return Value */ ORT_API2_STATUS(CreateEnvWithCustomLogger, OrtLoggingFunction logging_function, _In_opt_ void* logger_param, - OrtLoggingLevel logging_level, _In_ const char* logid, _Outptr_ OrtEnv** out); + OrtLoggingLevel log_severity_level, _In_ const char* logid, _Outptr_ OrtEnv** out); /** \brief Enable Telemetry * @@ -670,33 +675,27 @@ struct OrtApi { /** \brief Set session log id * * \param[in] options - * \param[in] logid + * \param[in] logid The log identifier. * * \snippet{doc} snippets.dox OrtStatus Return Value */ ORT_API2_STATUS(SetSessionLogId, _Inout_ OrtSessionOptions* options, const char* logid); - /** \brief Set log verbosity level + /** \brief Set session log verbosity level * * Applies to session load, initialization, etc * * \param[in] options - * \param[in] session_log_verbosity_level + * \param[in] session_log_verbosity_level \snippet{doc} snippets.dox Log Verbosity Level * * \snippet{doc} snippets.dox OrtStatus Return Value */ ORT_API2_STATUS(SetSessionLogVerbosityLevel, _Inout_ OrtSessionOptions* options, int session_log_verbosity_level); - /** \brief Set log severity level + /** \brief Set session log severity level * * \param[in] options - * \param[in] session_log_severity_level - * Valid values are:
- * 0 = Verbose, log everything
- * 1 = Info, log info level or higher
- * 2 = Warning, log warnings or higher
- * 3 = Error, log errors or higher
- * 4 = Fatal, log only fatal errors
+ * \param[in] session_log_severity_level The log severity level (refer to ::OrtLoggingLevel for possible values). * * \snippet{doc} snippets.dox OrtStatus Return Value */ @@ -914,13 +913,70 @@ struct OrtApi { */ ORT_API2_STATUS(CreateRunOptions, _Outptr_ OrtRunOptions** out); - ORT_API2_STATUS(RunOptionsSetRunLogVerbosityLevel, _Inout_ OrtRunOptions* options, int value); - ORT_API2_STATUS(RunOptionsSetRunLogSeverityLevel, _Inout_ OrtRunOptions* options, int value); - ORT_API2_STATUS(RunOptionsSetRunTag, _Inout_ OrtRunOptions*, _In_ const char* run_tag); + /** \brief Set per-run log verbosity level + * + * \see OrtApi::RunOptionsGetRunLogVerbosityLevel + * + * \param[in] options + * \param[in] log_verbosity_level \snippet{doc} snippets.dox Log Verbosity Level + * + * \snippet{doc} snippets.dox OrtStatus Return Value + */ + ORT_API2_STATUS(RunOptionsSetRunLogVerbosityLevel, _Inout_ OrtRunOptions* options, int log_verbosity_level); - ORT_API2_STATUS(RunOptionsGetRunLogVerbosityLevel, _In_ const OrtRunOptions* options, _Out_ int* out); - ORT_API2_STATUS(RunOptionsGetRunLogSeverityLevel, _In_ const OrtRunOptions* options, _Out_ int* out); - ORT_API2_STATUS(RunOptionsGetRunTag, _In_ const OrtRunOptions*, _Out_ const char** out); + /** \brief Set per-run log severity level + * + * \see OrtApi::RunOptionsGetRunLogSeverityLevel + * + * \param[in] options + * \param[in] log_severity_level The log severity level (refer to ::OrtLoggingLevel for possible values). + */ + ORT_API2_STATUS(RunOptionsSetRunLogSeverityLevel, _Inout_ OrtRunOptions* options, int log_severity_level); + + /** \brief Set per-run tag + * + * This is used in a per-run log identifier. + * + * \see OrtApi::RunOptionsGetRunTag + * + * \param[in] options + * \param[in] run_tag The run tag. + */ + ORT_API2_STATUS(RunOptionsSetRunTag, _Inout_ OrtRunOptions* options, _In_ const char* run_tag); + + /** \brief Get per-run log verbosity level + * + * \see OrtApi::RunOptionsSetRunLogVerbosityLevel + * + * \param[in] options + * \param[out] log_verbosity_level \snippet{doc} snippets.dox Log Verbosity Level + * + * \snippet{doc} snippets.dox OrtStatus Return Value + */ + ORT_API2_STATUS(RunOptionsGetRunLogVerbosityLevel, _In_ const OrtRunOptions* options, + _Out_ int* log_verbosity_level); + + /** \brief Get per-run log severity level + * + * \see OrtApi::RunOptionsSetRunLogSeverityLevel + * + * \param[in] options + * \param[out] log_severity_level The log severity level (refer to ::OrtLoggingLevel for possible values). + */ + ORT_API2_STATUS(RunOptionsGetRunLogSeverityLevel, _In_ const OrtRunOptions* options, _Out_ int* log_severity_level); + + /** \brief Get per-run tag + * + * This is used in a per-run log identifier. + * + * \see OrtApi::RunOptionsSetRunTag + * + * \param[in] options + * \param[out] run_tag The run tag. + * Do not free this value, it is owned by `options`. It will be invalidated if the run tag + * changes (i.e., with OrtApi::RunOptionsSetRunTag) or `options` is freed. + */ + ORT_API2_STATUS(RunOptionsGetRunTag, _In_ const OrtRunOptions* options, _Out_ const char** run_tag); /** \brief Set terminate flag * @@ -993,7 +1049,7 @@ struct OrtApi { * * Used to read/write/modify the internal tensor data directly. * \note The returned pointer is valid until the \p value is destroyed. - * + * * \param[in] value A tensor type (string tensors are not supported) * \param[out] out Filled in with a pointer to the internal storage * @@ -1101,7 +1157,7 @@ struct OrtApi { /** \brief Get element type in OrtTensorTypeAndShapeInfo * * \see OrtApi::SetTensorElementType - * + * * \param[in] info * \param[out] out * @@ -1388,8 +1444,8 @@ struct OrtApi { /** \brief Get internal data from an opaque (custom user defined type) ::OrtValue * * Copies internal data from an opaque value into a user provided buffer - * - * \see OrtApi::CreateOpaqueValue + * + * \see OrtApi::CreateOpaqueValue * * \param[in] domain_name Null terminated string of the domain name * \param[in] type_name Null terminated string of the type name @@ -1537,7 +1593,7 @@ struct OrtApi { * * This api augments ::OrtTypeInfo to return an ::OrtSequenceTypeInfo when the type is a sequence. * The ::OrtSequenceTypeInfo has additional information about the sequence's element type. - * + * * This is used by WinML to support model reflection APIs. * * \param[in] type_info @@ -1671,10 +1727,15 @@ struct OrtApi { * Use this in conjunction with OrtApi::DisablePerSessionThreads or else the session will use * its own thread pools. * + * \param[in] log_severity_level The log severity level. + * \param[in] logid The log identifier. + * \param[in] tp_options + * \param[out] out Returned newly created OrtEnv. Must be freed with OrtApi::ReleaseEnv + * * \snippet{doc} snippets.dox OrtStatus Return Value */ - ORT_API2_STATUS(CreateEnvWithGlobalThreadPools, OrtLoggingLevel logging_level, _In_ const char* logid, - _In_ const OrtThreadingOptions* t_options, _Outptr_ OrtEnv** out); + ORT_API2_STATUS(CreateEnvWithGlobalThreadPools, OrtLoggingLevel log_severity_level, _In_ const char* logid, + _In_ const OrtThreadingOptions* tp_options, _Outptr_ OrtEnv** out); /// @} /// \name OrtSessionOptions @@ -1701,7 +1762,7 @@ struct OrtApi { /// @{ /** - * + * * \param[in] model_metadata * \param[in] allocator * \param[out] keys Array of null terminated strings (array count = num_keys) allocated using `allocator`. @@ -1847,7 +1908,7 @@ struct OrtApi { /** \brief Create an ::OrtIoBinding instance * - * An IoBinding object allows one to bind pre-allocated ::OrtValue s to input names. + * An IoBinding object allows one to bind pre-allocated ::OrtValue s to input names. * Thus if you want to use a raw on device buffer as input or output you can avoid * extra copy during runtime. * @@ -2076,7 +2137,7 @@ struct OrtApi { /** \brief Add a pre-allocated initializer to a session * - * If a model contains an initializer with a name that is same as the name passed to this call, + * If a model contains an initializer with a name that is same as the name passed to this call, * ORT will use this initializer instance instead of deserializing one from the model file. This * is useful when you want to share the same initializer across sessions. * @@ -2100,16 +2161,17 @@ struct OrtApi { * Use this in conjunction with OrtApi::DisablePerSessionThreads or else the session will use * its own thread pools. * - * \param[in] logging_function - * \param[in] logger_param - * \param[in] logging_level - * \param[in] logid + * \param[in] logging_function A pointer to a logging function. + * \param[in] logger_param A pointer to arbitrary data passed as the ::OrtLoggingFunction `param` parameter to + * `logging_function`. + * \param[in] log_severity_level The log severity level. + * \param[in] logid The log identifier. * \param[in] tp_options * \param[out] out Newly created OrtEnv. Must be freed with OrtApi::ReleaseEnv * * \snippet{doc} snippets.dox OrtStatus Return Value */ - ORT_API2_STATUS(CreateEnvWithCustomLoggerAndGlobalThreadPools, OrtLoggingFunction logging_function, _In_opt_ void* logger_param, OrtLoggingLevel logging_level, + ORT_API2_STATUS(CreateEnvWithCustomLoggerAndGlobalThreadPools, OrtLoggingFunction logging_function, _In_opt_ void* logger_param, OrtLoggingLevel log_severity_level, _In_ const char* logid, _In_ const struct OrtThreadingOptions* tp_options, _Outptr_ OrtEnv** out); /// @} @@ -2437,14 +2499,14 @@ struct OrtApi { /** \brief Append TensorRT execution provider to the session options * * If TensorRT is not available (due to a non TensorRT enabled build), this function will return failure. - * + * * This is slightly different from OrtApi::SessionOptionsAppendExecutionProvider_TensorRT, it takes an * ::OrtTensorRTProviderOptions which is publicly defined. This takes an opaque ::OrtTensorRTProviderOptionsV2 * which must be created with OrtApi::CreateTensorRTProviderOptions. * * For OrtApi::SessionOptionsAppendExecutionProvider_TensorRT, the user needs to instantiate ::OrtTensorRTProviderOptions * as well as allocate/release buffers for some members of ::OrtTensorRTProviderOptions. - * Here, OrtApi::CreateTensorRTProviderOptions and Ortapi::ReleaseTensorRTProviderOptions will do the memory management for you. + * Here, OrtApi::CreateTensorRTProviderOptions and Ortapi::ReleaseTensorRTProviderOptions will do the memory management for you. * * \param[in] options * \param[in] tensorrt_options @@ -2488,9 +2550,9 @@ struct OrtApi { /** \brief Get serialized TensorRT provider options string. * - * For example, "trt_max_workspace_size=2147483648;trt_max_partition_iterations=10;trt_int8_enable=1;......" + * For example, "trt_max_workspace_size=2147483648;trt_max_partition_iterations=10;trt_int8_enable=1;......" * - * \param tensorrt_options - OrTensorRTProviderOptionsV2 instance + * \param tensorrt_options - OrTensorRTProviderOptionsV2 instance * \param allocator - a ptr to an instance of OrtAllocator obtained with OrtApi::CreateAllocator or OrtApi::GetAllocatorWithDefaultOptions * the specified allocator will be used to allocate continuous buffers for output strings and lengths. * \param ptr - is a UTF-8 null terminated string allocated using 'allocator'. The caller is responsible for using the same allocator to free it. @@ -2527,7 +2589,7 @@ struct OrtApi { * Returns an error if an allocator with the same ::OrtMemoryInfo is already registered. * * The behavior of this is exactly the same as OrtApi::CreateAndRegisterAllocator except - * instead of ORT creating an allocator based on provided info, in this case + * instead of ORT creating an allocator based on provided info, in this case * ORT uses the user-provided custom allocator. * See https://onnxruntime.ai/docs/reference/api/c-api.html for details. * @@ -2557,7 +2619,7 @@ struct OrtApi { /** * Sets *out to 1 iff an ::OrtValue is a SparseTensor, and 0 otherwise - * + * * \param[in] value existing ::OrtValue * \param[out] out unless an error occurs, contains 1 iff the value contains an instance * of sparse tensor or 0 otherwise. @@ -2589,9 +2651,9 @@ struct OrtApi { * This fills populates an empty tensor that was created using OrtApi::CreateSparseTensorAsOrtValue. * This will allocate required memory and copy the supplied NNZ values and COO indices into that memory allocation. * Memory allocation is performed using the allocator that was specified with OrtApi::CreateSparseTensorAsOrtValue. - * + * * \param[in,out] ort_value ::OrtValue to populate with data - * \param[in] data_mem_info serves to identify the location of the data to be copied. If the allocator specified + * \param[in] data_mem_info serves to identify the location of the data to be copied. If the allocator specified * at the creation time has memory info that is not the same as mem_info argument to this function a X-device copy will be performed. * String data is assumed to be on CPU and will only be copied into a CPU allocated buffer. * \param[in] values_shape pointer to values shape array @@ -2610,9 +2672,9 @@ struct OrtApi { * This fills populates an empty tensor that was created using OrtApi::CreateSparseTensorAsOrtValue. * This will allocate required memory and copy the supplied NNZ values and CSR indices into that memory allocation. * Memory allocation is performed using the allocator that was specified with OrtApi::CreateSparseTensorAsOrtValue. - * + * * \param[in,out] ort_value ::OrtValue to populate with data - * \param[in] data_mem_info serves to identify the location of the data to be copied. If the allocator specified + * \param[in] data_mem_info serves to identify the location of the data to be copied. If the allocator specified * at the creation time has memory info that is not the same as mem_info argument to this function a X-device copy will be performed. * String data is assumed to be on CPU and will only be copied into a CPU allocated buffer. * \param[in] values_shape pointer to values shape array @@ -2634,9 +2696,9 @@ struct OrtApi { * This fills populates an empty tensor that was created using OrtApi::CreateSparseTensorAsOrtValue. * This will allocate required memory and copy the supplied NNZ values and BlockSparse indices into that memory allocation. * Memory allocation is performed using the allocator that was specified with OrtApi::CreateSparseTensorAsOrtValue. - * + * * \param[in,out] ort_value ::OrtValue to populate with data - * \param[in] data_mem_info serves to identify the location of the data to be copied. If the allocator specified + * \param[in] data_mem_info serves to identify the location of the data to be copied. If the allocator specified * at the creation time has memory info that is not the same as mem_info argument to this function a X-device copy will be performed. * String data is assumed to be on CPU and will only be copied into a CPU allocated buffer. * \param[in] values_shape @@ -2663,7 +2725,7 @@ struct OrtApi { * This function can not be used to map strings from the user allocated memory. Strings must always be copied * and have UTF-8 encoding. Therefore, use OrtApi::CreateSparseTensorAsOrtValue above and then fill it with data * using appropriate Make*() function. - * + * * \param[in] info memory info where sparse values reside. * \param[in,out] p_data pointer to a user allocated buffer with values. To create a full sparse tensor with no non-zero * values, pass nullptr @@ -2683,11 +2745,11 @@ struct OrtApi { ONNXTensorElementDataType type, _Outptr_ OrtValue** out); /** - * This assigns Coo format indices to the SparseTensor that was created by - * OrtApi::CreateSparseTensorWithValuesAsOrtValue above. It also sets OrtSparseFormat to + * This assigns Coo format indices to the SparseTensor that was created by + * OrtApi::CreateSparseTensorWithValuesAsOrtValue above. It also sets OrtSparseFormat to * ORT_SPARSE_COO. This will not allocate any additional memory for data. The life span of * indices_data buffer should eclipse the life span of this ::OrtValue. - * + * * \param[in,out] ort_value ::OrtValue instance constructed with OrtApi::CreateSparseTensorWithValuesAsOrtValue * \param[in,out] indices_data pointer to a user pre-allocated buffer or nullptr for fully sparse tensors. * \param[in] indices_num number of COO indices. Should either be 0 for fully sparse tensors, be equal @@ -2699,11 +2761,11 @@ struct OrtApi { ORT_API2_STATUS(UseCooIndices, _Inout_ OrtValue* ort_value, _Inout_ int64_t* indices_data, size_t indices_num); /** - * The assigns CSR format indices to the SparseTensor that was created by - * OrtApi::CreateSparseTensorWithValuesAsOrtValue above. It also sets OrtSparseFormat to + * The assigns CSR format indices to the SparseTensor that was created by + * OrtApi::CreateSparseTensorWithValuesAsOrtValue above. It also sets OrtSparseFormat to * ORT_SPARSE_CSRC. This will not allocate any additional memory for data. The life spans of * inner_data and outer_data buffers should eclipse the life span of this ::OrtValue. - * + * * \param[in,out] ort_value ::OrtValue instance constructed with OrtApi::CreateSparseTensorWithValuesAsOrtValue * \param[in,out] inner_data pointer to a user pre-allocated buffer or nullptr for fully sparse tensors. * \param[in] inner_num number of inner CSR indices. Should either be 0 for fully sparse tensors or be equal @@ -2718,11 +2780,11 @@ struct OrtApi { _Inout_ int64_t* outer_data, size_t outer_num); /** - * The assigns BlockSparse format indices to the SparseTensor that was created by - * OrtApi::CreateSparseTensorWithValuesAsOrtValue above. It also sets OrtSparseFormat to + * The assigns BlockSparse format indices to the SparseTensor that was created by + * OrtApi::CreateSparseTensorWithValuesAsOrtValue above. It also sets OrtSparseFormat to * ORT_SPARSE_BLOCK_SPARSE. This will not allocate any additional memory for data. The life span of * indices_data buffer must eclipse the lifespan of this ::OrtValue. - * + * * \param[in,out] ort_value OrtValue instance constructed with OrtApi::CreateSparseTensorWithValuesAsOrtValue * \param[in] indices_shape pointer to indices shape. Use {0} for fully sparse tensors * \param[in] indices_shape_len length of the indices shape @@ -2734,7 +2796,7 @@ struct OrtApi { /** * Returns sparse tensor format enum iff a given ort value contains an instance of sparse tensor. - * + * * \param[in] ort_value ::OrtValue that contains an instance of sparse tensor * \param[out] out pointer to out parameter * @@ -2744,7 +2806,7 @@ struct OrtApi { /** * Returns data type and shape of sparse tensor values (nnz) iff ::OrtValue contains a SparseTensor. - * + * * \param[in] ort_value an ::OrtValue that contains a fully constructed sparse tensor * \param[out] out Should be freed by OrtApi::ReleaseTensorTypeAndShapeInfo after use * @@ -2754,7 +2816,7 @@ struct OrtApi { /** * Returns numeric data for sparse tensor values (nnz). For string values use GetStringTensor*(). - * + * * \param[in] ort_value an instance of ::OrtValue containing sparse tensor * \param[out] out returns a pointer to values data. Do not attempt to free this ptr. * @@ -2764,7 +2826,7 @@ struct OrtApi { /** * Returns data type, shape for the type of indices specified by indices_format. - * + * * \param[in] ort_value ::OrtValue containing sparse tensor. * \param[in] indices_format One of the indices formats. It is an error to request a format that the sparse * tensor does not contain. @@ -2777,7 +2839,7 @@ struct OrtApi { /** * Returns indices data for the type of the indices specified by indices_format. * Do not free the returned ptr as it points directly to the internal sparse tensor buffer. - * + * * \param[in] ort_value ::OrtValue containing sparse tensor. * \param[in] indices_format - one of the indices formats. It is an error to request a format that the sparse * tensor does not contain. @@ -2844,7 +2906,7 @@ struct OrtCustomOp { /* * This is the old way to add the CUDA provider to the session, please use SessionOptionsAppendExecutionProvider_CUDA above to access the latest functionality * This function always exists, but will only succeed if Onnxruntime was built with CUDA support and the CUDA provider shared library exists - * + * * \param device_id CUDA device id, starts from zero. */ ORT_API_STATUS(OrtSessionOptionsAppendExecutionProvider_CUDA, _In_ OrtSessionOptions* options, int device_id); diff --git a/include/onnxruntime/core/session/snippets.dox b/include/onnxruntime/core/session/snippets.dox index b46895cdda..874a8c0750 100644 --- a/include/onnxruntime/core/session/snippets.dox +++ b/include/onnxruntime/core/session/snippets.dox @@ -1,3 +1,8 @@ [OrtStatus Return Value] If no error, nullptr will be returned. If there is an error, a pointer to an ::OrtStatus that contains error details will be returned. Use OrtApi::ReleaseStatus to free this pointer. [OrtStatus Return Value] + +[Log Verbosity Level] +The log verbosity level controls the display of ::ORT_LOGGING_LEVEL_VERBOSE severity log messages at a finer granularity. +It only has an effect in debug builds. The higher the value, the more verbose the log output will be. +[Log Verbosity Level] diff --git a/onnxruntime/core/common/logging/logging.cc b/onnxruntime/core/common/logging/logging.cc index fba0e9280a..67f103e5f5 100644 --- a/onnxruntime/core/common/logging/logging.cc +++ b/onnxruntime/core/common/logging/logging.cc @@ -1,8 +1,9 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -#include #include +#include +#include #include #include "core/common/exceptions.h" @@ -105,9 +106,9 @@ LoggingManager::LoggingManager(std::unique_ptr sink, Severity default_min ORT_THROW("Only one instance of LoggingManager created with InstanceType::Default can exist at any point in time."); } - // This assertion passes, so using the atomic to validate calls to Log should + // If the following assertion passes, using the atomic to validate calls to Log should // be reasonably economical. - // assert(DefaultLoggerManagerInstance().is_lock_free()); + static_assert(std::remove_reference_t::is_always_lock_free); DefaultLoggerManagerInstance().store(this); CreateDefaultLogger(*default_logger_id);