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 |