IDMLDevice interface (directml.h)

Represents a DirectML device, which is used to create operators, binding tables, command recorders, and other objects. The IDMLDevice interface inherits from IDMLObject.

A DirectML device is always associated with exactly one underlying Direct3D 12 device. All objects created by the DirectML device maintain a strong reference to their parent device. Unlike the Direct3D 12 device, the DML device is not a singleton. Therefore, it's possible to create multiple DirectML devices over the same Direct3D 12 device. However, this isn't recommended as the DirectML device has no mutable state, so there's little advantage to creating multiple DML devices over the same Direct3D 12 device.

This object is thread-safe.

Inheritance

The IDMLDevice interface inherits from the IDMLObject interface.

Methods

The IDMLDevice interface has these methods.

 
IDMLDevice::CheckFeatureSupport

Gets information about the optional features and capabilities that are supported by the DirectML device.
IDMLDevice::CompileOperator

Compiles an operator into an object that can be dispatched to the GPU.
IDMLDevice::CreateBindingTable

Creates a binding table, which is an object that can be used to bind resources (such as tensors) to the pipeline.
IDMLDevice::CreateCommandRecorder

Creates a DirectML command recorder.
IDMLDevice::CreateOperator

Creates a DirectML operator.
IDMLDevice::CreateOperatorInitializer

Creates an object that can be used to initialize compiled operators.
IDMLDevice::Evict

Evicts one or more pageable objects from GPU memory. Also see IDMLDevice::MakeResident.
IDMLDevice::GetDeviceRemovedReason

Retrieves the reason that the DirectML device was removed.
IDMLDevice::GetParentDevice

Retrieves the Direct3D 12 device that was used to create this DirectML device.
IDMLDevice::MakeResident

Causes one or more pageable objects to become resident in GPU memory. Also see IDMLDevice::Evict.

Requirements

Requirement Value
Target Platform Windows
Header directml.h

See also

IDMLObject