Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::AI::DML Namespace Reference

Namespaces

namespace  Internal
 
namespace  X
 

Classes

struct  abstract
 
struct  ActivationELUOperatorDesc
 
struct  ActivationHardMaxOperatorDesc
 
struct  ActivationHardSigmoidOperatorDesc
 
struct  ActivationIdentityOperatorDesc
 
struct  ActivationLeakyReLUOperatorDesc
 
struct  ActivationLinearOperatorDesc
 
struct  ActivationLogSoftMaxOperatorDesc
 
struct  ActivationParameterizedReLUOperatorDesc
 
struct  ActivationParametricSoftPlusOperatorDesc
 
struct  ActivationReLUOperatorDesc
 
struct  ActivationScaledELUOperatorDesc
 
struct  ActivationScaledTanHOperatorDesc
 
struct  ActivationSigmoidOperatorDesc
 
struct  ActivationSoftMaxOperatorDesc
 
struct  ActivationSoftPlusOperatorDesc
 
struct  ActivationSoftSignOperatorDesc
 
struct  ActivationTanHOperatorDesc
 
struct  ActivationThresholdedReLUOperatorDesc
 
struct  AveragePoolingOperatorDesc
 
struct  BatchNormalizationOperatorDesc
 
struct  BindingDesc
 
struct  BindingProperties
 
class  BindingTable
 
struct  BindingTableDesc
 
struct  BufferArrayBinding
 
struct  BufferBinding
 
struct  BufferTensorDesc
 
struct  CastOperatorDesc
 
class  CommandRecorder
 
class  CompiledOperator
 
struct  ConstantDataGraphNodeDesc
 
struct  ConvolutionOperatorDesc
 
class  DebugDevice
 
struct  DepthToSpaceOperatorDesc
 
class  Device
 
class  Device1
 
class  DeviceChild
 
class  Dispatchable
 
struct  ElementWiseAbsOperatorDesc
 
struct  ElementWiseACosOperatorDesc
 
struct  ElementWiseAdd1OperatorDesc
 
struct  ElementWiseAddOperatorDesc
 
struct  ElementWiseASinOperatorDesc
 
struct  ElementWiseATanOperatorDesc
 
struct  ElementWiseCeilOperatorDesc
 
struct  ElementWiseClipOperatorDesc
 
struct  ElementWiseConstantPowOperatorDesc
 
struct  ElementWiseCosOperatorDesc
 
struct  ElementWiseDequantizeLinearOperatorDesc
 
struct  ElementWiseDivideOperatorDesc
 
struct  ElementWiseExpOperatorDesc
 
struct  ElementWiseFloorOperatorDesc
 
struct  ElementWiseIdentityOperatorDesc
 
struct  ElementWiseLogicalAndOperatorDesc
 
struct  ElementWiseLogicalEqualsOperatorDesc
 
struct  ElementWiseLogicalGreaterThanOperatorDesc
 
struct  ElementWiseLogicalLessThanOperatorDesc
 
struct  ElementWiseLogicalNotOperatorDesc
 
struct  ElementWiseLogicalOrOperatorDesc
 
struct  ElementWiseLogicalXorOperatorDesc
 
struct  ElementWiseLogOperatorDesc
 
struct  ElementWiseMaxOperatorDesc
 
struct  ElementWiseMeanOperatorDesc
 
struct  ElementWiseMinOperatorDesc
 
struct  ElementWiseMultiplyOperatorDesc
 
struct  ElementWisePowOperatorDesc
 
struct  ElementWiseQuantizeLinearOperatorDesc
 
struct  ElementWiseReciprocalOperatorDesc
 
struct  ElementWiseSinOperatorDesc
 
struct  ElementWiseSqrtOperatorDesc
 
struct  ElementWiseSubtractOperatorDesc
 
struct  ElementWiseTanOperatorDesc
 
struct  ElementWiseThresholdOperatorDesc
 
struct  FeatureDataTensorDataTypeSupport
 
struct  FeatureQueryTensorDataTypeSupport
 
struct  GatherOperatorDesc
 
struct  GEMMOperatorDesc
 
struct  GraphDesc
 
struct  GraphEdgeDesc
 
struct  GraphNodeDesc
 
struct  GRUOperatorDesc
 
struct  InputGraphEdgeDesc
 
struct  IntermediateGraphEdgeDesc
 
struct  JoinOperatorDesc
 
struct  LocalResponseNormalizationOperatorDesc
 
struct  LPNormalizationOperatorDesc
 
struct  LPPoolingOperatorDesc
 
struct  LSTMOperatorDesc
 
struct  MaxPoolingOperatorDesc
 
struct  MeanVarianceNormalizationOperatorDesc
 
class  Object
 
class  Operator
 
struct  OperatorDesc
 
struct  OperatorGraphNodeDesc
 
class  OperatorInitializer
 
struct  OutputGraphEdgeDesc
 
struct  PaddingOperatorDesc
 
class  Pageable
 
struct  ReduceOperatorDesc
 
struct  RNNOperatorDesc
 
struct  ROIPoolingOperatorDesc
 
struct  ScaleBias
 
struct  Size2D
 
struct  SliceOperatorDesc
 
struct  SpaceToDepthOperatorDesc
 
struct  SplitOperatorDesc
 
struct  TensorDesc
 
struct  TileOperatorDesc
 
struct  TopKOperatorDesc
 
struct  UpSample2DOperatorDesc
 
struct  ValueScale2DOperatorDesc
 

Enumerations

enum class  TensorDataType {
  Unknown = DML_TENSOR_DATA_TYPE_UNKNOWN ,
  Float32 = DML_TENSOR_DATA_TYPE_FLOAT32 ,
  Single = Float32 ,
  Float16 = DML_TENSOR_DATA_TYPE_FLOAT16 ,
  Half = Float16 ,
  UInt32 = DML_TENSOR_DATA_TYPE_UINT32 ,
  UInt16 = DML_TENSOR_DATA_TYPE_UINT16 ,
  UInt8 = DML_TENSOR_DATA_TYPE_UINT8 ,
  Int32 = DML_TENSOR_DATA_TYPE_INT32 ,
  Int16 = DML_TENSOR_DATA_TYPE_INT16 ,
  Int8 = DML_TENSOR_DATA_TYPE_INT8 ,
  Float64 = DML_TENSOR_DATA_TYPE_FLOAT64 ,
  Double = Float64 ,
  UInt64 = DML_TENSOR_DATA_TYPE_UINT64 ,
  Int64 = DML_TENSOR_DATA_TYPE_INT64
}
 
enum class  TensorType {
  Invalid = DML_TENSOR_TYPE_INVALID ,
  Buffer = DML_TENSOR_TYPE_BUFFER
}
 
enum class  TensorFlags : UInt32 {
  None = DML_TENSOR_FLAG_NONE ,
  OwnedByDML = DML_TENSOR_FLAG_OWNED_BY_DML
}
 
enum class  OperatorType {
  Invalid = DML_OPERATOR_INVALID ,
  ElementWiseIdentity = DML_OPERATOR_ELEMENT_WISE_IDENTITY ,
  ElementWiseAbs = DML_OPERATOR_ELEMENT_WISE_ABS ,
  ElementWiseACos = DML_OPERATOR_ELEMENT_WISE_ACOS ,
  ElementWiseAdd = DML_OPERATOR_ELEMENT_WISE_ADD ,
  ElementWiseASin = DML_OPERATOR_ELEMENT_WISE_ASIN ,
  ElementWiseATan = DML_OPERATOR_ELEMENT_WISE_ATAN ,
  ElementWiseCeil = DML_OPERATOR_ELEMENT_WISE_CEIL ,
  ElementWiseClip = DML_OPERATOR_ELEMENT_WISE_CLIP ,
  ElementWiseCos = DML_OPERATOR_ELEMENT_WISE_COS ,
  ElementWiseDivide = DML_OPERATOR_ELEMENT_WISE_DIVIDE ,
  ElementWiseExp = DML_OPERATOR_ELEMENT_WISE_EXP ,
  ElementWiseFloor = DML_OPERATOR_ELEMENT_WISE_FLOOR ,
  ElementWiseLog = DML_OPERATOR_ELEMENT_WISE_LOG ,
  ElementWiseLogicalAnd = DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND ,
  ElementWiseLogicalEquals = DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS ,
  ElementWiseLogicalGreaterThan = DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN ,
  ElementWiseLogicalLessThan = DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN ,
  ElementWiseLogicalNot = DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT ,
  ElementWiseLogicalOr = DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR ,
  ElementWiseLogicalXor = DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR ,
  ElementWiseMax = DML_OPERATOR_ELEMENT_WISE_MAX ,
  ElementWiseMean = DML_OPERATOR_ELEMENT_WISE_MEAN ,
  ElementWiseMin = DML_OPERATOR_ELEMENT_WISE_MIN ,
  ElementWiseMultiply = DML_OPERATOR_ELEMENT_WISE_MULTIPLY ,
  ElementWisePow = DML_OPERATOR_ELEMENT_WISE_POW ,
  ElementWiseConstantPow = DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW ,
  ElementWiseReciprocal = DML_OPERATOR_ELEMENT_WISE_RECIP ,
  ElementWiseSin = DML_OPERATOR_ELEMENT_WISE_SIN ,
  ElementWiseSqrt = DML_OPERATOR_ELEMENT_WISE_SQRT ,
  ElementWiseSubtract = DML_OPERATOR_ELEMENT_WISE_SUBTRACT ,
  ElementWiseTan = DML_OPERATOR_ELEMENT_WISE_TAN ,
  ElementWiseThreshold = DML_OPERATOR_ELEMENT_WISE_THRESHOLD ,
  ElementWiseQuantizeLinear = DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR ,
  ElementWiseDequantizeLinear = DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR ,
  ActivationELU = DML_OPERATOR_ACTIVATION_ELU ,
  ActivationHardMax = DML_OPERATOR_ACTIVATION_HARDMAX ,
  ActivationHardSigmoid = DML_OPERATOR_ACTIVATION_HARD_SIGMOID ,
  ActivationIdentity = DML_OPERATOR_ACTIVATION_IDENTITY ,
  ActivationLeakyReLU = DML_OPERATOR_ACTIVATION_LEAKY_RELU ,
  ActivationLinear = DML_OPERATOR_ACTIVATION_LINEAR ,
  ActivationLogSoftMax = DML_OPERATOR_ACTIVATION_LOG_SOFTMAX ,
  ActivationParameterizedReLU = DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU ,
  ActivationParametricSoftPlus = DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS ,
  ActivationReLU = DML_OPERATOR_ACTIVATION_RELU ,
  ActivationScaledELU = DML_OPERATOR_ACTIVATION_SCALED_ELU ,
  ActivationScaledTanH = DML_OPERATOR_ACTIVATION_SCALED_TANH ,
  ActivationSigmoid = DML_OPERATOR_ACTIVATION_SIGMOID ,
  ActivationSoftMax = DML_OPERATOR_ACTIVATION_SOFTMAX ,
  ActivationSoftPlus = DML_OPERATOR_ACTIVATION_SOFTPLUS ,
  ActivationSoftSign = DML_OPERATOR_ACTIVATION_SOFTSIGN ,
  ActivationTanH = DML_OPERATOR_ACTIVATION_TANH ,
  ActivationThresholdedReLU = DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU ,
  Convolution = DML_OPERATOR_CONVOLUTION ,
  GEMM = DML_OPERATOR_GEMM ,
  Reduce = DML_OPERATOR_REDUCE ,
  AveragePooling = DML_OPERATOR_AVERAGE_POOLING ,
  LPPooling = DML_OPERATOR_LP_POOLING ,
  MaxPooling = DML_OPERATOR_MAX_POOLING ,
  ROIPooling = DML_OPERATOR_ROI_POOLING ,
  Slice = DML_OPERATOR_SLICE ,
  Cast = DML_OPERATOR_CAST ,
  Split = DML_OPERATOR_SPLIT ,
  Join = DML_OPERATOR_JOIN ,
  Padding = DML_OPERATOR_PADDING ,
  ValueScale2D = DML_OPERATOR_VALUE_SCALE_2D ,
  UpSample2D = DML_OPERATOR_UPSAMPLE_2D ,
  Gather = DML_OPERATOR_GATHER ,
  SpaceToDepth = DML_OPERATOR_SPACE_TO_DEPTH ,
  DepthToSpace = DML_OPERATOR_DEPTH_TO_SPACE ,
  Tile = DML_OPERATOR_TILE ,
  TopK = DML_OPERATOR_TOP_K ,
  BatchNormalization = DML_OPERATOR_BATCH_NORMALIZATION ,
  MeanVarianceNormalization = DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION ,
  LocalResponseNormalization = DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION ,
  LPNormalization = DML_OPERATOR_LP_NORMALIZATION ,
  RNN = DML_OPERATOR_RNN ,
  LSTM = DML_OPERATOR_LSTM ,
  GRU = DML_OPERATOR_GRU
}
 
enum class  ReduceFunction {
  ArgMax ,
  ArgMin ,
  Average ,
  L1 ,
  L2 ,
  LogSum ,
  LogSumExp ,
  Max ,
  Min ,
  Multiply ,
  Sum ,
  SumSquare
}
 
enum class  MatrixTransform {
  None ,
  Transpose
}
 
enum class  ConvolutionMode {
  Convolution ,
  CrossCorrelation
}
 
enum class  ConvolutionDirection {
  Forward ,
  Backward
}
 
enum class  PaddingMode {
  Constant ,
  Edge ,
  Reflection
}
 
enum class  InterpolationMode {
  NearestNeighbor ,
  Linear
}
 
enum class  RecurrentNetworkDirection {
  Forward ,
  Backward ,
  Bidirectional
}
 
enum class  Feature { TensorDataTypeSupport }
 
enum class  ExecutionFlags : UInt32 {
  None = 0 ,
  AllowHalfPrecisionComputation = 0x1 ,
  DisableMetaCommands = 0x2 ,
  DescriptorsVolatile = 0x4
}
 
enum class  CreateDeviceFlags : UInt32 {
  None = 0 ,
  Debug = 0x1
}
 
enum class  BindingType {
  None ,
  Buffer ,
  BufferArray
}
 
enum class  GraphEdgeType {
  Invalid = DML_GRAPH_EDGE_TYPE_INVALID ,
  Input = DML_GRAPH_EDGE_TYPE_INPUT ,
  Output = DML_GRAPH_EDGE_TYPE_OUTPUT ,
  Intermediate = DML_GRAPH_EDGE_TYPE_INTERMEDIATE
}
 
enum class  GraphNodeType {
  Invalid = DML_GRAPH_NODE_TYPE_INVALID ,
  Operator = DML_GRAPH_NODE_TYPE_OPERATOR ,
  Constant = DML_GRAPH_NODE_TYPE_CONSTANT
}
 

Functions

 HCC_DEFINE_ENUM_FLAG_OPERATORS (TensorFlags, UInt32)
 
constexpr UInt64 CalcBufferTensorSize (TensorDataType dataType, UInt32 dimensionCount, _In_reads_(dimensionCount) const UInt32 *sizes, _In_reads_opt_(dimensionCount) const UInt32 *strides)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (ExecutionFlags, UInt32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (CreateDeviceFlags, UInt32)
 
void CreateDevice (ID3D12Device *d3d12Device, DML_CREATE_DEVICE_FLAGS flags, REFIID riid, _COM_Outptr_opt_ void **ppv)
 
template<typename T = Device>
requires std::is_base_of_v<Device, T>
T CreateDevice (ID3D12Device *d3d12Device, CreateDeviceFlags flags=CreateDeviceFlags::None)
 
template<typename T = Device>
requires std::is_base_of_v<Device, T>
T CreateDevice (const Graphics::D3D12::Device &d3d12Device, CreateDeviceFlags flags=CreateDeviceFlags::None)
 

Variables

constexpr UInt32 TensorDimensionCountMax = DML_TENSOR_DIMENSION_COUNT_MAX
 
constexpr UInt32 TemporaryBufferAlignment = DML_TEMPORARY_BUFFER_ALIGNMENT
 
constexpr UInt32 PersistentBufferAlignment = DML_PERSISTENT_BUFFER_ALIGNMENT
 
constexpr UInt32 MinimumBufferTensorAlignment = DML_MINIMUM_BUFFER_TENSOR_ALIGNMENT
 

Enumeration Type Documentation

◆ BindingType

enum class Harlinn::AI::DML::BindingType
strong

Alias for DML_BINDING_TYPE

Enumerator
None 
Buffer 
BufferArray 

◆ ConvolutionDirection

Alias for DML_CONVOLUTION_DIRECTION

Enumerator
Forward 
Backward 

◆ ConvolutionMode

Alias for DML_CONVOLUTION_MODE

Enumerator
Convolution 
CrossCorrelation 

◆ CreateDeviceFlags

Alias for DML_CREATE_DEVICE_FLAGS

Enumerator
None 
Debug 

◆ ExecutionFlags

Alias for DML_EXECUTION_FLAGS

Enumerator
None 
AllowHalfPrecisionComputation 
DisableMetaCommands 
DescriptorsVolatile 

◆ Feature

enum class Harlinn::AI::DML::Feature
strong

Alias for DML_FEATURE

Enumerator
TensorDataTypeSupport 

◆ GraphEdgeType

Alias for DML_GRAPH_EDGE_TYPE

Enumerator
Invalid 
Input 
Output 
Intermediate 

◆ GraphNodeType

Alias for DML_GRAPH_NODE_TYPE

Enumerator
Invalid 
Operator 
Constant 

◆ InterpolationMode

Alias for DML_INTERPOLATION_MODE

Enumerator
NearestNeighbor 
Linear 

◆ MatrixTransform

Alias for DML_MATRIX_TRANSFORM

Enumerator
None 
Transpose 

◆ OperatorType

enum class Harlinn::AI::DML::OperatorType
strong

Alias for DML_OPERATOR_TYPE

Enumerator
Invalid 
ElementWiseIdentity 
ElementWiseAbs 
ElementWiseACos 
ElementWiseAdd 
ElementWiseASin 
ElementWiseATan 
ElementWiseCeil 
ElementWiseClip 
ElementWiseCos 
ElementWiseDivide 
ElementWiseExp 
ElementWiseFloor 
ElementWiseLog 
ElementWiseLogicalAnd 
ElementWiseLogicalEquals 
ElementWiseLogicalGreaterThan 
ElementWiseLogicalLessThan 
ElementWiseLogicalNot 
ElementWiseLogicalOr 
ElementWiseLogicalXor 
ElementWiseMax 
ElementWiseMean 
ElementWiseMin 
ElementWiseMultiply 
ElementWisePow 
ElementWiseConstantPow 
ElementWiseReciprocal 
ElementWiseSin 
ElementWiseSqrt 
ElementWiseSubtract 
ElementWiseTan 
ElementWiseThreshold 
ElementWiseQuantizeLinear 
ElementWiseDequantizeLinear 
ActivationELU 
ActivationHardMax 
ActivationHardSigmoid 
ActivationIdentity 
ActivationLeakyReLU 
ActivationLinear 
ActivationLogSoftMax 
ActivationParameterizedReLU 
ActivationParametricSoftPlus 
ActivationReLU 
ActivationScaledELU 
ActivationScaledTanH 
ActivationSigmoid 
ActivationSoftMax 
ActivationSoftPlus 
ActivationSoftSign 
ActivationTanH 
ActivationThresholdedReLU 
Convolution 
GEMM 
Reduce 
AveragePooling 
LPPooling 
MaxPooling 
ROIPooling 
Slice 
Cast 
Split 
Join 
Padding 
ValueScale2D 
UpSample2D 
Gather 
SpaceToDepth 
DepthToSpace 
Tile 
TopK 
BatchNormalization 
MeanVarianceNormalization 
LocalResponseNormalization 
LPNormalization 
RNN 
LSTM 
GRU 

◆ PaddingMode

enum class Harlinn::AI::DML::PaddingMode
strong

Alias for DML_PADDING_MODE

Enumerator
Constant 
Edge 
Reflection 

◆ RecurrentNetworkDirection

Alias for DML_RECURRENT_NETWORK_DIRECTION

Enumerator
Forward 
Backward 
Bidirectional 

◆ ReduceFunction

Alias for DML_REDUCE_FUNCTION

Enumerator
ArgMax 
ArgMin 
Average 
L1 
L2 
LogSum 
LogSumExp 
Max 
Min 
Multiply 
Sum 
SumSquare 

◆ TensorDataType

Alias for DML_TENSOR_DATA_TYPE

Enumerator
Unknown 
Float32 
Single 
Float16 
Half 
UInt32 
UInt16 
UInt8 
Int32 
Int16 
Int8 
Float64 
Double 
UInt64 
Int64 

◆ TensorFlags

Alias for DML_TENSOR_FLAGS

Enumerator
None 
OwnedByDML 

◆ TensorType

enum class Harlinn::AI::DML::TensorType
strong

Alias for DML_TENSOR_TYPE

Enumerator
Invalid 
Buffer 

Function Documentation

◆ CalcBufferTensorSize()

UInt64 Harlinn::AI::DML::CalcBufferTensorSize ( TensorDataType dataType,
UInt32 dimensionCount,
_In_reads_(dimensionCount) const UInt32 * sizes,
_In_reads_opt_(dimensionCount) const UInt32 * strides )
inlineconstexpr

◆ CreateDevice() [1/3]

template<typename T = Device>
requires std::is_base_of_v<Device, T>
T Harlinn::AI::DML::CreateDevice ( const Graphics::D3D12::Device & d3d12Device,
CreateDeviceFlags flags = CreateDeviceFlags::None )
inline

◆ CreateDevice() [2/3]

template<typename T = Device>
requires std::is_base_of_v<Device, T>
T Harlinn::AI::DML::CreateDevice ( ID3D12Device * d3d12Device,
CreateDeviceFlags flags = CreateDeviceFlags::None )
inline

◆ CreateDevice() [3/3]

void Harlinn::AI::DML::CreateDevice ( ID3D12Device * d3d12Device,
DML_CREATE_DEVICE_FLAGS flags,
REFIID riid,
_COM_Outptr_opt_ void ** ppv )
inline

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [1/3]

Harlinn::AI::DML::HCC_DEFINE_ENUM_FLAG_OPERATORS ( CreateDeviceFlags ,
UInt32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [2/3]

Harlinn::AI::DML::HCC_DEFINE_ENUM_FLAG_OPERATORS ( ExecutionFlags ,
UInt32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [3/3]

Harlinn::AI::DML::HCC_DEFINE_ENUM_FLAG_OPERATORS ( TensorFlags ,
UInt32  )

Variable Documentation

◆ MinimumBufferTensorAlignment

UInt32 Harlinn::AI::DML::MinimumBufferTensorAlignment = DML_MINIMUM_BUFFER_TENSOR_ALIGNMENT
constexpr

◆ PersistentBufferAlignment

UInt32 Harlinn::AI::DML::PersistentBufferAlignment = DML_PERSISTENT_BUFFER_ALIGNMENT
constexpr

◆ TemporaryBufferAlignment

UInt32 Harlinn::AI::DML::TemporaryBufferAlignment = DML_TEMPORARY_BUFFER_ALIGNMENT
constexpr

◆ TensorDimensionCountMax

UInt32 Harlinn::AI::DML::TensorDimensionCountMax = DML_TENSOR_DIMENSION_COUNT_MAX
constexpr