[发明专利]计算图的基于流的加速器处理有效
| 申请号: | 201680063365.6 | 申请日: | 2016-10-28 |
| 公开(公告)号: | CN108351805B | 公开(公告)日: | 2022-12-23 |
| 发明(设计)人: | 保罗·罗纳德·巴勒姆;维贾伊·瓦苏德万 | 申请(专利权)人: | 谷歌有限责任公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50 |
| 代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 李佳;穆德骏 |
| 地址: | 美国加利*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 计算 基于 加速器 处理 | ||
方法、系统和装置,包括被编码在计算机存储介质上的计算机程序,用于由计算图系统接收处理计算图的请求;获得表示所述计算图的子图的数据,所述计算图包括多个节点和有向边,其中每个节点表示相应的操作,其中每个有向边将相应的第一节点连接到相应的第二节点,所述子图由所述计算图系统中的布放器指派给第一设备;确定所述第一设备包括具有多个流的硬件加速器;响应于确定而生成指令,所述指令当由所述第一设备执行时使所述第一设备:将由所述子图中的每个节点表示的所述操作指派给相应流;并且根据所述指派来执行由所述子图中的所述节点表示的所述操作。
背景技术
本说明书涉及通过将子图指派给具有多个流的加速器设备(例如,图形处理单元(GPU))来处理表示神经网络的计算图并且/或者涉及将这种经处理的计算图用于处理模型输入。
神经网络是采用模型的一个或多个层来针对接收到的输入生成输出(例如,一个或多个分类)的机器学习模型。一些神经网络除了包括输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一个层(即,网络的下一个隐藏层或输出层)的输入。网络的每个层根据用于层的相应的参数集合的当前值来从接收到的输入生成输出。
在存在的系统中,计算图的操作可由个别设备处理。在一些实施方式中,设备是GPU。设备可具有执行操作(例如,在一层处从输入生成输出)并且将来自操作的输出存储在存储器中的处理器。由于在计算图中生成输出通常所需要的操作的大数目和大小,一个设备可花费大量时间来处理图的操作。
发明内容
一般而言,本说明书描述一种用于使用基于流的加速器设备(例如,GPU)来处理计算图的子图的系统或方法。
一般而言,本说明书中描述的主题的一个创新方面可用包括以下各项的动作的方法加以具体实现:接收处理计算图的请求;获得表示所述计算图的子图的数据,所述计算图包括多个节点和有向边,其中每个节点表示相应的操作,其中每个有向边将相应的第一节点连接到相应的第二节点,所述相应的第二节点表示接收由所述相应的第一节点表示的操作的输出作为输入的操作,所述子图由所述计算图系统中的布放器指派给第一设备;确定所述第一设备包括具有多个流的硬件加速器;响应于确定所述第一设备包括具有多个流的图形处理单元而生成指令,所述指令当由所述第一设备执行时使所述第一设备:将由所述子图中的每个节点表示的所述操作指派给所述图形处理单元的多个流中的相应流;并且根据所述指派来执行由所述子图中的所述节点表示的所述操作;以及将所述指令和所述数据提供给所述第一设备。这个方面的方法可以是计算机实现的方法。这个方面的方法可以由一个或多个计算设备执行,例如由包括计算图系统的一个或多个计算设备执行。
实施方式可包括以下特征中的一个或多个。所述请求指定识别来自所述子图中的一个或多个相应节点的一个或多个特定输出,进一步包括:从所述第一设备接收所述一个或多个特定输出;以及将所述一个或多个特定输出提供给所述客户端。所述指令进一步使所述第一设备将所述一个或多个特定输出存储在所述第一设备的存储器中。针对所述子图的所述操作包括针对神经网络的部分推理或训练计算。分析所述子图以在链结构中识别所述子图中的节点组;其中,所述指令使所述第一设备将该节点组指派给一个流。所述指派包括:分析所述子图以识别所述子图中的第一节点具有作为输出的多个有向边;其中所述指令使所述第一设备针对所述有向边中的每一个有向边来将该有向边指向的节点指派给所述图形处理单元的唯一流。所述指令使所述第一设备针对每个节点来基于到该节点的所述有向边确定通过由该节点表示的所述操作消耗的所述图形处理单元中的相应的存储器资源量,其中,所述指派至少基于所述相应的存储器资源量。所述指令使所述第一设备确定由节点表示的特定操作已在特定流处结束;响应于确定所述特定操作已结束:确定将被释放的通过所述特定操作消耗的第一存储器量;针对未指派节点组中的每一个未指派节点来确定由该未指派节点消耗的相应的估计存储器量;从所述未指派节点组中确定具有使所述第一存储器量的使用最大化的所述估计存储器量的第一未指派节点;并且将由所述第一未指派节点表示的操作指派给所述特定流。
在一个实施方式中所述方法进一步包括:接收模型输入;以及由所述硬件加速器根据由所述子图中的所述节点表示的操作来处理所述模型输入。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谷歌有限责任公司,未经谷歌有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680063365.6/2.html,转载请声明来源钻瓜专利网。





