DirectML
Overview of the DirectML technology.
To develop DirectML, you need these headers:
For programming guidance for this technology, see:
Enumerations
DML_AXIS_DIRECTION Defines constants that specify the direction of an operation along the given axis for the operator (for example, summation, selecting the top-k elements, selecting the minimum element). |
DML_BINDING_TYPE Defines constants that specify the nature of the resource(s) referred to by a binding description (a DML_BINDING_DESC structure). |
DML_CONVOLUTION_DIRECTION Defines constants that specify a direction for the DirectML convolution operator (as described by the DML_CONVOLUTION_OPERATOR_DESC structure). |
DML_CONVOLUTION_MODE Defines constants that specify a mode for the DirectML convolution operator (as described by the DML_CONVOLUTION_OPERATOR_DESC structure). |
DML_CREATE_DEVICE_FLAGS Supplies additional device creation options to DMLCreateDevice. Values can be bitwise OR'd together. |
DML_DEPTH_SPACE_ORDER Defines constants controlling the transform applied in the DirectML operators DML_OPERATOR_DEPTH_TO_SPACE1 and DML_OPERATOR_SPACE_TO_DEPTH1. |
DML_EXECUTION_FLAGS Supplies options to DirectML to control execution of operators. These flags can be bitwise OR'd together to specify multiple flags at once. |
DML_FEATURE Defines a set of optional features and capabilities that can be queried from the DirectML device. |
DML_FEATURE_LEVEL Defines constants that specify a DirectML feature level. A feature level defines a broad umbrella of functionality supported by DirectML. |
DML_GRAPH_EDGE_TYPE Defines constants that specify a type of graph edge. See DML_GRAPH_EDGE_DESC for the usage of this enumeration. |
DML_GRAPH_NODE_TYPE Defines constants that specify a type of graph node. See DML_GRAPH_NODE_DESC for the usage of this enumeration. |
DML_INTERPOLATION_MODE Defines constants that specify a mode for the DirectML upsample 2-D operator (as described by the DML_UPSAMPLE_2D_OPERATOR_DESC structure). |
DML_IS_INFINITY_MODE Defines constants that specify the sign of an infinity. |
DML_MATRIX_TRANSFORM Defines constants that specify a matrix transform to be applied to a DirectML tensor. |
DML_OPERATOR_TYPE Defines the type of an operator description. |
DML_PADDING_MODE Defines constants that specify a mode for the DirectML pad operator (as described by the DML_PADDING_OPERATOR_DESC structure). |
DML_RANDOM_GENERATOR_TYPE Defines constants that specify types of random random-number generator. |
DML_RECURRENT_NETWORK_DIRECTION Defines constants that specify a direction for a recurrent DirectML operator. |
DML_REDUCE_FUNCTION Defines constants that specify the specific reduction algorithm to use for the DirectML reduce operator (as described by the DML_REDUCE_OPERATOR_DESC structure). |
DML_ROUNDING_MODE Defines constants that specify a rounding mode. |
DML_TENSOR_DATA_TYPE Specifies the data type of the values in a tensor. DirectML operators may not support all data types; see the documentation for each specific operator to find which data types it supports. |
DML_TENSOR_FLAGS Specifies additional options in a tensor description. Values can be bitwise OR'd together. |
DML_TENSOR_TYPE Identifies a type of tensor description. |
Functions
BindInputs Binds a set of resources as input tensors. |
BindOutputs Binds a set of resources as output tensors. |
BindPersistentResource Binds a buffer as a persistent resource. You can determine the required size of this buffer range by calling IDMLDispatchable::GetBindingProperties. |
BindTemporaryResource Binds a buffer to use as temporary scratch memory. You can determine the required size of this buffer range by calling IDMLDispatchable::GetBindingProperties. |
CheckFeatureSupport Gets information about the optional features and capabilities that are supported by the DirectML device. |
CompileGraph Compiles a graph of DirectML operators into an object that can be dispatched to the GPU. |
CompileOperator Compiles an operator into an object that can be dispatched to the GPU. |
CreateBindingTable Creates a binding table, which is an object that can be used to bind resources (such as tensors) to the pipeline. |
CreateCommandRecorder Creates a DirectML command recorder. |
CreateOperator Creates a DirectML operator. |
CreateOperatorInitializer Creates an object that can be used to initialize compiled operators. |
DMLCreateDevice Creates a DirectML device for a given Direct3D 12 device. (DMLCreateDevice) |
DMLCreateDevice1 Creates a DirectML device for a given Direct3D 12 device. (DMLCreateDevice1) |
Evict Evicts one or more pageable objects from GPU memory. Also see IDMLDevice::MakeResident. |
GetBindingProperties Retrieves the binding properties for a dispatchable object (an operator initializer, or a compiled operator). |
GetDevice Retrieves the DirectML device that was used to create this object. |
GetDeviceRemovedReason Retrieves the reason that the DirectML device was removed. |
GetParentDevice Retrieves the Direct3D 12 device that was used to create this DirectML device. |
GetPrivateData Gets application-defined data from a DirectML device object. |
MakeResident Causes one or more pageable objects to become resident in GPU memory. Also see IDMLDevice::Evict. |
RecordDispatch Records execution of a dispatchable object (an operator initializer, or a compiled operator) onto a command list. |
Reset Resets the binding table to wrap a new range of descriptors, potentially for a different operator or initializer. This allows dynamic reuse of the binding table. |
Reset Resets the initializer to handle initialization of a new set of operators. |
SetMuteDebugOutput Determine whether to mute DirectML from sending messages to the ID3D12InfoQueue. |
SetName Associates a name with the DirectML device object. This name is for use in debug diagnostics and tools. |
SetPrivateData Sets application-defined data to a DirectML device object, and associates that data with an application-defined GUID. |
SetPrivateDataInterface Associates an IUnknown-derived interface with the DirectML device object, and associates that interface with an application-defined GUID. |
Interfaces
IDMLBindingTable Wraps a range of an application-managed descriptor heap, and is used by DirectML to create bindings for resources. To create this object, call IDMLDevice::CreateBindingTable. |
IDMLCommandRecorder Records dispatches of DirectML work into a Direct3D 12 command list. |
IDMLCompiledOperator Represents a compiled, efficient form of an operator suitable for execution on the GPU. To create this object, call IDMLDevice::CompileOperator. |
IDMLDebugDevice Controls the DirectML debug layers. |
IDMLDevice Represents a DirectML device, which is used to create operators, binding tables, command recorders, and other objects. (IDMLDevice) |
IDMLDevice1 Represents a DirectML device, which is used to create operators, binding tables, command recorders, and other objects. (IDMLDevice1) |
IDMLDeviceChild An interface implemented by all objects created from the DirectML device. |
IDMLDispatchable Implemented by objects that can be recorded into a command list for dispatch on the GPU, using IDMLCommandRecorder::RecordDispatch. |
IDMLObject An interface from which IDMLDevice and IDMLDeviceChild inherit directly (and all other interfaces, indirectly). |
IDMLOperator Represents a DirectML operator. |
IDMLOperatorInitializer Represents a specialized object whose purpose is to initialize compiled operators. To create an instance of this object, call IDMLDevice::CreateOperatorInitializer. |
IDMLPageable Implemented by objects that can be evicted from GPU memory, and hence that can be supplied to IDMLDevice::Evict and IDMLDevice::MakeResident. |
Structures
DML_ACTIVATION_CELU_OPERATOR_DESC Performs the continuously differentiable exponential linear unit (CELU) activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_ELU_OPERATOR_DESC Performs an exponential linear unit (ELU) activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_HARD_SIGMOID_OPERATOR_DESC Performs a hard sigmoid function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_HARDMAX_OPERATOR_DESC Performs a hardmax function on each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_IDENTITY_OPERATOR_DESC Performs the identity activation, effectively copying every element of InputTensor to the corresponding element of OutputTensor. |
DML_ACTIVATION_LEAKY_RELU_OPERATOR_DESC Performs a leaky rectified linear unit (ReLU) activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_LINEAR_OPERATOR_DESC Performs the linear activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC Performs a (natural) log-of-softmax activation function on each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC Performs a parameterized rectified linear unit (ReLU) activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC Performs a parametric softplus activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. (DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC) |
DML_ACTIVATION_RELU_GRAD_OPERATOR_DESC Computes backpropagation gradients for a rectified linear unit (ReLU). |
DML_ACTIVATION_RELU_OPERATOR_DESC Performs a rectified linear unit (ReLU) activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_SCALED_ELU_OPERATOR_DESC Performs a scaled exponential linear unit (ELU) activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_SCALED_TANH_OPERATOR_DESC Performs a scaled hyperbolic tangent activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_SHRINK_OPERATOR_DESC Performs the shrink activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_SIGMOID_OPERATOR_DESC Performs the sigmoid function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_SOFTMAX_OPERATOR_DESC Performs a softmax activation function on InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC Performs a parametric softplus activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. (DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC) |
DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC Performs the softsign function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_TANH_OPERATOR_DESC Performs a hyperbolic tangent activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_DESC Performs a thresholded rectified linear unit (ReLU) activation function on every element in InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ADAM_OPTIMIZER_OPERATOR_DESC Computes updated weights (parameters) using the supplied gradients, based on the Adam (ADAptive Moment estimation) algorithm. This operator is an optimizer, and is typically used in the weight update step of a training loop to perform gradient descent. |
DML_ARGMAX_OPERATOR_DESC Outputs the indices of the maximum-valued elements within one or more dimensions of the input tensor. |
DML_ARGMIN_OPERATOR_DESC Outputs the indices of the minimum-valued elements within one or more dimensions of the input tensor. |
DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC Computes backpropagation gradients for average pooling (see DML_AVERAGE_POOLING_OPERATOR_DESC). |
DML_AVERAGE_POOLING_OPERATOR_DESC Averages values across the elements within the sliding window over the input tensor. |
DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC Computes backpropagation gradients for batch normalization. |
DML_BATCH_NORMALIZATION_OPERATOR_DESC The DML_BATCH_NORMALIZATION_OPERATOR_DESC structure (directml.h) performs a batch normalization on the input. |
DML_BATCH_NORMALIZATION_TRAINING_GRAD_OPERATOR_DESC Computes backpropagation gradients for batch normalization training. |
DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC The DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC structure (directml.h) performs a batch normalization on the input. |
DML_BINDING_DESC Contains the description of a binding so that you can add it to the binding table via a call to one of the IDMLBindingTable methods. |
DML_BINDING_PROPERTIES Contains information about the binding requirements of a particular compiled operator, or operator initializer. This struct is retrieved from IDMLDispatchable::GetBindingProperties. |
DML_BINDING_TABLE_DESC Specifies parameters to IDMLDevice::CreateBindingTable and IDMLBindingTable::Reset. |
DML_BUFFER_ARRAY_BINDING Specifies a resource binding that is an array of individual buffer bindings. |
DML_BUFFER_BINDING Specifies a resource binding described by a range of bytes in a Direct3D 12 buffer, represented by an offset and size into an ID3D12Resource. |
DML_BUFFER_TENSOR_DESC Describes a tensor that will be stored in a Direct3D 12 buffer resource. |
DML_CAST_OPERATOR_DESC Casts each element in the input to the data type of the output tensor, and stores the result in the corresponding element of the output. |
DML_CONVOLUTION_INTEGER_OPERATOR_DESC Performs a convolution of the FilterTensor with the InputTensor. This operator performs forward convolution on integer data. |
DML_CONVOLUTION_OPERATOR_DESC Performs a convolution of the FilterTensor with the InputTensor. This operator supports a number of standard convolution configurations. |
DML_CUMULATIVE_PRODUCT_OPERATOR_DESC Multiplies the elements of a tensor along an axis, writing the running tally of the product into the output tensor. |
DML_CUMULATIVE_SUMMATION_OPERATOR_DESC Sums the elements of a tensor along an axis, writing the running tally of the summation into the output tensor. |
DML_DEPTH_TO_SPACE_OPERATOR_DESC Rearranges (permutes) data from depth into blocks of spatial data. The operator outputs a copy of the input tensor where values from the depth dimension are moved in spatial blocks to the height and width dimensions. (DML_DEPTH_TO_SPACE_OPERATOR_DESC) |
DML_DEPTH_TO_SPACE1_OPERATOR_DESC Rearranges (permutes) data from depth into blocks of spatial data. The operator outputs a copy of the input tensor where values from the depth dimension are moved in spatial blocks to the height and width dimensions. (DML_DEPTH_TO_SPACE1_OPERATOR_DESC) |
DML_DIAGONAL_MATRIX_OPERATOR_DESC Generates an identity-like matrix with ones (or other explicit value) on the major diagonal, and zeros everywhere else. |
DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC Calculates the quantization scale and zero point values necessary to quantize the InputTensor, then applies that quantization, writing the result to OutputTensor. |
DML_ELEMENT_WISE_ABS_OPERATOR_DESC Computes the absolute value for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ACOS_OPERATOR_DESC Computes the arccosine for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ACOSH_OPERATOR_DESC Computes the hyperbolic arccosine for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ADD_OPERATOR_DESC Adds every element in ATensor to its corresponding element in BTensor, placing the result into the corresponding element of OutputTensor. (DML_ELEMENT_WISE_ADD_OPERATOR_DESC) |
DML_ELEMENT_WISE_ADD1_OPERATOR_DESC Adds every element in ATensor to its corresponding element in BTensor and places the result into the corresponding element of OutputTensor, with the option for fused activation. |
DML_ELEMENT_WISE_ASIN_OPERATOR_DESC Computes the arcsine for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ASINH_OPERATOR_DESC Computes the hyperbolic arcsine for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ATAN_OPERATOR_DESC Computes the arctangent for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ATAN_YX_OPERATOR_DESC Computes the 2-argument arctangent for each element of ATensor and BTensor, where ATensor is the Y-axis and BTensor is the X-axis, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ATANH_OPERATOR_DESC Computes the hyperbolic arctangent for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_BIT_AND_OPERATOR_DESC Computes the bitwise AND between each corresponding element of the input tensors, and writes the result into the output tensor. |
DML_ELEMENT_WISE_BIT_COUNT_OPERATOR_DESC Computes the bitwise population count (the number of bits set to 1) for each element of the input tensor, and writes the result into the output tensor. |
DML_ELEMENT_WISE_BIT_NOT_OPERATOR_DESC Computes the bitwise NOT for each element of the input tensor, and writes the result into the output tensor. |
DML_ELEMENT_WISE_BIT_OR_OPERATOR_DESC Computes the bitwise OR between each corresponding element of the input tensors, and writes the result into the output tensor. |
DML_ELEMENT_WISE_BIT_SHIFT_LEFT_OPERATOR_DESC Performs a logical left shift of each element of ATensor by a number of bits given by the corresponding element of BTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_BIT_SHIFT_RIGHT_OPERATOR_DESC Performs a logical right shift of each element of ATensor by a number of bits given by the corresponding element of BTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_BIT_XOR_OPERATOR_DESC Computes the bitwise XOR (eXclusive OR) between each corresponding element of the input tensors, and writes the result into the output tensor. |
DML_ELEMENT_WISE_CEIL_OPERATOR_DESC Computes the ceiling for each element of InputTensor, placing the result into the corresponding element of OutputTensor. The ceiling of x is the smallest integer that is greater than or equal to x. |
DML_ELEMENT_WISE_CLIP_GRAD_OPERATOR_DESC Computes backpropagation gradients for element-wise clip. |
DML_ELEMENT_WISE_CLIP_GRAD1_OPERATOR_DESC Computes backpropagation gradients for element-wise clip. |
DML_ELEMENT_WISE_CLIP_OPERATOR_DESC Performs the following operation for each element of InputTensor, placing the result into the corresponding element of OutputTensor. This operator clamps (or limits) every element in the input within the closed interval [Min, Max]. |
DML_ELEMENT_WISE_CLIP1_OPERATOR_DESC Performs a clamping (or limiting) operation for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC Raises each element of InputTensor to the power of Exponent, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_COS_OPERATOR_DESC Computes the trigonometric cosine of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_COSH_OPERATOR_DESC Computes the hyperbolic cosine of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC Performs the following linear dequantization function on every element in InputTensor with respect to its corresponding element in ScaleTensor and ZeroPointTensor , placing the results in the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_DIFFERENCE_SQUARE_OPERATOR_DESC Subtracts each element of BTensor from the corresponding element of ATensor, multiplies the result by itself, and places the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC Computes the quotient of each element of ATensor over the corresponding element of BTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_ERF_OPERATOR_DESC Performs the Gaussian error function (erf) on each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_EXP_OPERATOR_DESC Applies the natural exponentiation function to each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC Computes the floor for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC Computes the identity for each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_IF_OPERATOR_DESC Selects elements either from ATensor or BTensor, depending on the value of the corresponding element in ConditionTensor. Non-zero elements of ConditionTensor select from ATensor, while zero-valued elements select from BTensor. |
DML_ELEMENT_WISE_IS_INFINITY_OPERATOR_DESC Checks each element of InputTensor for IEEE-754 -inf, inf, or both, depending on the given InfinityMode, and places the result (1 for true, 0 for false) into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_IS_NAN_OPERATOR_DESC For each element of the input tensor, returns 1 if the input is NaN (as defined by IEEE-754), and 0 otherwise. The result is placed into the corresponding element of the output tensor. |
DML_ELEMENT_WISE_LOG_OPERATOR_DESC Computes the base-e (natural) logarithm of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC Performs a logical AND on each pair of corresponding elements of the input tensors, placing the result (1 for true, 0 for false) into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC Performs a logical equals on each pair of corresponding elements of the input tensors, placing the result (1 for true, 0 for false) into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC Performs a logical greater than on each pair of corresponding elements of the input tensors, placing the result (1 for true, 0 for false) into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL_OPERATOR_DESC Performs a logical greater than or equal to on each pair of corresponding elements of the input tensors, placing the result (1 for true, 0 for false) into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC Performs a logical less than on each pair of corresponding elements of the input tensors, placing the result (1 for true, 0 for false) into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL_OPERATOR_DESC Performs a logical less than or equal to on each pair of corresponding elements of the input tensors, placing the result (1 for true, 0 for false) into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC Performs a logical NOT on each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC Performs a logical OR on each pair of corresponding elements of the input tensors, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC Performs a logical XOR (exclusive or) on each pair of corresponding elements of the input tensors, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_MAX_OPERATOR_DESC Takes the greater of two corresponding elements from the input tensors, and places the result into the corresponding element of the output tensor. |
DML_ELEMENT_WISE_MEAN_OPERATOR_DESC Averages each pair of corresponding elements of the input tensors, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_MIN_OPERATOR_DESC Takes the lesser of two corresponding elements from the input tensors, and places the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_MODULUS_FLOOR_OPERATOR_DESC Computes the modulus, with the same results as the Python modulus, for each pair of corresponding elements from the input tensors, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_MODULUS_TRUNCATE_OPERATOR_DESC Computes the C modulus operator for each pair of corresponding elements of the input tensors, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC Computes the product of each pair of corresponding elements of the input tensors, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_NEGATE_OPERATOR_DESC Negates each element of InputTensor, storing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_POW_OPERATOR_DESC Computes each element of InputTensor raised to the power of the corresponding element of ExponentTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC Performs the following linear quantization function on every element in InputTensor with respect to its corresponding element in ScaleTensor and ZeroPointTensor , placing the results in the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC Adds every element in ATensor to its corresponding element in BTensor, placing the result into the corresponding element of OutputTensor. (DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC) |
DML_ELEMENT_WISE_RECIP_OPERATOR_DESC Computes the reciprocal for each element of the input tensor, placing the result into the corresponding element of the output tensor. |
DML_ELEMENT_WISE_ROUND_OPERATOR_DESC Rounds each element of InputTensor to an integer value, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_SIGN_OPERATOR_DESC Returns a value representing the sign of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_SIN_OPERATOR_DESC Computes the trigonometric sine of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_SINH_OPERATOR_DESC Computes the hyperbolic sine of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_SQRT_OPERATOR_DESC Computes the square root of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC Subtracts each element of BTensor from the corresponding element of ATensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_TAN_OPERATOR_DESC Computes the trigonometric tangent of each element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_TANH_OPERATOR_DESC Computes the hyperbolic tangent of element of InputTensor, placing the result into the corresponding element of OutputTensor. |
DML_ELEMENT_WISE_THRESHOLD_OPERATOR_DESC Replaces all elements of InputTensor below the given threshold, Min, with Min. Results are placed into the corresponding element of OutputTensor. |
DML_FEATURE_DATA_FEATURE_LEVELS Provides detail about the feature levels supported by a DirectML device. |
DML_FEATURE_DATA_TENSOR_DATA_TYPE_SUPPORT Provides detail about whether a DirectML device supports a particular data type within tensors. |
DML_FEATURE_QUERY_FEATURE_LEVELS Used to query a DirectML device for its support for one or more feature levels. |
DML_FEATURE_QUERY_TENSOR_DATA_TYPE_SUPPORT Used to query a DirectML device for its support for a particular data type within tensors. |
DML_FILL_VALUE_CONSTANT_OPERATOR_DESC Fills a tensor with the given constant Value. |
DML_FILL_VALUE_SEQUENCE_OPERATOR_DESC Fills a tensor with a sequence. |
DML_GATHER_ELEMENTS_OPERATOR_DESC Gathers elements from the input tensor along the given axis using the indices tensor to remap into the input. |
DML_GATHER_ND_OPERATOR_DESC Gathers elements from the input tensor, using the indices tensor to remap indices to entire subblocks of the input. (DML_GATHER_ND_OPERATOR_DESC) |
DML_GATHER_ND1_OPERATOR_DESC Gathers elements from the input tensor, using the indices tensor to remap indices to entire subblocks of the input. (DML_GATHER_ND1_OPERATOR_DESC) |
DML_GATHER_OPERATOR_DESC Gathers elements from the input tensor along Axis, using IndicesTensor to remap indices. |
DML_GEMM_OPERATOR_DESC Performs a general matrix multiplication function of the form Output = FusedActivation(Alpha * TransA(A) x TransB(B) + Beta * C) , where x denotes matrix multiplication, and * denotes multiplication with a scalar. |
DML_GRAPH_DESC Describes a graph of DirectML operators used to compile a combined, optimized operator. |
DML_GRAPH_EDGE_DESC A generic container for a connection within a graph of DirectML operators defined by DML_GRAPH_DESC and passed to IDMLDevice1::CompileGraph. |
DML_GRAPH_NODE_DESC A generic container for a node within a graph of DirectML operators defined by DML_GRAPH_DESC and passed to IDMLDevice1::CompileGraph. |
DML_GRU_OPERATOR_DESC Performs a (standard layers) one-layer gated recurrent unit (GRU) function on the input. This operator uses multiple gates to perform this layer. These gates are performed multiple times in a loop dictated by the sequence length dimension and the SequenceLengthsTensor. |
DML_INPUT_GRAPH_EDGE_DESC Describes a connection within a graph of DirectML operators defined by DML_GRAPH_DESC and passed to IDMLDevice1::CompileGraph. This structure is used to define a connection from a graph input to an input of an internal node. |
DML_INTERMEDIATE_GRAPH_EDGE_DESC Describes a connection within a graph of DirectML operators defined by DML_GRAPH_DESC and passed to IDMLDevice1::CompileGraph. This structure is used to define a connection between internal nodes. |
DML_JOIN_OPERATOR_DESC Concatenates an array of input tensors along a specified axis. |
DML_LOCAL_RESPONSE_NORMALIZATION_GRAD_OPERATOR_DESC Computes backpropagation gradients for local response normalization. |
DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_DESC Performs a local response normalization (LRN) function on the input. |
DML_LP_NORMALIZATION_OPERATOR_DESC Performs an Lp-normalization function along the specified axis of the input tensor. |
DML_LP_POOLING_OPERATOR_DESC Computes the Lp-normalized value across the elements within the sliding window over the input tensor. |
DML_LSTM_OPERATOR_DESC Performs a one-layer long short term memory (LSTM) function on the input. This operator uses multiple gates to perform this layer. These gates are performed multiple times in a loop, dictated by the sequence length dimension and the SequenceLengthsTensor. |
DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC Performs a matrix multiplication function on integer data. |
DML_MAX_POOLING_GRAD_OPERATOR_DESC Computes backpropagation gradients for max pooling (see DML_MAX_POOLING2_OPERATOR_DESC). |
DML_MAX_POOLING_OPERATOR_DESC Computes the maximum value across the elements within the sliding window over the input tensor. |
DML_MAX_POOLING1_OPERATOR_DESC Computes the maximum value across the elements within the sliding window over the input tensor, and optionally returns the indices of the maximum values selected. (DML_MAX_POOLING1_OPERATOR_DESC) |
DML_MAX_POOLING2_OPERATOR_DESC Computes the maximum value across the elements within the sliding window over the input tensor, and optionally returns the indices of the maximum values selected. (DML_MAX_POOLING2_OPERATOR_DESC) |
DML_MAX_UNPOOLING_OPERATOR_DESC Inverts a max-pooling operation (see DML_MAX_POOLING_OPERATOR1_DESC for details) by filling the output tensor OutputTensor with the values in the input tensor InputTensor, as obtained from a max-pooling operation, according to the index values provided in the IndicesTensor. The elements in the output tensor untouched by this process are left with zero values. |
DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC Performs a mean variance normalization function on the input tensor. This operator will calculate the mean and variance of the input tensor to perform normalization. (DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC) |
DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC Performs a mean variance normalization function on the input tensor. This operator will calculate the mean and variance of the input tensor to perform normalization. (DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC) |
DML_NONZERO_COORDINATES_OPERATOR_DESC Computes the N-dimensional coordinates of all non-zero elements of the input tensor. |
DML_ONE_HOT_OPERATOR_DESC Produces a tensor filled with one-hot encoded values. This operator produces an output tensor where, for all sequences in a chosen axis, all but one element in that sequence is set to OffValue, and the remaining single element is set to OnValue. |
DML_OPERATOR_DESC A generic container for an operator description. You construct DirectML operators using the parameters specified in this struct. See IDMLDevice::CreateOperator for additional details. |
DML_OPERATOR_GRAPH_NODE_DESC Decribes a node within a graph of DirectML operators defined by DML_GRAPH_DESC and passed to IDMLDevice1::CompileGraph. |
DML_OUTPUT_GRAPH_EDGE_DESC Describes a connection within a graph of DirectML operators defined by DML_GRAPH_DESC and passed to IDMLDevice1::CompileGraph. This structure is used to define a connection from an output of an internal node to a graph output. |
DML_PADDING_OPERATOR_DESC The DML_PADDING_OPERATOR_DESC structure (directml.h) inflates the input tensor with constant or mirrored values on the edges, and writes the result to the output. |
DML_PADDING1_OPERATOR_DESC The DML_PADDING1_OPERATOR_DESC structure (directml.h) inflates the input tensor with constant or mirrored values on the edges, and writes the result to the output. |
DML_QUANTIZED_LINEAR_CONVOLUTION_OPERATOR_DESC Performs a convolution of the FilterTensor with the InputTensor. This operator performs forward convolution on quantized data. This operator is mathematically equivalent to dequantizing the inputs, convolving, and then quantizing the output. |
DML_QUANTIZED_LINEAR_MATRIX_MULTIPLY_OPERATOR_DESC Performs a matrix multiplication function on quantized data. This operator is mathematically equivalent to dequantizing the inputs, then performing matrix multiply, and then quantizing the output. |
DML_RANDOM_GENERATOR_OPERATOR_DESC Fills an output tensor with deterministically-generated, pseudo-random, uniformly-distributed bits. This operator optionally may also output an updated internal generator state, which can be used during subsequent executions of the operator. |
DML_REDUCE_OPERATOR_DESC Outputs the reduction of elements (sum, product, minimum, and so on) within one or more dimensions of the input tensor. |
DML_RESAMPLE_GRAD_OPERATOR_DESC Computes backpropagation gradients for Resample (see DML_RESAMPLE1_OPERATOR_DESC). |
DML_RESAMPLE_OPERATOR_DESC Resamples elements from the source to the destination tensor, using the scale factors to compute the destination tensor size. You can use a linear or nearest-neighbor interpolation mode. (DML_RESAMPLE_OPERATOR_DESC) |
DML_RESAMPLE1_OPERATOR_DESC Resamples elements from the source to the destination tensor, using the scale factors to compute the destination tensor size. You can use a linear or nearest-neighbor interpolation mode. (DML_RESAMPLE1_OPERATOR_DESC) |
DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC Reverses the elements of one or more subsequences of a tensor. The set of subsequences to be reversed is chosen based on the provided axis and sequence lengths. |
DML_RNN_OPERATOR_DESC Performs a one-layer simple recurrent neural network (RNN) function on the input. This function is often referred to as the Input Gate. This operator performs this function multiple times in a loop, dictated by the sequence length dimension and the SequenceLengthsTensor. |
DML_ROI_ALIGN_GRAD_OPERATOR_DESC Computes backpropagation gradients for ROI_ALIGN and ROI_ALIGN1. |
DML_ROI_ALIGN_OPERATOR_DESC Performs an ROI align operation, as described in the Mask R-CNN paper. In summary, the operation extracts crops from the input image tensor and resizes them to a common output size specified by the last 2 dimensions of OutputTensor using the specified InterpolationMode. |
DML_ROI_ALIGN1_OPERATOR_DESC Performs an ROI align operation, as described in the Mask R-CNN paper. In summary, the operation extracts cropped windows from the input image tensor, and resizes them to a common output size specified by the last 2 dimensions of OutputTensor using the specified InterpolationMode. |
DML_ROI_POOLING_OPERATOR_DESC Performs a MaxPool function across the input tensor (according to regions of interest, or ROIs). |
DML_SCALAR_UNION A union of scalar types. |
DML_SCALE_BIAS Contains the values of scale and bias terms supplied to a DirectML operator. Scale and bias have the effect of applying the function g(x) = x * Scale + Bias. |
DML_SCATTER_ND_OPERATOR_DESC Copies the whole input tensor to the output, then overwrites selected indices with corresponding values from the updates tensor. (DML_SCATTER_ND_OPERATOR_DESC) |
DML_SCATTER_OPERATOR_DESC Copies the whole input tensor to the output, then overwrites selected indices with corresponding values from the updates tensor. (DML_SCATTER_OPERATOR_DESC) |
DML_SIZE_2D Contains values that can represent the size (as supplied to a DirectML operator) of a 2-D plane of elements within a tensor, or a 2-D scale, or any 2-D width/height value. |
DML_SLICE_GRAD_OPERATOR_DESC Computes backpropagation gradients for Slice (see DML_SLICE1_OPERATOR_DESC). |
DML_SLICE_OPERATOR_DESC Extracts a single subregion (a "slice") of an input tensor. (DML_SLICE_OPERATOR_DESC) |
DML_SLICE1_OPERATOR_DESC Extracts a single subregion (a "slice") of an input tensor. (DML_SLICE1_OPERATOR_DESC) |
DML_SPACE_TO_DEPTH_OPERATOR_DESC Rearranges blocks of spatial data into depth. The operator outputs a copy of the input tensor where values from the height and width dimensions are moved to the depth dimension. (DML_SPACE_TO_DEPTH_OPERATOR_DESC) |
DML_SPACE_TO_DEPTH1_OPERATOR_DESC Rearranges blocks of spatial data into depth. The operator outputs a copy of the input tensor where values from the height and width dimensions are moved to the depth dimension. (DML_SPACE_TO_DEPTH1_OPERATOR_DESC) |
DML_SPLIT_OPERATOR_DESC Splits an input tensor along an axis into multiple output tensors. |
DML_TENSOR_DESC A generic container for a DirectML tensor description. |
DML_TILE_OPERATOR_DESC Constructs an output tensor by tiling the input tensor. The elements in each dimension of the input tensor are repeated by a multiple in the Repeats array. |
DML_TOP_K_OPERATOR_DESC Selects the largest K elements from each sequence along an axis of the InputTensor, and returns the values and indices of those elements in the OutputValueTensor and OutputIndexTensor, respectively. |
DML_TOP_K1_OPERATOR_DESC Selects the largest or smallest K elements from each sequence along an axis of the InputTensor, and returns the values and indices of those elements in the OutputValueTensor and OutputIndexTensor, respectively. |
DML_UPSAMPLE_2D_OPERATOR_DESC Upsamples the input image, writing the result into the output tensor. The order of the dimensions should be NCHW (BatchSize, ChannelCount, Height, Width) or NCDHW (BatchSize, ChannelCount, Depth, Height, Width), but strides can be used if the data is stored in a different format. |
DML_VALUE_SCALE_2D_OPERATOR_DESC Performs an element-wise scale-and-bias function, Output = Scale * Input + Bias . |