Метод IDMLBindingTable::BindPersistentResource (directml.h)
Привязывает буфер как постоянный ресурс. Вы можете определить требуемый размер этого диапазона буфера, вызвав IDMLDispatchable::GetBindingProperties.
Если свойства привязки для оператора указывают нулевой размер для постоянного ресурса, можно указать nullptr этому методу (что указывает на отсутствие ресурса для привязки). В противном случае должна быть предоставлена привязка типа DML_BINDING_TYPE_BUFFER , размер по крайней мере не ниже требуемого значения PersistentResourceSize , возвращаемого IDMLDispatchable::GetBindingProperties.
В отличие от временного ресурса, содержимое и время существования постоянного ресурса должны сохраняться до тех пор, пока это делает скомпилированный оператор. То есть, если оператору требуется постоянный ресурс, приложение должно предоставить его во время инициализации, а затем и во все последующие выполнения оператора без изменения его содержимого.
Постоянный ресурс обычно используется DirectML для хранения таблиц подстановки или других долговременных данных, которые вычисляются во время инициализации оператора и повторно используются в будущих выполнениях этого оператора.
Так как данные постоянного ресурса непрозрачны, после инициализации их нельзя скопировать или переместить в другой буфер.
Постоянный ресурс записывается только во время инициализации оператора и после этого становится неизменяемым; все последующие выполнения гарантированно не будут записываться в постоянный ресурс.
Указанный диапазон буфера, который должен быть привязан в качестве постоянного буфера, должен иметь начальное смещение, выровненное по DML_PERSISTENT_BUFFER_ALIGNMENT. Тип кучи, лежащей в основе буфера, должен быть D3D12_HEAP_TYPE_DEFAULT.
Синтаксис
void BindPersistentResource(
[in, optional] const DML_BINDING_DESC *binding
);
Параметры
[in, optional] binding
Тип: const DML_BINDING_DESC*
Необязательный указатель на DML_BINDING_DESC , содержащий описание ресурса тензора для привязки.
Возвращаемое значение
None
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | directml.h |
Библиотека | DirectML.lib |
DLL | DirectML.dll |