IDMLBindingTable ::BindPersistentResource, méthode (directml.h)
Lie une mémoire tampon en tant que ressource persistante. Vous pouvez déterminer la taille requise de cette plage de mémoires tampons en appelant IDMLDispatchable ::GetBindingProperties.
Si les propriétés de liaison de l’opérateur spécifient une taille de zéro pour la ressource persistante, vous pouvez fournir nullptr à cette méthode (ce qui indique qu’aucune ressource à lier). Sinon, une liaison de type DML_BINDING_TYPE_BUFFER doit être fournie qui est au moins aussi grande que la taille requise de PersistentResourceSize retournée par IDMLDispatchable ::GetBindingProperties.
Contrairement à la ressource temporaire, le contenu et la durée de vie de la ressource persistante doivent persister tant que l’opérateur compilé le fait. Autrement dit, si un opérateur a besoin d’une ressource persistante, votre application doit la fournir lors de l’initialisation et la fournir ensuite à toutes les exécutions futures de l’opérateur sans modifier son contenu.
La ressource persistante est généralement utilisée par DirectML pour stocker des tables de recherche ou d’autres données de longue durée qui sont calculées lors de l’initialisation d’un opérateur et réutilisées lors des exécutions futures de cet opérateur.
Comme les données de la ressource persistante sont opaques, une fois initialisées, elles ne peuvent pas être copiées ou déplacées vers une autre mémoire tampon.
La ressource persistante est écrite uniquement dans lors de l’initialisation d’un opérateur et est ensuite immuable ; toutes les exécutions suivantes sont garanties de ne pas écrire dans la ressource persistante.
La plage de mémoires tampons fournie à lier en tant que mémoire tampon persistante doit avoir son décalage de début aligné sur DML_PERSISTENT_BUFFER_ALIGNMENT. Le type du tas sous-jacent à la mémoire tampon doit être D3D12_HEAP_TYPE_DEFAULT.
Syntaxe
void BindPersistentResource(
[in, optional] const DML_BINDING_DESC *binding
);
Paramètres
[in, optional] binding
Type : const DML_BINDING_DESC*
Pointeur facultatif vers un DML_BINDING_DESC contenant la description d’une ressource de tenseur à lier.
Valeur de retour
None
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | directml.h |
Bibliothèque | DirectML.lib |
DLL | DirectML.dll |