DirectML — это высокопроизводительная библиотека DirectX 12 с аппаратным ускорением для машинного обучения. DirectML обеспечивает ускорение графического процессора для распространенных задач машинного обучения на широком спектре поддерживаемого оборудования и драйверов, включая все графические процессоры с поддержкой DirectX 12 от таких поставщиков, как AMD, Intel, NVIDIA и Qualcomm.
При автономном использовании DirectML API представляет собой низкоуровневую библиотеку DirectX 12 и подходит для высокопроизводительных приложений с малой задержкой, таких как платформы, игры и другие приложения реального времени. Полная совместимость DirectML с Direct3D 12, а также низкие накладные расходы и совместимость оборудования делают DirectML идеальным для ускорения машинного обучения, когда желательна как высокая производительность, так и надежность и предсказуемость результатов на разных аппаратных средствах.
Дополнительную информацию о DirectML можно найти в разделе «Введение в DirectML».
Посетите целевую страницу DirectX, чтобы получить дополнительные ресурсы для разработчиков DirectX.
DirectML распространяется как системный компонент Windows 10 и доступен как часть операционной системы (ОС) Windows 10 в Windows 10 версии 1903 (10.0; сборка 18362) и более поздних версиях.
Начиная с версии DirectML 1.4.0, DirectML также доступен в виде отдельного распространяемого пакета (см. Microsoft.AI.DirectML), который полезен для приложений, использующих фиксированную версию DirectML, или при работе в более старых версиях Windows 10. .
Для DirectML требуется устройство с поддержкой DirectX 12. Почти все коммерчески доступные видеокарты, выпущенные за последние несколько лет, поддерживают DirectX 12. Примеры совместимого оборудования:
DirectML предоставляет собственный C++ API DirectX 12. Заголовок и библиотека (DirectML.h/DirectML.lib) доступны как часть распространяемого пакета NuGet, а также включены в пакет SDK для Windows 10 версии 10.0.18362 или новее.
DirectML встроен в качестве серверной части в несколько платформ, таких как Windows ML, ONNX Runtime и TensorFlow.
Дополнительные сведения см. в следующих разделах:
Пример кода DirectML C++ доступен в разделе «Образцы».
Пример кода DirectML Python доступен в разделе Python/samples. Для примеров требуется PyDirectML, библиотека проекций Python с открытым исходным кодом для DirectML, которую можно собрать и установить в среду выполнения Python из Python/src. Дополнительные сведения см. в файле Python/README.md.
DxDispatch — это простой исполняемый файл командной строки для запуска вычислительных программ DirectX 12 (включая операторы DirectML) без написания всего шаблонного кода C++.
Windows ML (WinML) — это высокопроизводительный и надежный API для развертывания логических выводов машинного обучения с аппаратным ускорением на устройствах Windows. DirectML предоставляет серверную часть графического процессора для Windows ML.
Ускорение DirectML можно включить в Windows ML с помощью LearningModelDevice с любым из DirectX DeviceKinds.
Дополнительные сведения см. в разделе Начало работы с Windows ML.
ONNX Runtime — это кроссплатформенный ускоритель вывода и обучения, совместимый со многими популярными платформами ML/DNN, включая PyTorch, TensorFlow/Keras, scikit-learn и другими.
DirectML доступен в качестве дополнительного поставщика выполнения для среды выполнения ONNX, который обеспечивает аппаратное ускорение при работе в Windows 10.
Дополнительные сведения о начале работы см. в разделе Использование поставщика выполнения DirectML.
PyTorch с DirectML обеспечивает обучение и вывод сложных моделей машинного обучения на широком спектре оборудования, совместимого с DirectX 12. Это делается с помощью torch-directml
, плагина для PyTorch.
PyTorch с DirectML поддерживается как в последних версиях Windows, так и в подсистеме Windows для Linux и доступен для загрузки в виде пакета PyPI. Дополнительные сведения о начале работы с torch-directml
см. в нашем руководстве по Windows или WSL 2 на сайте Microsoft Learn.
TensorFlow — популярная платформа с открытым исходным кодом для машинного обучения и ведущая среда для обучения моделей машинного обучения.
Ускорение DirectML для TensorFlow 1.15 в настоящее время доступно для общедоступной предварительной версии. TensorFlow на DirectML обеспечивает обучение и вывод сложных моделей машинного обучения на широком спектре оборудования, совместимого с DirectX 12.
TensorFlow в DirectML поддерживается как в последних версиях Windows 10, так и в подсистеме Windows для Linux, и доступен для загрузки в виде пакета PyPI. Дополнительные сведения о начале работы см. в разделе Обучение машинному обучению с ускорением на графическом процессоре (docs.microsoft.com).
Мы с нетерпением ждем вашего ответа!
Для TensorFlow с проблемами, ошибками и отзывами DirectML; или по общим вопросам DirectML и обратной связи, пожалуйста, сообщите о проблеме или свяжитесь с нами напрямую по адресу [email protected].
Для PyTorch с проблемами, ошибками и отзывами DirectML; или по общим вопросам DirectML и обратной связи, пожалуйста, сообщите о проблеме или свяжитесь с нами напрямую по адресу [email protected].
При возникновении проблем с Windows ML сообщите о проблеме на GitHub по адресу microsoft/Windows-Machine-Learning или свяжитесь с нами напрямую по адресу [email protected].
При возникновении проблем со средой выполнения ONNX сообщите о проблеме по адресу microsoft/onnxruntime.
Руководство по программированию DirectML
Справочник по API DirectML
Представляем DirectML (Конференция разработчиков игр '19)
Ускорение вывода графического процессора с помощью DirectML и DirectX 12 (SIGGRAPH '18)
Windows AI: аппаратное ускорение машинного обучения на устройствах Windows (Microsoft Build '20)
Игры с Windows ML (блог разработчиков DirectX)
DirectML на GDC 2019 (блог разработчиков DirectX)
DirectX ❤ Linux (блог разработчиков DirectX)
Этот проект приветствует вклад и предложения. Большинство вкладов требует от вас согласия с Лицензионным соглашением для авторов (CLA), в котором говорится, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробную информацию можно найти на сайте https://cla.microsoft.com.
Когда вы отправляете запрос на включение, CLA-бот автоматически определяет, нужно ли вам предоставить CLA, и соответствующим образом оформляет PR (например, метку, комментарий). Просто следуйте инструкциям бота. Вам нужно будет сделать это только один раз во всех репозиториях, используя наш CLA.
В этом проекте принят Кодекс поведения Microsoft с открытым исходным кодом. Для получения дополнительной информации см. часто задаваемые вопросы о Кодексе поведения или свяжитесь с нами по адресу [email protected], если у вас возникнут дополнительные вопросы или комментарии.