IDMLCompiledOperator インターフェイス (directml.h)

GPU での実行に適した、コンパイルされた効率的な演算子の形式を表します。 このオブジェクトを作成するには、 IDMLDevice::CompileOperator を呼び出します。 IDMLCompiledOperator インターフェイスは、IDMLDispatchable から継承します。

IDMLOperator とは異なり、コンパイルされた演算子は "ベイク" され、GPU によって直接実行できます。 演算子をコンパイルした後は、実行する前に 1 回だけ初期化する必要があります。 演算子を複数回初期化するとエラーになります。 演算子初期化子は、コンパイルされた演算子を初期化するために使用されます。 IDMLCommandRecorder::RecordDispatch を使用して、GPU で実行すると 1 つ以上の演算子を初期化する演算子初期化子のディスパッチを記録できます。

入力テンソルと出力テンソルに加えて、演算子の実行には追加のメモリが必要になる場合があります。 この追加のメモリは、アプリケーションが一時的で永続的なリソースの形式で提供する必要があります。

一時リソースは、演算子の実行中にのみ使用されるスクラッチ メモリであり、 GPU で IDMLCommandRecorder::RecordDispatch の呼び出しが完了した後に保持する必要はありません。 つまり、アプリケーションは、コンパイル済み演算子のディスパッチの間に一時的なリソースを解放または上書きしてもかまいません。 これに対し、永続的なリソースは、少なくとも、オペレーターの最後の実行が GPU で完了するまで有効である必要があります。 さらに、永続リソースの内容は不透明であり、演算子の実行間で保持する必要があります。

一時リソースと永続リソースのサイズは、オペレーターごとに異なります。 IDMLDispatchable::GetBindingProperties を呼び出して、このコンパイル済み演算子の永続リソースと一時リソースの必要なサイズ (バイト単位) を照会します。 一時リソースと永続リソースのバインドの詳細については、「 IDMLBindingTable::BindTemporaryResource 」および 「IDMLBindingTable::BindPersistentResource 」を参照してください。

このインターフェイスのすべてのメソッドはスレッド セーフです。

継承

IDMLCompiledOperator インターフェイスは、IDMLDispatchable インターフェイスから継承されます。

要件

要件
対象プラットフォーム Windows
ヘッダー directml.h

こちらもご覧ください

DirectML でのバインド

IDMLDispatchable