IDMLDevice1::CompileGraph 方法 (directml.h)

将 DirectML 运算符图编译为可调度到 GPU 的对象。

编译的运算符表示适合在 GPU 上执行的高效烘焙形式的运算符。 已编译的运算符保存状态 (,如着色器和执行) 所需的其他对象。 由于已编译的运算符实现 IDMLPageable 接口,因此你可以根据需要从 GPU 内存中逐出一个接口。 有关详细信息,请参阅 IDMLDevice1::EvictIDMLDevice1::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

类型: DML_EXECUTION_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

请参阅

IDMLDevice1