60 lines
3.6 KiB
C
60 lines
3.6 KiB
C
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#pragma once
|
|
|
|
// This file contains well-known keys for OrtEpDevice and OrtHardwareDevice metadata entries.
|
|
// It does NOT specify all available metadata keys.
|
|
|
|
// Key for the execution provider version string. This should be available for all plugin EPs.
|
|
static const char* const kOrtEpDevice_EpMetadataKey_Version = "version";
|
|
|
|
// Key for the execution provider OS driver version.
|
|
// Value should be a 4-part dot-separated version string in the format "a.b.c.d" (e.g., "31.0.101.4502").
|
|
// This maps to the Windows DXCore adapter property DXCoreAdapterProperty::DriverVersion
|
|
// (https://learn.microsoft.com/en-us/windows/win32/api/dxcore_interface/ne-dxcore_interface-dxcoreadapterproperty).
|
|
// On non-Windows platforms, the EP should provide an equivalent OS-level driver version if available.
|
|
static const char* const kOrtEpDevice_EpMetadataKey_OSDriverVersion = "os_driver_version";
|
|
|
|
// Prefix for execution provider compatibility information stored in model metadata.
|
|
// Used when generating EP context models to store compatibility strings for each EP.
|
|
// Full key format: "ep_compatibility_info.<EP_TYPE>"
|
|
static const char* const kOrtModelMetadata_EpCompatibilityInfoPrefix = "ep_compatibility_info.";
|
|
|
|
// Key for the execution provider library path (for dynamically loaded EPs)
|
|
static const char* const kOrtEpDevice_EpMetadataKey_LibraryPath = "library_path";
|
|
|
|
// Optional metadata key for the execution provider's preferred layout of the Value KV-cache tensors
|
|
// (the past_value input and present_value output) of com.microsoft.GroupQueryAttention.
|
|
// Possible values:
|
|
// - "BNSH": (batch_size, num_heads, sequence_length, head_size). This is the assumed default value
|
|
// if this metadata key is not present, and matches the operator schema.
|
|
// - "BNHS": (batch_size, num_heads, head_size, sequence_length).
|
|
// An EP that reports "BNHS" is expected to fuse the Transpose -> GroupQueryAttention -> Transpose
|
|
// sequence that ORT inserts when the application selects that layout.
|
|
// The application passes the layout it has chosen to the session via the
|
|
// kOrtSessionOptionsGqaValueLayout session option (see onnxruntime_session_options_config_keys.h).
|
|
static const char* const kOrtEpDevice_EpMetadataKey_GqaPreferredValueLayout = "gqa_preferred_value_layout";
|
|
|
|
// Optional metadata key to determine if a OrtHardwareDevice represents a virtual (non-hardware) device.
|
|
// Possible values:
|
|
// - "0": OrtHardwareDevice is not virtual (i.e., actual hardware device). This is the assumed default value
|
|
// if this metadata key is not present.
|
|
// - "1": OrtHardwareDevice is virtual.
|
|
static const char* const kOrtHardwareDevice_MetadataKey_IsVirtual = "is_virtual";
|
|
|
|
// Key for the execution provider's weightless mode support on a specific device.
|
|
// Set by the EP during GetSupportedDevices() via CreateEpDevice() metadata.
|
|
// The app can read it via EpDevice_EpMetadata() to check device-specific weightless capability
|
|
// before calling ModelCompilationOptions_SetWeightlessEnabled().
|
|
//
|
|
// Possible values:
|
|
// - "none": EP does not support weightless mode on this device. This is the assumed default value
|
|
// if this metadata key is not present.
|
|
// - "external_only": EP supports weightless mode for external initializers only (e.g., older
|
|
// hardware/driver that must transform internal constants).
|
|
// - "all": EP supports weightless mode for all initializers (internal and external).
|
|
//
|
|
// \since Version 1.29.
|
|
static const char* const kOrtEpDevice_EpMetadataKey_WeightlessSupport = "weightless_support";
|