IDMLBindingTable::BindPersistentResource 方法 (directml.h)
將緩衝區系結為持續性資源。 您可以呼叫 IDMLDispatchable::GetBindingProperties 來判斷此緩衝區範圍的必要大小。
如果運算符的系結屬性指定永續性資源的大小為零,則您可以將 nullptr 提供給這個方法 (,這表示沒有資源要系結) 。 否則,必須提供類型為 DML_BINDING_TYPE_BUFFER 的系結,其大小至少與IDMLDispatchable::GetBindingProperties 傳回的必要PersistentResourceSize相同。
不同於暫存資源,持續性資源的內容和存留期必須保存,只要編譯的運算符。 也就是說,如果操作員需要永續性資源,則您的應用程式必須在初始化期間提供它,並後續將它提供給運算符的所有未來執行,而不需修改其內容。
持續性資源通常是由 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 的選擇性指標。
傳回值
無
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | directml.h |
程式庫 | DirectML.lib |
Dll | DirectML.dll |