次の方法で共有


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

こちらもご覧ください

DirectML でのバインド

IDMLBindingTable