onnxruntime/winml/lib/Api.Core/inc/AbiCustomRegistryImpl.h
Paul McDaniel 5350abe19d
LearningModelSession is cleaned up to use the adapter, and parts of b… (#2382)
this is a big PR.    we are going to move it up to layer_dev , which is still a L3 so we are still safe to do work there agile.

we are going to move this into the L3 so that ryan can start doing intergration testing.   

we will pause for a full code review and integration test result prior to going into the L2.

>>>> raw comments from previous commits >>> 

* LearningModelSession is cleaned up to use the adapter, and parts of binding are.
* moved everything in the winmladapter
made it all nano-com using, WRL to construct objects in the ORT side.
base interfaces for everythign for winml to call
cleaned up a bunch of winml to use the base interfaces.
* more pieces
* GetData across the abi.
* renamed some namepsace
cleaned up OrtValue
cleaned up Tensor
cleaned up custom ops.
everything *but* learnignmodel should be clean
* make sure it's building.   winml.dll is still a monolith.
2019-11-14 17:44:07 -08:00

39 lines
1.6 KiB
C++

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
#pragma once
#include "core/providers/dml/DmlExecutionProvider/src/AbiCustomRegistry.h"
namespace Windows::AI::MachineLearning::Adapter{
// An implementation of AbiCustomRegistry that emits telemetry events when operator kernels or schemas are registered.
class AbiCustomRegistryImpl : public AbiCustomRegistry {
public:
HRESULT STDMETHODCALLTYPE RegisterOperatorSetSchema(
const MLOperatorSetId* op_set_id,
int baseline_version,
const MLOperatorSchemaDescription* const* schema,
uint32_t schema_count,
_In_opt_ IMLOperatorTypeInferrer* type_inferrer,
_In_opt_ IMLOperatorShapeInferrer* shape_inferrer) const noexcept override;
HRESULT STDMETHODCALLTYPE RegisterOperatorKernel(
const MLOperatorKernelDescription* operator_kernel,
IMLOperatorKernelFactory* operator_kernel_factory,
_In_opt_ IMLOperatorShapeInferrer* shape_inferrer,
bool is_internal_operator,
bool can_alias_first_input,
bool supports_graph,
const uint32_t* required_input_count_for_graph = nullptr,
bool requires_float_formats_for_graph = false,
_In_reads_(constant_cpu_input_count) const uint32_t* required_constant_cpu_inputs = nullptr,
uint32_t constant_cpu_input_count = 0) const noexcept override;
HRESULT STDMETHODCALLTYPE RegisterOperatorKernel(
const MLOperatorKernelDescription* op_kernel,
IMLOperatorKernelFactory* operator_kernel_factory,
_In_opt_ IMLOperatorShapeInferrer* shape_inferrer) const noexcept override;
};
} // namespace winrt::Windows::AI::MachineLearning::Adapter