onnxruntime/include/onnxruntime/core/framework
Scott McKay b7fde84341
Changes to support standalone custom ops in a minimal build. (#14497)
### Description
<!-- Describe your changes. -->
Changes to support standalone custom ops in a minimal build. Also
incorporates changes from #14492 (needed to test builds prior to that
being checked in).

We first need to save the schema info from the operators used by the
standalone op invoker in the ORT format model. Add mechanism for that.

Merge the kernel lookup logic so the same is used in full and minimal
build. NOTE: the version matching is now consistent with all other
kernel lookups, and the call to CreateOp MUST use the exact version for
the operator. Previously matching wasn't as strict, but this can lead to
the incorrect kernel being chosen.

Add tests.

NOTE: There is currently no way to detect the ops/types/opsets used
inside these custom ops as they don't exist until we create kernels,
which is after model loading completes (which is the point the ORT
format model is saved). Due to that they have to be manually added to
the configuration used to do the reduced ops build. That shouldn't be
too hard for the custom op author to add given the custom op
implementation is specifying the op, opset and type constraints (i.e.
they have the info and it's just a case of capturing/formatting it
correctly).


### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
Enable usage of the standalone op invoker by custom ops in a minimal
build.

---------

Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
2023-03-01 11:22:54 +10:00
..
alloc_kind.h
allocator.h Address follow-up comments on multistream pr #13495 (#13992) 2023-01-03 16:33:36 -08:00
buffer_deleter.h Multi-stream execution support (#13495) 2022-12-15 07:39:29 -08:00
customregistry.h
data_types.h Switch GSL to MS GSL 4.0.0 (#13416) 2022-10-29 04:15:20 -07:00
data_types_internal.h Remove CUDA 10.2 support (#12541) 2022-08-10 22:46:41 -07:00
endian.h
execution_provider.h remove device_id parameter out of ExecutionProvider::GetAllocator() (#14580) 2023-02-13 10:01:07 -08:00
float16.h [ROCm] float16.h should use __HIP__ not USE_ROCM (#13684) 2022-12-13 15:34:42 -08:00
framework_common.h
func_api.h
kernel_def_builder.h Decouple strided tensor support from ENABLE_TRAINING (#13829) 2022-12-07 09:22:21 -08:00
kernel_registry.h Changes to support standalone custom ops in a minimal build. (#14497) 2023-03-01 11:22:54 +10:00
op_kernel.h Changes to support standalone custom ops in a minimal build. (#14497) 2023-03-01 11:22:54 +10:00
op_kernel_context.h Address follow-up comments on multistream pr #13495 (#13992) 2023-01-03 16:33:36 -08:00
op_kernel_info.h Changes to support standalone custom ops in a minimal build. (#14497) 2023-03-01 11:22:54 +10:00
op_node_proto_helper.h Switch GSL to MS GSL 4.0.0 (#13416) 2022-10-29 04:15:20 -07:00
ort_value.h Enable Opset11 Sequence Ops on DirectML, and make the CPU implementations agnostic to backend EP (#14442) 2023-02-21 18:08:28 -08:00
ortdevice.h Add CANN EP (#12416) 2022-09-22 14:53:40 -07:00
ortmemoryinfo.h Update kernel matching logic: decouple from op schemas and remove kernel def hashes (#12791) 2022-09-20 14:24:59 -07:00
provider_options.h
provider_options_utils.h
provider_shutdown.h
run_options.h Adding RunOptions synchronization behaviour to C/C++ API (#14088) 2023-02-07 19:59:28 -08:00
sparse_tensor.h Improve compatibility with certain STL's 2023-02-21 14:06:16 -08:00
stream_handles.h Multi-stream execution support (#13495) 2022-12-15 07:39:29 -08:00
tensor.h Enable Opset11 Sequence Ops on DirectML, and make the CPU implementations agnostic to backend EP (#14442) 2023-02-21 18:08:28 -08:00
tensor_shape.h Switch GSL to MS GSL 4.0.0 (#13416) 2022-10-29 04:15:20 -07:00
to_tensor_proto_element_type.h Consolidate utils::ToTensorProtoElementType, TypeToDataType, and data_types_internal::ToTensorDataType. (#9824) 2022-04-20 12:45:53 -07:00