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 會套用張量層級優化,例如根據所使用的配接器選擇最有效率的張量配置。 它也會套用優化,例如移除 Join 或 Split 運算子。
建議您先套用高階優化,再建置 DirectML 圖形。 例如,使用 BatchNorm、常數折迭和一般子運算式消除來模糊卷積運算子。 DirectML 圖形優化器內的優化旨在補充這類與裝置無關的優化,通常由機器學習架構以一般方式處理。
需求
最低支援的用戶端 | Windows 10組建 20348 |
最低支援的伺服器 | Windows 10組建 20348 |
目標平台 | Windows |
標頭 | directml.h |
程式庫 | DirectML.lib |
Dll | DirectML.dll |