IDMLBindingTable::BindTemporaryResource 方法 (directml.h)

绑定缓冲区以用作临时暂存内存。 可以通过调用 IDMLDispatchable::GetBindingProperties 来确定此缓冲区范围的所需大小。

如果 IDMLDispatchable 的绑定属性将临时资源的大小指定为零,则可以向此方法提供 nullptr (这表示没有要绑定) 的资源。 否则,必须提供 DML_BINDING_TYPE_BUFFER 类型的绑定,其大小至少与 IDMLDispatchable::GetBindingProperties 返回的所需 TemporaryResourceSize 一样大。

在执行运算符期间,临时资源通常用作暂存内存。 在执行之前,无需定义临时资源的内容。 例如,DirectML 不要求在绑定或执行运算符之前将临时资源的内容归零。

无需保留临时缓冲区的内容,在 GPU 上完成运算符或初始值设定项的执行后,应用程序可以随意覆盖或重复使用其内容。 这与永久性资源形成鲜明对比,永久性资源的内容必须保留,并在运算符的生存期内延长其生存期。

要作为临时缓冲区绑定的提供的缓冲区范围必须使其起始偏移量与 DML_TEMPORARY_BUFFER_ALIGNMENT对齐。 缓冲区底层的堆的类型必须是 D3D12_HEAP_TYPE_DEFAULT

语法

void BindTemporaryResource(
  [in, optional] const DML_BINDING_DESC *binding
);

参数

[in, optional] binding

类型: const DML_BINDING_DESC*

指向 DML_BINDING_DESC 的可选指针,其中包含要绑定的张量资源的说明。

返回值

要求

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

另请参阅

DirectML 中的绑定

IDMLBindingTable