DirectML

GitHub
2.6k 332 中等 1 次阅读 2天前MIT开发框架
AI 解读 由 AI 自动生成,仅供参考

DirectML 是一个专为机器学习打造的高性能、硬件加速库,基于 DirectX 12 构建。它的核心使命是让常见的机器学习任务能够在各种显卡上高效运行,无需依赖特定的厂商驱动或专用框架。无论是 AMD、Intel、NVIDIA 还是高通的显卡,只要支持 DirectX 12,DirectML 都能提供统一的 GPU 加速能力。

它主要解决了机器学习在不同硬件平台上部署难、兼容性差的问题。通过提供低开销且高度一致的接口,DirectML 确保了模型在不同设备上的运行结果可靠且可预测,特别适合对性能和延迟敏感的场景。

这款工具非常适合应用开发者、游戏工程师以及需要将 AI 功能集成到实时应用中的研究人员。对于希望在 Windows 环境下灵活调用本地算力,而不想被特定深度学习框架绑定的用户来说,DirectML 是理想选择。

其独特亮点在于与 Direct3D 12 的无缝互操作性,允许开发者在同一应用中混合使用图形渲染与机器学习推理。此外,它还支持作为独立组件分发,方便在旧版 Windows 系统上部署固定版本。需要注意的是,DirectML 目前已进入维护模式,不再增加新功能,但会继续提供安全更新,并建议新版 Windows 11 用户转向更先进的 Windows ML。

使用场景

一家位于上海的独立游戏工作室正在开发一款支持实时风格迁移的创意工具,允许玩家通过摄像头将现实画面瞬间转化为动漫或油画风格。

没有 DirectML 时

  • 硬件兼容性差:团队被迫仅针对 NVIDIA 显卡优化代码,导致使用 AMD 或 Intel 集成显卡的用户无法运行或体验极差,损失了大量潜在用户。
  • 推理延迟高:在缺乏专用 AI 加速库的情况下,模型只能依赖 CPU 运行,画面转换延迟高达数秒,完全破坏了游戏的实时互动性。
  • 开发维护成本高:为了适配不同厂商的 GPU,开发者需要编写多套后端代码(如分别对接 CUDA 和 OpenCL),极大增加了调试难度和包体体积。
  • 部署门槛高:普通用户必须手动安装庞大的深度学习框架(如完整版 PyTorch 或 TensorFlow)及特定驱动才能启动程序。

使用 DirectML 后

  • 全平台无缝覆盖:DirectML 基于 DirectX 12 构建,自动利用所有兼容显卡(包括 AMD、Intel、NVIDIA 及高通芯片),确保任何 Windows 10/11 设备均可流畅运行。
  • 实时低延迟响应:借助 GPU 硬件加速,风格迁移推理速度提升数十倍,实现了毫秒级的画面反馈,完美满足游戏对实时性的苛刻要求。
  • 统一开发接口:团队只需调用一套原生 C++ API 即可跨硬件运行,无需关心底层厂商差异,显著简化了代码架构并缩短了开发周期。
  • 零依赖轻量部署:DirectML 作为 Windows 系统组件自带,用户无需额外安装任何重型 AI 框架,双击即可启动应用,极大降低了使用门槛。

DirectML 通过统一的硬件加速层,让开发者能够以最低成本将高性能 AI 功能无缝交付给所有 Windows 用户。

运行环境要求

操作系统
  • Windows
GPU
  • 必需
  • 需要支持 DirectX 12 的 GPU
  • 兼容型号包括:AMD GCN 第一代 (Radeon HD 7000 系列) 及以上、Intel Haswell (第 4 代酷睿) 集成显卡及以上、NVIDIA Kepler (GTX 600 系列) 及以上、Qualcomm Adreno 600 及以上
  • 无需 CUDA
内存

未说明

依赖
notes1. DirectML 目前处于维护模式,不再增加新功能,但会继续提供安全修复。Windows 11 24H2 及以后版本建议使用 Windows ML。2. 该工具原生支持 Windows 10 (1903/Build 18362) 及更新版本,也可通过 WSL 2 在 Linux 子系统上运行 PyTorch 和 TensorFlow 插件。3. 不支持 macOS 或原生 Linux 环境。4. 开发者可通过 NuGet 获取 C++ API,或通过 PyPI 获取 Python 插件。
python未说明 (通过 torch-directml 或 tensorflow-directml 插件使用时,需遵循对应框架的 Python 版本要求)
DirectX 12
Windows 10 SDK (版本 10.0.18362 或更高)
Microsoft.AI.DirectML (NuGet 包,可选独立分发)
torch-directml (PyTorch 插件,可选)
tensorflow-directml (TensorFlow 插件,可选)
ONNX Runtime (可选执行提供者)
PyDirectML (Python 投影库,用于运行 Python 示例)
DirectML hero image

快速开始

DirectML


⚠️ DirectML 处于维护模式 ⚠️

  • 如果您的电脑运行的是 Windows 11 版本 24H2(内部版本 26100)或更高版本,请考虑使用 Windows ML 来加速机器学习模型的执行。
  • DirectML 将继续在之前的 Windows 版本上得到支持(参见 发行历史),并会随未来版本的 Windows 一起发布。然而,不再计划推出新的功能或特性更新。
  • DirectML 将继续接收与安全和合规相关的问题修复。有关安全问题的报告,请参阅 SECURITY.md
  • 此仓库中的问题和示例将不再更新。

DirectML 是一个高性能、硬件加速的 DirectX 12 库,专为机器学习设计。它可在广泛的受支持硬件和驱动程序上为常见的机器学习任务提供 GPU 加速,包括来自 AMD、Intel、NVIDIA 和 Qualcomm 等厂商的所有支持 DirectX 12 的 GPU。

单独使用时,DirectML API 是一个低级别的 DirectX 12 库,适用于高性能、低延迟的应用场景,例如框架、游戏以及其他实时应用。DirectML 与 Direct3D 12 的无缝互操作性,以及其低开销和跨硬件的一致性,使其成为在需要高性能的同时,又必须确保跨硬件结果可靠性和可预测性的机器学习加速的理想选择。

有关 DirectML 的更多信息,请参阅 DirectML 简介

访问 DirectX 登陆页 获取更多针对 DirectX 开发者的资源。

开始使用 DirectML

DirectML 作为 Windows 10 的系统组件分发,并自 Windows 10 版本 1903(10.0;内部版本 18362)及更高版本起,已包含在 Windows 10 操作系统中。

从 DirectML 版本 1.4.0 开始,DirectML 也以独立的可再分发包形式提供(参见 Microsoft.AI.DirectML),这对于希望使用固定版本 DirectML 的应用程序,或在较旧版本的 Windows 10 上运行的应用程序非常有用。

硬件要求

DirectML 需要一台支持 DirectX 12 的设备。过去几年内发布的几乎所有市售显卡都支持 DirectX 12。兼容硬件的例子包括:

  • AMD GCN 第一代(Radeon HD 7000 系列)及以上
  • Intel Haswell(第四代 Core)集成显卡及以上
  • NVIDIA Kepler(GTX 600 系列)及以上
  • Qualcomm Adreno 600 及以上

面向应用开发者

DirectML 提供原生 C++ DirectX 12 API。头文件和库(DirectML.h/DirectML.lib)既包含在 可再分发的 NuGet 包 中,也包含在 Windows 10 SDK 版本 10.0.18362 或更高版本中。

面向用户、数据科学家和研究人员

DirectML 内置为多个框架的后端,例如 Windows ML、ONNX Runtime 和 TensorFlow。

更多信息请参阅以下章节:

DirectML 示例

DirectML 的 C++ 示例代码可在 Samples 目录下找到。

  • HelloDirectML:一个极简的“Hello World”应用程序,仅执行一个 DirectML 算子。
  • DirectMLNpuInference:展示如何使用 NPU 硬件与 DirectML 配合的示例。
  • DirectMLSuperResolution:利用 DirectML 执行一个基础的超分辨率模型,将 540p 视频实时上采样至 1080p 的示例。
  • yolov4:YOLOv4 是一种目标检测模型,能够识别图像中的多达 80 类物体。该示例包含使用 DirectML 完整实现的端到端模型,并且能够在用户提供的视频流上实时运行。

DirectML 的 Python 示例代码可在 Python/samples 目录下找到。这些示例需要 PyDirectML,这是一个用于 DirectML 的开源 Python 投影库,可以从 Python/src 构建并安装到 Python 执行环境中。更多详细信息请参阅 Python/README.md 文件。

DxDispatch 工具

DxDispatch 是一个简单的命令行可执行文件,用于在无需编写所有 C++ 模板代码的情况下启动 DirectX 12 计算程序(包括 DirectML 算子)。

Windows ML on DirectML

Windows ML (WinML) 是一个高性能、可靠的 API,用于在 Windows 设备上部署硬件加速的机器学习推理。DirectML 为 Windows ML 提供 GPU 后端支持。

通过使用 LearningModelDevice,结合任意一种 DirectX DeviceKinds,可以在 Windows ML 中启用 DirectML 加速。

有关更多信息,请参阅 开始使用 Windows ML

ONNX Runtime on DirectML

ONNX Runtime 是一个跨平台的推理和训练加速器,兼容多种流行的机器学习/DNN 框架,包括 PyTorch、TensorFlow/Keras、scikit-learn 等。

DirectML 可作为 ONNX Runtime 的可选 执行提供者,在 Windows 10 上运行时提供硬件加速功能。

有关入门的更多信息,请参阅 使用 DirectML 执行提供者

PyTorch with DirectML

PyToch 与 DirectML 结合,可在广泛的 DirectX 12 兼容硬件上进行复杂机器学习模型的训练和推理。这是通过 torch-directml 这一 PyTorch 插件实现的。

PyTorch 与 DirectML 同时支持最新的 Windows 版本以及 Windows Subsystem for Linux,并且可以作为 PyPI 包下载。有关如何开始使用 torch-directml 的更多信息,请参阅我们在 Microsoft Learn 上提供的 WindowsWSL 2 指南。

TensorFlow with DirectML

TensorFlow 是一个广受欢迎的开源机器学习平台,也是训练机器学习模型的领先框架。

适用于 TensorFlow 1.15 的 DirectML 加速目前处于公开预览阶段。TensorFlow on DirectML 使复杂的机器学习模型能够在广泛的 DirectX 12 兼容硬件上进行训练和推理。

TensorFlow on DirectML 同时支持最新的 Windows 10 版本以及 Windows 子系统 for Linux,并且可以作为 PyPI 包下载。有关入门的更多信息,请参阅 GPU 加速的机器学习训练 (docs.microsoft.com)

反馈

我们期待您的反馈!

外部链接

文档

DirectML 编程指南
DirectML API 参考

更多信息

介绍 DirectML(2019 年游戏开发者大会)
利用 DirectML 和 DirectX 12 加速 GPU 推理(2018 年 SIGGRAPH)
Windows AI:Windows 设备上的硬件加速机器学习(2020 年 Microsoft Build)
使用 Windows ML 进行游戏开发(DirectX 开发者博客)
DirectML 在 GDC 2019 上的亮相(DirectX 开发者博客)
DirectX ❤ Linux(DirectX 开发者博客)

贡献

本项目欢迎各类贡献和建议。大多数贡献都需要您签署贡献者许可协议(CLA),以声明您有权并将您的贡献权利授予我们使用。有关详情,请访问 https://cla.microsoft.com。

当您提交拉取请求时,CLA 机器人会自动判断您是否需要提供 CLA,并相应地为 PR 添加标记或评论。请按照机器人提供的指示操作即可。对于所有使用我们 CLA 的仓库,您只需完成一次此流程。

本项目已采纳 Microsoft 开源行为准则。如需更多信息,请参阅 行为准则常见问题解答,或如有任何其他问题或意见,请联系 opencode@microsoft.com

版本历史

torch-directml-0.2.4.dev2408152024/08/19
torch-directml-0.2.3.dev2407152024/07/17
torch-directml-0.2.2.dev2406142024/06/15
tensorflow-directml-1.15.3.dev2006262020/06/30
tensorflow-directml-1.15.3.dev2006152020/06/17

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架