idMLCompiledOperator 接口 (directml.h)

表示适合在 GPU 上执行的已编译的有效运算符形式。 若要创建此对象,请调用 IDMLDevice::CompileOperatorIDMLCompiledOperator 接口继承自 IDMLDispatchable

IDMLOperator 不同,编译的运算符是“烘焙”的,可以直接由 GPU 执行。 编译运算符后,必须对其进行初始化一次,然后才能执行该运算符。 多次初始化运算符是错误的。 运算符初始值设定项用于初始化已编译的运算符。 可以使用 IDMLCommandRecorder::RecordDispatch 记录运算符初始值设定项的调度,当在 GPU 上执行时,该初始值设定项将初始化一个或多个运算符。

除了输入和输出张量外,运算符还可能需要额外的内存来执行。 此额外内存必须由应用程序以临时和永久性资源的形式提供。

临时资源是仅在运算符执行期间使用的暂存内存,在 GPU 上完成 对 IDMLCommandRecorder::RecordDispatch 的调用后不需要保留。 这意味着,在调度编译的运算符期间,应用程序可能会释放或覆盖临时性资源。 相比之下,永久性资源必须至少在 GPU 上完成运算符的最后一次执行之前生存。 此外,永久性资源的内容是不透明的,必须在执行 运算符之间保留。

临时资源和永久性资源的大小因运算符而异。 调用 IDMLDispatchable::GetBindingProperties 以查询此已编译运算符的永久性和临时资源所需的大小(以字节为单位)。 有关绑定临时和永久性资源的详细信息,请参阅 IDMLBindingTable::BindTemporaryResourceIDMLBindingTable::BindPersistentResource

此接口上的所有方法都是线程安全的。

继承

IDMLCompiledOperator 接口继承自 IDMLDispatchable 接口。

要求

要求
目标平台 Windows
标头 directml.h

另请参阅

DirectML 中的绑定

IDMLDispatchable