微软开源 TensorFlow-DirectML,为 WSL2 提供 GPU 支持

微软近日开源了 TensorFlow-DirectML 项目,它是 Tensorflow 的一个分支,利用 DirectML 在 Windows 10 和 WSL 上提供硬件加速。

DirectML 是微软计划为 WSL2 提供的两种 GPU 计算功能之一。它本身能够通过广泛支持的硬件和驱动程序为常见的机器学习任务提供 GPU 加速,包括来自 AMD、Intel、NVIDIA 和 Qualcomm 等供应商的所有支持 DirectX 12 的 GPU。

今年六月份,WSL2 已达到了对 GPU 的初始支持,其中就包括对 DirectML 的支持。当时,微软发布了带有 DirectML 后端的 TensorFlow 预览包,而这次开源的 TensorFlow-DirectML 是一个完整的 Tensorflow 分支。

微软高级程序经理 Clarke Rahrig 等人表示,TensorFlow-DirectML 扩展了 TensorFlow 的范围,DirectML 的加入使其超越了原有的 GPU 支持。

“机器学习工作负载通常涉及大量计算,尤其是在训练模型时。诸如 GPU 之类的专用硬件通常用于加速这些工作负载。TensorFlow 可以同时利用 CPU 和 GPU,但其 GPU 加速仅限于特定于供应商的平台,这些平台对 Windows 的支持及其用户的各种硬件范围都各不相同……而 DirectML 能够通过提供数学运算的高性能实现来扩展平台……这不仅扩展了 TensorFlow 在 Windows 上的 GPU 覆盖范围,而且还适用于 WSL,用户可以使用任何 DirectX 12 GPU 在 Windows 或 WSL 环境中运行或训练其 TensorFlow 模型。”

根据微软的介绍,DirectML 后端与 TensorFlow 集成,其新的内核集建立在 DirectML API 之上,而不是像现有的 CPU 和 GPU 内核一样基于 Eigen 源代码构建。二者的集成涉及到设备运行时(device runtime)的概念,设备运行时负责管理设备内存、在主机之间复制 tensors,记录 GPU 命令以及安排和同步在主机/CPU 和设备时间轴上发生的工作。下图显示了该设备运行时的一些关键组件,以及它与 DirectX 平台的接口方式:

  • DmlDevice:实现 TensorFlow 的“设备”类,并最终管理所有与设备相关的功能
  • DmlKernelWrapper:实现 TensorFlow 的“OpKernel”接口,该接口允许特定于设备的操作员实现
  • DmlKernel:通过调用 DirectML 提供 TF 运算符的具体实现
  • DmlKernelManager:缓存 DmlKernel 实例以避免在可能的情况下重新编译 DirectML 运算符
  • DmlAllocator:管理支持 TensorFlow tensors 的 GPU 缓冲区
  • DmlExecutionContext:调度在 GPU 上的工作,例如执行运算符或复制内存

TensorFlow-DirectML 在本机 Win32 和 WSL 上均可使用。更多详情可查阅微软的介绍文章

 
优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/118548/microsoft-open-sources-tensorflow-directml

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。