共用方式為


IDMLDevice1::CompileGraph 方法 (directml.h)

將 DirectML 運算子的圖表編譯成可分派至 GPU 的物件。

已編譯的運算子代表適合在 GPU 上執行的有效率、已製作運算子形式。 編譯的運算子會保留狀態 (,例如著色器和其他執行所需的物件) 。 由於編譯的運算子會實作 IDMLPageable 介面,因此您可以視需要從 GPU 記憶體收回一個介面。 如需詳細資訊,請參閱 IDMLDevice1::EvictIDMLDevice1::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

類型: DML_EXECUTION_FLAGS

控制這個運算子執行的任何旗標。

riid

類型: REFIID

您想要在 ppv中傳回之介面的全域唯一識別碼 (GUID) 參考。 這必須是 IDMLCompiledOperator的 GUID。

[out] ppv

類型: void**

記憶體區塊的指標,可接收已編譯運算子的指標。 這是 IDMLCompiledOperator指標的位址,代表已建立的編譯運算子。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

DirectML 運算子圖形 API 提供一種抽象的方式,可在各種硬體上有效率地使用 DirectML。 DirectML 會套用張量層級優化,例如根據所使用的配接器選擇最有效率的張量配置。 它也會套用優化,例如移除 Join 或 Split 運算子。

建議您先套用高階優化,再建置 DirectML 圖形。 例如,使用 BatchNorm、常數折迭和一般子運算式消除來模糊卷積運算子。 DirectML 圖形優化器內的優化旨在補充這類與裝置無關的優化,通常由機器學習架構以一般方式處理。

需求

   
最低支援的用戶端 Windows 10組建 20348
最低支援的伺服器 Windows 10組建 20348
目標平台 Windows
標頭 directml.h
程式庫 DirectML.lib
Dll DirectML.dll

另請參閱

IDMLDevice1