IDMLDevice1::CompileGraph メソッド (directml.h)
DirectML 演算子のグラフを、GPU にディスパッチできるオブジェクトにコンパイルします。
コンパイルされた演算子は、GPU での実行に適した演算子の効率的でベイクされた形式を表します。 コンパイルされた演算子は、実行に必要な状態 (シェーダーやその他のオブジェクトなど) を保持します。 コンパイル済み演算子は IDMLPageable インターフェイスを実装するため、必要に応じて GPU メモリから削除できます。 詳細については、「 IDMLDevice1::Evict 」および 「IDMLDevice1::MakeResident 」を参照してください。
コンパイルされた演算子は、このメソッドが戻った後にグラフの説明内で指定された IDMLOperator オブジェクトを使用したり参照したりしません。
構文
HRESULT CompileGraph(
const DML_GRAPH_DESC *desc,
DML_EXECUTION_FLAGS flags,
REFIID riid,
[out] void **ppv
);
パラメーター
desc
種類: DML_GRAPH_DESC*
コンパイルするグラフの説明。 「DML_GRAPH_DESC」を参照してください。
flags
この演算子の実行を制御するフラグ。
riid
型: REFIID
ppv で返されるインターフェイスのグローバル一意識別子 (GUID) への参照。 これは IDMLCompiledOperator の GUID である必要があります。
[out] ppv
型: void**
コンパイルされた演算子へのポインターを受け取るメモリ ブロックへのポインター。 これは、作成されたコンパイル済み演算子を表す IDMLCompiledOperator へのポインターのアドレスです。
戻り値
型: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
解説
DirectML オペレーター グラフ API は、多様なハードウェア間で DirectML を効率的に使用するための抽象的な方法を提供します。 DirectML では、使用するアダプターに基づいて最も効率的なテンソル レイアウトを選択するなど、テンソル レベルの最適化が適用されます。 また、結合演算子や Split 演算子の削除などの最適化も適用されます。
DirectML グラフを作成する前に、高度な最適化を適用することをお勧めします。 たとえば、畳み込み演算子を BatchNorm、定数フォールディング、および一般的な部分式の除去と融合します。 DirectML のグラフ オプティマイザー内の最適化は、このようなデバイスに依存しない最適化を補完することを目的としています。これは通常、機械学習フレームワークによって一般的に処理されます。
要件
サポートされている最小のクライアント | Windows 10 ビルド 20348 |
サポートされている最小のサーバー | Windows 10 ビルド 20348 |
対象プラットフォーム | Windows |
ヘッダー | directml.h |
Library | DirectML.lib |
[DLL] | DirectML.dll |