mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-07 00:13:17 +00:00
Add `support64BitTensorsViaEmulation` to the internal registration info, that informs the graph partitioner that int64 is supported via emulation, even if the device doesn't support it natively. See further description in the corresponding WindowsAI DML PR: https://dev.azure.com/microsoft/WindowsAI/_git/WindowsAI/pullrequest/6101182 Note a later PR will most likely *delete* this newly added flag and simplify much of the existing logic, even deleting the strides hack completely ^__^... Related work items: #28761231
45 lines
1.9 KiB
C++
45 lines
1.9 KiB
C++
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#pragma once
|
|
|
|
#ifdef USE_DML
|
|
#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,
|
|
_In_opt_ IMLOperatorSupportQueryPrivate* supportQuery,
|
|
bool is_internal_operator,
|
|
bool can_alias_first_input,
|
|
bool supports_graph,
|
|
const uint32_t* required_input_count_for_graph = nullptr,
|
|
bool supports_64bit_directly = false,
|
|
bool allows_64bit_via_strides = false,
|
|
bool allows_64bit_via_strides_from_any_ep = false,
|
|
bool supports_64bit_tensors_via_emulation = 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 Windows::AI::MachineLearning::Adapter
|
|
#endif USE_DML
|