全国服务热线:400-035-8011

位置:武汉达内IT教育培训机构 > 学校动态 > 为什么去虚拟化对深度学习系统很有必要

为什么去虚拟化对深度学习系统很有必要

来源:武汉达内IT教育培训机构时间:2021/9/28 14:24:48

  为什么去虚拟化对深度学习系统很有必要
  虚拟化的基本思路是通过隐藏细节为上层应用提供假象,降低上层应用使用底层资源的复杂性。然而,有时隐藏的信息会阻碍上层应用程序挖掘的性能。两全其美有什么办法吗?
  在《计算机系统结构的黄金时代》一文中,DavidPatterson开出的药方是从算法到硬件直接打通,结合算法和硬件的特点进行定制。DSL和DSA的定制表现,一方面是设计领域的特定语言,方便编程,另一方面是面向领域应用设计领域的特定架构,挖掘效率。

  DavidPatterson的处方既不是在现有方案中插入新的抽象层次,也不是完全不需要中间抽象,而是将原有的抽象层次全部打碎重建,这是基于对算法和硬件特性的充分挖掘。这里解这里有两个关键点:软硬件协同设计(分工)和编译技术。

为什么去虚拟化对深度学习系统很有必要

  一方面,这里的思维和虚拟化的区别在于,不是向上层应用隐藏什么,而是强调向上层暴露什么,或者向上层转移什么职责。
  另一方面,我们并不期待只要提供一层API抽象就能打败世界,而是对算法到硬件映射的复杂性有足够的了解。这种映射不仅包括与任务相关但与硬件无关的问题,还包括与硬件相关的问题,本质上相当于众所周知的编译技术。
  谈到这里,想到另一个去虚拟化的例子,就是软件定义网络(Softwaredefinednetwork,SDN)。对于同一套硬件基础设施,交换机的较佳转发规则是不同的。SDN的思路是使交换机的转发规则可以编程。对于每个不同的业务负载,通过静态分析获得较佳的转发规则或策略(controlplane),并根据这个规则对交换机进行编程。转发数据时,交换机只需要按照编程规则执行(dataplane)。
  在SDN的例子中,交换机将部分职责转移给软件,软件根据不同的业务负载生成不同的路由规则(策略),这是SDN平衡灵活性和性能的关键。
  在OneFlow解决分布式深度学习问题时,也是类似的想法。它不是通过引入额外的抽象层次来实现的,而是分为控制平面和数据平面。在控制平面上,编译器根据特定深度学习模型的任务负载和底层硬件拓扑生成配置较佳的执行计划(executionplan)。这个plan不是一劳永逸的。它需要上层模型和底层硬件的知识。一旦模型或硬件拓扑发生变化,plan就会发生变化。但编译器生成plan的机制可以认为是不变的,也是整个系统的精髓。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3851/news/416753/违者必究! 以上就是武汉达内IT教育培训机构 小编为您整理 为什么去虚拟化对深度学习系统很有必要的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011