专栏名称: 云头条
云计算领域科技媒体:传播观点,传播价值,连接商业与技术;Web:www.yuntoutiao.com ,欢迎互动~~~
目录
51好读  ›  专栏  ›  云头条

Linux内核添加异构内存管理(HMM)将带来加速GPU的新方式,还有可能带来其他类型的机器学习硬件。

云头条  · 公众号  · 科技媒体  · 2017-05-19 23:24

正文

一项旨在让机器学习或其他基于GPU的应用得以大幅提升性能的内存管理功能已开发了很长一段时间,不过现在它即将进入到Linux内核的某下一个版本中。


异构内存管理(HMM)让设备的驱动程序可以为受制于自身内存管理的进程来镜像地址空间。正如Red Hat的开发人员杰尔姆·格利瑟(Jérôme Glisse)解释(https://lkml.org/lkml/2017/4/21/872),这项功能让GPU之类的硬件设备更容易直接访问进程的内存,没有复制任何内容所带来的额外开销。它也并不侵犯现代操作系统所提供的内存保护功能。


势必会从HMM获得最大好处的一类应用就是基于GPU的机器学习。诸如OpenCL和CUDA之类的机器学习库的速度到时有望得到HMM的提升。HMM做到这点的方式与针对基于GPU的机器学习进行的提速几乎一模一样,也就是说让数据留在原地、靠近GPU,在那里直接处理数据,然后传输尽可能少的数据。


对于CUDA这种英伟达面向基于GPU的处理的库而言,这种类型的提速不仅会惠及英伟达GPU上面的操作,那些GPU目前还是加速数据处理的硬件的绝对主力。然而,设计OpenCL这种框架是为了编写适用于多种类型硬件(CPU、GPU和FPGA等)的代码,那样随着这些硬件不断成熟起来,HMM有望提供广泛得多的好处。


让HMM适用于Linux中面临几个障碍。首先是内核支持,而在相当长的时间里,内核对HMM的支持一直情况不明朗。早在2014年,HMM最初是作为Linux内核补丁集(patchset)提出来的,Red Hat和英伟达都是关键开发商。涉及的工作量并不小,但是开发人员认为,可以提交代码,说不定可以加入到未来发布的几个内核版本。


第二个障碍是视频驱动程序支持,英伟达一致在单独搞这项工作。据格利瑟声称,AMD GPU可能也会支持HMM,所以这种特别的优化不会仅限于英伟达GPU。AMD一直在提升其在GPU市场的实力,因此可能会在同一块晶片上整合GPU处理和CPU处理(http://www.infoworld.com/article/3099204/hardware/amd-mulls-a-cpugpu-super-chip-in-a-server-reboot.html)。然而,软件生态系统仍然明显青睐英伟达;将来需要另外几个像HMM这样与厂商中立的项目,以及与CUDA所提供的性能不相上下的OpenCL性能,才可能获得切实的选择。


第三个障碍是硬件支持,因为HMM需要有一种可再现的页面故障(replayable page faults)硬件功能才能发挥作用。目前只有英伟达的Pascal高端GPU系列支持这项功能。从某种意义上来说,这是好消息,因为它意味着英伟达只需要为某一个硬件提供驱动程序支持――它需要完成的工作量较小,就可以让HMM正常使用起来。


一旦HMM实施到位,使用GPU实例的公共云提供商将面临压力:需要支持最新最好一代的GPU。不是仅仅把老式的英伟达Kepler显卡换成最先进的Pascal GPU就完事。由于后续的每一代GPU会显得更脱颖而出,像HMM这样的支持优化将带来战略优势。


相关阅读:

中高端IT圈人群,欢迎加入!

赏金制:欢迎来爆料!长期有效!

MapD开源GPU驱动的数据库:能够在一台多GPU服务器上针对数十亿个记录执行亚秒级查询

Elasticsearch引擎新增机器学习功能:可自动识别异常,自动执行根源分析,并且自动降低实时应用的误报率