IDMLDevice::CreateOperatorInitializer 方法 (directml.h)

创建可用于初始化已编译运算符的 对象。

编译后,运算符必须在 GPU 上初始化一次,然后才能执行。 运算符初始值设定项保留初始化一个或多个目标编译运算符所需的状态。

实例化后,可以通过 IDMLCommandRecorder::RecordDispatch 在命令列表中记录运算符初始值设定项的调度。 在 GPU 上完成执行后,属于初始值设定项目标的所有已编译运算符都进入初始化状态。

可以重复使用运算符初始值设定项来初始化不同的已编译运算符集。 有关详细信息 ,请参阅 IDMLOperatorInitializer::Reset

可以在没有目标运算符的情况下创建运算符初始值设定项。 执行此类初始值设定项是无操作。 如果希望预先创建初始值设定项,但还不知道将用于初始化哪些运算符,则创建没有目标运算符的运算符初始值设定项可能很有用。 IDMLOperatorInitializer::Reset 可用于重置要面向的运算符。

语法

HRESULT CreateOperatorInitializer(
                 UINT                 operatorCount,
  [in, optional] IDMLCompiledOperator * const *operators,
                 REFIID               riid,
  [out]          void                 **ppv
);

参数

operatorCount

类型: UINT

此参数确定 运算符 参数中传递的数组中的元素数。

[in, optional] operators

类型: IDMLCompiledOperator*

指向 IDMLCompiledOperator 指针的常量数组的可选指针,其中包含此初始值设定项将面向的运算符集。 执行初始值设定项后,目标运算符将初始化。 此数组可以为 null 或空,表示初始值设定项没有目标运算符。

riid

类型: REFIID

对要在 ppv 中返回的接口 (GUID) 的全局唯一标识符的引用。 这应为 IDMLOperatorInitializer 的 GUID。

[out] ppv

类型: void**

指向内存块的指针,该内存块接收指向运算符初始值设定项的指针。 这是指向 IDMLOperatorInitializer 的指针的地址,表示创建的运算符初始值设定项。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

要求

要求
目标平台 Windows
标头 directml.h
Library DirectML.lib
DLL DirectML.dll

另请参阅

IDMLDevice