DirectML est une bibliothèque DirectX 12 hautes performances et accélérée par le matériel pour l'apprentissage automatique. DirectML fournit une accélération GPU pour les tâches courantes d'apprentissage automatique sur une large gamme de matériels et de pilotes pris en charge, y compris tous les GPU compatibles DirectX 12 de fournisseurs tels qu'AMD, Intel, NVIDIA et Qualcomm.
Lorsqu'elle est utilisée de manière autonome, l'API DirectML est une bibliothèque DirectX 12 de bas niveau et convient aux applications hautes performances et à faible latence telles que les frameworks, les jeux et autres applications en temps réel. L'interopérabilité transparente de DirectML avec Direct3D 12 ainsi que sa faible surcharge et sa conformité sur l'ensemble du matériel rendent DirectML idéal pour accélérer l'apprentissage automatique lorsque des performances élevées sont souhaitées et que la fiabilité et la prévisibilité des résultats sur l'ensemble du matériel sont essentielles.
Plus d’informations sur DirectML peuvent être trouvées dans Introduction à DirectML.
Visitez la page de destination DirectX pour plus de ressources pour les développeurs DirectX.
DirectML est distribué en tant que composant système de Windows 10 et est disponible dans le cadre du système d'exploitation Windows 10 dans Windows 10, version 1903 (10.0 ; Build 18362) et versions ultérieures.
À partir de DirectML version 1.4.0, DirectML est également disponible sous forme de package redistribuable autonome (voir Microsoft.AI.DirectML), ce qui est utile pour les applications qui souhaitent utiliser une version fixe de DirectML ou lorsqu'elles sont exécutées sur des versions plus anciennes de Windows 10. .
DirectML nécessite un appareil compatible DirectX 12. Presque toutes les cartes graphiques disponibles dans le commerce lancées au cours des dernières années prennent en charge DirectX 12. Exemples de matériel compatible :
DirectML expose une API C++ DirectX 12 native. L'en-tête et la bibliothèque (DirectML.h/DirectML.lib) sont disponibles dans le cadre du package NuGet redistribuable et sont également inclus dans le SDK Windows 10 version 10.0.18362 ou ultérieure.
DirectML est intégré en tant que backend à plusieurs frameworks tels que Windows ML, ONNX Runtime et TensorFlow.
Consultez les sections suivantes pour plus d’informations :
Un exemple de code DirectML C++ est disponible sous Exemples.
Un exemple de code DirectML Python est disponible sous Python/samples. Les exemples nécessitent PyDirectML, une bibliothèque de projection Python open source pour DirectML, qui peut être créée et installée dans un environnement d'exécution Python à partir de Python/src. Reportez-vous au fichier Python/README.md pour plus de détails.
DxDispatch est un simple exécutable de ligne de commande permettant de lancer des programmes de calcul DirectX 12 (y compris les opérateurs DirectML) sans écrire tout le passe-partout C++.
Windows ML (WinML) est une API fiable et hautes performances permettant de déployer des inférences ML accélérées par le matériel sur les appareils Windows. DirectML fournit le backend GPU pour Windows ML.
L’accélération DirectML peut être activée dans Windows ML à l’aide du LearningModelDevice avec l’un des DirectX DeviceKinds.
Pour plus d’informations, consultez Démarrez avec Windows ML.
ONNX Runtime est un accélérateur d'inférence et de formation multiplateforme compatible avec de nombreux frameworks ML/DNN populaires, notamment PyTorch, TensorFlow/Keras, scikit-learn, etc.
DirectML est disponible en tant que fournisseur d'exécution facultatif pour ONNX Runtime qui fournit une accélération matérielle lors de l'exécution sous Windows 10.
Pour plus d’informations sur la mise en route, consultez Utilisation du fournisseur d’exécution DirectML.
PyTorch avec DirectML permet la formation et l'inférence de modèles d'apprentissage automatique complexes sur une large gamme de matériel compatible DirectX 12. Cela se fait via torch-directml
, un plugin pour PyTorch.
PyTorch avec DirectML est pris en charge à la fois sur les dernières versions de Windows et sur le sous-système Windows pour Linux, et est disponible en téléchargement sous forme de package PyPI. Pour plus d’informations sur la prise en main de torch-directml
, consultez nos conseils Windows ou WSL 2 sur Microsoft Learn.
TensorFlow est une plate-forme open source populaire pour l'apprentissage automatique et constitue un cadre de premier plan pour la formation de modèles d'apprentissage automatique.
L'accélération DirectML pour TensorFlow 1.15 est actuellement disponible en version préliminaire publique. TensorFlow sur DirectML permet la formation et l'inférence de modèles d'apprentissage automatique complexes sur une large gamme de matériels compatibles DirectX 12.
TensorFlow sur DirectML est pris en charge à la fois sur les dernières versions de Windows 10 et sur le sous-système Windows pour Linux, et est disponible en téléchargement sous forme de package PyPI. Pour plus d’informations sur la mise en route, consultez Formation ML accélérée par GPU (docs.microsoft.com)
Nous sommes impatients de vous entendre !
Pour TensorFlow avec les problèmes, bugs et commentaires DirectML ; ou pour des problèmes généraux avec DirectML et des commentaires, veuillez signaler un problème ou nous contacter directement à l'adresse [email protected].
Pour PyTorch avec problèmes, bugs et commentaires DirectML ; ou pour des problèmes généraux avec DirectML et des commentaires, veuillez signaler un problème ou nous contacter directement à l'adresse [email protected].
Pour les problèmes Windows ML, veuillez signaler un problème GitHub à l'adresse Microsoft/Windows-Machine-Learning ou contactez-nous directement à l'adresse [email protected].
Pour les problèmes d’ONNX Runtime, veuillez signaler un problème sur Microsoft/onnxruntime.
Guide de programmation DirectML
Référence de l'API DirectML
Présentation de DirectML (Game Developers Conference '19)
Accélération de l'inférence GPU avec DirectML et DirectX 12 (SIGGRAPH '18)
Windows AI : ML accéléré par le matériel sur les appareils Windows (Microsoft Build '20)
Jouer avec Windows ML (Blog des développeurs DirectX)
DirectML à la GDC 2019 (Blog des développeurs DirectX)
DirectX ❤ Linux (Blog des développeurs DirectX)
Ce projet accueille les contributions et suggestions. La plupart des contributions nécessitent que vous acceptiez un contrat de licence de contributeur (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez effectivement, le droit d'utiliser votre contribution. Pour plus de détails, visitez https://cla.microsoft.com.
Lorsque vous soumettez une pull request, un robot CLA déterminera automatiquement si vous devez fournir un CLA et décorera le PR de manière appropriée (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois pour tous les dépôts utilisant notre CLA.
Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez la FAQ sur le code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.