IDMLBindingTable::BindPersistentResource メソッド (directml.h)
バッファーを永続的なリソースとしてバインドします。 IDMLDispatchable::GetBindingProperties を呼び出すことで、このバッファー範囲の必要なサイズを確認できます。
演算子のバインド プロパティで永続リソースのサイズを 0 に指定した場合は、このメソッドに nullptr を指定できます (バインドするリソースがないことを示します)。 それ以外の場合は、IDMLDispatchable::GetBindingProperties によって返される必要な PersistentResourceSize と同じ大きさのDML_BINDING_TYPE_BUFFER型のバインドを指定する必要があります。
一時的なリソースとは異なり、永続リソースの内容と有効期間は、コンパイルされた演算子が保持する限り保持する必要があります。 つまり、演算子が永続的なリソースを必要とする場合、アプリケーションは初期化中に永続的なリソースを指定するほか、その後も、その内容を変更することなく、すべての演算子の実行に対してもこれを指定する必要があります。
永続的なリソースは、通常、演算子の初期化中に計算され、その後その演算子の実行で再利用されるルックアップ テーブルまたはその他の有効期間が長いデータを格納するために 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 |
Library | DirectML.lib |
[DLL] | DirectML.dll |