MÉTHODE IDMLDevice1::CompileGraph (directml.h)
Compile un graphique d’opérateurs DirectML dans un objet qui peut être distribué au GPU.
Un opérateur compilé représente la forme efficace et baked d’un opérateur adapté à l’exécution sur le GPU. Un opérateur compilé contient l’état (par exemple, les nuanceurs et d’autres objets) requis pour l’exécution. Étant donné qu’un opérateur compilé implémente l’interface IDMLPageable , vous pouvez en supprimer une de la mémoire GPU si vous le souhaitez. Pour plus d’informations, consultez IDMLDevice1::Evict et IDMLDevice1::MakeResident .
L’opérateur compilé n’utilise pas et ne référence pas les objets IDMLOperator fournis dans la description du graphique après le retour de cette méthode.
Syntaxe
HRESULT CompileGraph(
const DML_GRAPH_DESC *desc,
DML_EXECUTION_FLAGS flags,
REFIID riid,
[out] void **ppv
);
Paramètres
desc
Type : DML_GRAPH_DESC*
Description du graphique à compiler. Voir DML_GRAPH_DESC.
flags
Type : DML_EXECUTION_FLAGS
Tous les indicateurs permettant de contrôler l’exécution de cet opérateur.
riid
Type : REFIID
Référence à l’identificateur global unique (GUID) de l’interface que vous souhaitez retourner dans ppv. Il s’agit normalement du GUID d’IDMLCompiledOperator.
[out] ppv
Type : void**
Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l’opérateur compilé. Il s’agit de l’adresse d’un pointeur vers un IDMLCompiledOperator, représentant l’opérateur compilé créé.
Valeur retournée
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Notes
L’API de graphe d’opérateur DirectML fournit un moyen abstrait d’utiliser DirectML efficacement sur divers matériels. DirectML applique des optimisations au niveau des tenseurs, telles que le choix de la disposition de tenseur la plus efficace en fonction de l’adaptateur utilisé. Il applique également des optimisations telles que la suppression des opérateurs Join ou Split.
Nous vous recommandons d’appliquer des optimisations générales avant de créer un graphique DirectML. Par exemple, la fusion d’opérateurs Convolution avec BatchNorm, le pliage constant et l’élimination des sous-expressions courantes. Les optimisations dans l’optimiseur de graphe de DirectML sont destinées à compléter ces optimisations indépendantes de l’appareil, qui sont généralement gérées de manière générique par les infrastructures de Machine Learning.
Spécifications
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
Plateforme cible | Windows |
En-tête | directml.h |
Bibliothèque | DirectML.lib |
DLL | DirectML.dll |