IDMLDevice1::CompileGraph 方法 (directml.h)
将 DirectML 运算符图编译为可调度到 GPU 的对象。
编译的运算符表示适合在 GPU 上执行的高效烘焙形式的运算符。 已编译的运算符保存状态 (,如着色器和执行) 所需的其他对象。 由于已编译的运算符实现 IDMLPageable 接口,因此你可以根据需要从 GPU 内存中逐出一个接口。 有关详细信息,请参阅 IDMLDevice1::Evict 和 IDMLDevice1::MakeResident 。
此方法返回后,编译的运算符不使用也不引用图形说明中提供的 IDMLOperator 对象。
语法
HRESULT CompileGraph(
const DML_GRAPH_DESC *desc,
DML_EXECUTION_FLAGS flags,
REFIID riid,
[out] void **ppv
);
参数
desc
类型: DML_GRAPH_DESC*
要编译的图形的说明。 请参阅 DML_GRAPH_DESC。
flags
用于控制此运算符执行的任何标志。
riid
类型: REFIID
对要在 ppv 中返回的接口 (GUID) 的全局唯一标识符的引用。 这应为 IDMLCompiledOperator 的 GUID。
[out] ppv
类型: void**
指向内存块的指针,该内存块接收指向已编译运算符的指针。 这是指向 IDMLCompiledOperator 的指针的地址,表示所创建的已编译运算符。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
备注
DirectML 运算符图形 API 提供了一种抽象的方式来跨各种硬件有效地使用 DirectML。 DirectML 应用张量级优化,例如根据所使用的适配器选择最有效的张量布局。 它还应用优化,例如删除 Join 或 Split 运算符。
建议在生成 DirectML 图之前应用高级优化。 例如,将卷积运算符与 BatchNorm、常量折叠和常见子表达式消除进行融合。 DirectML 的图形优化器中的优化旨在补充此类与设备无关的优化,这些优化通常由机器学习框架通用处理。
要求
最低受支持的客户端 | Windows 10内部版本 20348 |
最低受支持的服务器 | Windows 10内部版本 20348 |
目标平台 | Windows |
标头 | directml.h |
Library | DirectML.lib |
DLL | DirectML.dll |