DirectML es una biblioteca DirectX 12 de alto rendimiento acelerada por hardware para aprendizaje automático. DirectML proporciona aceleración de GPU para tareas comunes de aprendizaje automático en una amplia gama de hardware y controladores compatibles, incluidas todas las GPU compatibles con DirectX 12 de proveedores como AMD, Intel, NVIDIA y Qualcomm.
Cuando se utiliza de forma independiente, la API DirectML es una biblioteca DirectX 12 de bajo nivel y es adecuada para aplicaciones de alto rendimiento y baja latencia, como marcos, juegos y otras aplicaciones en tiempo real. La perfecta interoperabilidad de DirectML con Direct3D 12, así como su baja sobrecarga y conformidad en todo el hardware, hacen que DirectML sea ideal para acelerar el aprendizaje automático cuando se desea un alto rendimiento y la confiabilidad y previsibilidad de los resultados en todo el hardware son fundamentales.
Puede encontrar más información sobre DirectML en Introducción a DirectML.
Visite la página de inicio de DirectX para obtener más recursos para desarrolladores de DirectX.
DirectML se distribuye como un componente del sistema de Windows 10 y está disponible como parte del sistema operativo (SO) Windows 10 en Windows 10, versión 1903 (10.0; compilación 18362) y posteriores.
A partir de la versión 1.4.0 de DirectML, DirectML también está disponible como un paquete redistribuible independiente (consulte Microsoft.AI.DirectML), que es útil para aplicaciones que desean utilizar una versión fija de DirectML o cuando se ejecutan en versiones anteriores de Windows 10. .
DirectML requiere un dispositivo compatible con DirectX 12. Casi todas las tarjetas gráficas disponibles comercialmente lanzadas en los últimos años son compatibles con DirectX 12. Ejemplos de hardware compatible incluyen:
DirectML expone una API nativa de C++ DirectX 12. El encabezado y la biblioteca (DirectML.h/DirectML.lib) están disponibles como parte del paquete NuGet redistribuible y también se incluyen en la versión 10.0.18362 o posterior del SDK de Windows 10.
DirectML está integrado como backend de varios marcos, como Windows ML, ONNX Runtime y TensorFlow.
Consulte las siguientes secciones para obtener más información:
El código de muestra de DirectML C++ está disponible en Ejemplos.
El código de muestra de DirectML Python está disponible en Python/samples. Los ejemplos requieren PyDirectML, una biblioteca de proyección de Python de código abierto para DirectML, que se puede compilar e instalar en un entorno de ejecución de Python desde Python/src. Consulte el archivo Python/README.md para obtener más detalles.
DxDispatch es un ejecutable de línea de comandos simple para iniciar programas informáticos DirectX 12 (incluidos los operadores de DirectML) sin escribir todo el código estándar de C++.
Windows ML (WinML) es una API confiable y de alto rendimiento para implementar inferencias de ML aceleradas por hardware en dispositivos Windows. DirectML proporciona el backend de GPU para Windows ML.
La aceleración de DirectML se puede habilitar en Windows ML utilizando LearningModelDevice con cualquiera de los DirectX DeviceKinds.
Para obtener más información, consulte Introducción a Windows ML.
ONNX Runtime es un acelerador de entrenamiento e inferencia multiplataforma compatible con muchos marcos ML/DNN populares, incluidos PyTorch, TensorFlow/Keras, scikit-learn y más.
DirectML está disponible como proveedor de ejecución opcional para ONNX Runtime que proporciona aceleración de hardware cuando se ejecuta en Windows 10.
Para obtener más información sobre cómo comenzar, consulte Uso del proveedor de ejecución DirectML.
PyTorch con DirectML permite el entrenamiento y la inferencia de modelos complejos de aprendizaje automático en una amplia gama de hardware compatible con DirectX 12. Esto se hace a través de torch-directml
, un complemento para PyTorch.
PyTorch con DirectML es compatible con las últimas versiones de Windows y el subsistema de Windows para Linux, y está disponible para descargar como un paquete PyPI. Para obtener más información sobre cómo empezar a utilizar torch-directml
, consulte nuestra guía para Windows o WSL 2 en Microsoft Learn.
TensorFlow es una popular plataforma de código abierto para aprendizaje automático y es un marco líder para el entrenamiento de modelos de aprendizaje automático.
La aceleración DirectML para TensorFlow 1.15 está actualmente disponible para versión preliminar pública. TensorFlow en DirectML permite el entrenamiento y la inferencia de modelos complejos de aprendizaje automático en una amplia gama de hardware compatible con DirectX 12.
TensorFlow en DirectML es compatible con las últimas versiones de Windows 10 y el subsistema de Windows para Linux, y está disponible para descargar como un paquete PyPI. Para obtener más información sobre cómo comenzar, consulte Entrenamiento de aprendizaje automático acelerado por GPU (docs.microsoft.com)
¡Esperamos tener noticias suyas!
Para problemas, errores y comentarios de TensorFlow con DirectML; o para problemas y comentarios generales de DirectML, presente un problema o contáctenos directamente en [email protected].
Para problemas, errores y comentarios de PyTorch con DirectML; o para problemas y comentarios generales de DirectML, presente un problema o contáctenos directamente en [email protected].
Para problemas de Windows ML, presente un problema de GitHub en microsoft/Windows-Machine-Learning o contáctenos directamente en [email protected].
Para problemas con ONNX Runtime, presente un problema en microsoft/onnxruntime.
Guía de programación DirectML
Referencia de la API de DirectML
Presentamos DirectML (Conferencia de desarrolladores de juegos '19)
Aceleración de la inferencia de GPU con DirectML y DirectX 12 (SIGGRAPH '18)
Windows AI: ML acelerado por hardware en dispositivos Windows (Microsoft Build '20)
Juegos con Windows ML (Blog para desarrolladores de DirectX)
DirectML en GDC 2019 (Blog para desarrolladores de DirectX)
DirectX ❤ Linux (Blog para desarrolladores de DirectX)
Este proyecto agradece contribuciones y sugerencias. La mayoría de las contribuciones requieren que usted acepte un Acuerdo de licencia de colaborador (CLA) que declara que tiene derecho a otorgarnos, y de hecho lo hace, los derechos para usar su contribución. Para obtener más detalles, visite https://cla.microsoft.com.
Cuando envía una solicitud de extracción, un CLA-bot determinará automáticamente si necesita proporcionar un CLA y decorar el PR de manera adecuada (por ejemplo, etiqueta, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitarás hacer esto una vez en todos los repositorios que utilicen nuestro CLA.
Este proyecto ha adoptado el Código de conducta de código abierto de Microsoft. Para obtener más información, consulte las preguntas frecuentes sobre el Código de conducta o comuníquese con [email protected] si tiene alguna pregunta o comentario adicional.