循环代码处理器优化制造技术

技术编号:18737560 阅读:30 留言:0更新日期:2018-08-22 05:52
循环代码处理器优化被实现为处理器流水线的循环优化器扩展。循环优化器生成与包括至少一个零可优化指令的代码循环相关联的优化代码。循环优化器可以生成与特定代码循环相关联的多个版本的优化代码,其中多个版本的优化代码中的每个具有不同的相关联的条件,优化代码能够在该不同的相关联的条件下被安全地执行。

【技术实现步骤摘要】
【国外来华专利技术】循环代码处理器优化
技术介绍
神经网络可以被训练以执行各种人工智能任务,诸如图像识别、语音识别、手写识别等。通常使用大的已知数据的集合来训练神经网络。在实际时间内将深度神经网络训练到合理准确度所需要的计算和存储器资源非常多,并且通常超过单个商品服务器的能力。减少计算和缓存资源需求导致提高性能和可扩展性。
技术实现思路
本公开描述了用于稀疏数据的高效处理和存储。零可优化指令是结果不再需要的指令、或者由于程序的输入数据为零而可以更高效地生成结果的指令。对处理器流水线的前端扩展消除了对零可优化指令的不必要的处理,绕过了处理流水线的执行阶段,并且在可能的情况下绕过了处理流水线的写回阶段。对处理器流水线的后端扩展生成与包括一个或多个零可优化指令的代码循环相对应的替代代码。高速缓存扩展包括添加零高速缓存以存储与零高速缓存线相关联的高速缓存标签,而相应的数据高速缓存存储与非零高速缓存线相关联的高速缓存标签和数据字节。提供本“
技术实现思路
”来以简化的形式介绍将在以下“具体实施方式”中进一步描述的选择的概念。本“
技术实现思路
”并非旨在标识所要求保护的主题的关键或基本特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。例如,术语“技术”可以指在以上描述的上下文中和本文全文所允许的系统、方法、计算机可读指令、模块、算法、硬件逻辑和/或操作。附图说明参考附图描述详细描述。在这些图中,附图标记的最左边的数字标识附图标记首次出现于其中的图。不同图中的相同附图标记指示相似或相同的项。图1是示出用于稀疏数据的高效处理和存储的示例环境的形象化的示图。图2是示出示例处理器流水线的选择的组件的框图。图3是示出零高速缓存的示例实现的框图。图4是示出基于具有零值的循环不变输入的示例循环代码优化的框图。图5是示出基于具有零值的循环变化输入的示例循环代码优化和示例代码注释的框图。图6是用于检测和处理零可优化指令的示例方法的流程图。图7是用于基于零可优化指令来优化代码循环的示例方法的流程图。图8是用于提取优化的代码循环的示例方法的流程图。图9是用于处理读取请求的示例方法的流程图。图10是用于处理数据写入的示例方法的流程图。具体实施方式概述描述了稀疏数据的高效处理和存储。观察表明,神经网络训练计算经常涉及稀疏数据,稀疏数据被定义为具有显著百分比的零值的数据。由于训练内核执行大量的乘法-累加运算,因此这些计算中的很多计算由于数据的稀疏性而不是必要的。本文中描述的用于稀疏数据的高效处理和存储技术通过减少稀疏数据的计算和存储器系统消耗来提高训练性能。本文中描述的用于稀疏数据的高效处理和存储的技术包括处理器扩展和存储器系统扩展。处理器扩展基于零可优化指令,零可优化指令是结果不再需要的指令、或者由于程序的输入数据为零而可以更高效地生成结果的指令。例如,如果至少一个操作数为零,则算术指令(例如,乘法、除法、加法和减法)的结果可以更高效地生成。作为另一示例,一些零可优化指令可能导致对存储器位置的无声存储,从而使得对该位置的相关联的加载和存储操作都是不必要的。本文中描述的处理器扩展减少了执行周期。存储器系统扩展在高速缓存线粒度下高效地跟踪零数据,以减少零高速缓存线的存储和带宽成本。本文中描述的处理器扩展和存储器系统扩展都可以被实现,以有利于现有软件,而不需要改变现有软件。说明性环境图1示出了其中可以实现用于稀疏数据的高效处理和存储的示例的示例环境100。在一些示例中,环境100的各种设备和/或组件包括分布式计算资源102,该分布式计算资源102可以彼此通信并且经由一个或多个网络104与外部设备通信。网络104可以包括例如诸如因特网的公共网络、诸如机构和/或个人内部网的专用网络、或者专用网络和公共网络的某种组合。网络104还可以包括任何类型的有线和/或无线网络,包括但不限于局域网(LAN)、广域网(WAN)、卫星网络、有线网络、Wi-Fi网络、WiMax网络、移动通信网络(例如,3G、4G等)或其任何组合。网络104可以利用通信协议,包括基于分组和/或基于数据报的协议,诸如互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)或其他类型的协议。此外,网络104还可以包括促进网络通信和/或形成网络的硬件基础的多个设备,诸如交换机、路由器、网关、接入点、防火墙、基站、中继器、骨干设备等。在一些示例中,网络104还可以包括使能到无线网络的连接的设备,诸如无线接入点(WAP)。示例支持通过在各种电磁频率(例如,无线电频率)上发送和接收数据的WAP进行的连接,WAP包括支持电气和电子工程师协会(IEEE)802.11标准(例如,802.11g、802.11n等)和其他标准的WAP。在各种示例中,分布式计算资源102包括设备106(1)至106(M)。示例支持其中设备106可以包括以聚类或其他分组配置进行操作以共享资源、平衡负载、提高性能、提供故障转移支持或冗余、或用于其他目的的一个或多个计算设备的场景。设备106可以属于各种类别或种类的设备,诸如传统的服务器型设备、台式计算机型设备、移动型设备、专用型设备、嵌入型设备和/或可穿戴型设备。因此,虽然被示出为单一类型的设备,但是设备106可以包括各种各样的设备类型并且不限于特定类型的设备。设备106可以表示但不限于台式计算机、服务器计算机、网络服务器计算机、个人计算机、移动计算机、膝上型计算机、平板电脑、可穿戴计算机、植入计算设备、电信设备、汽车计算机、具有网络功能的电视机、瘦客户端、终端、个人数据助理(PDA)、游戏控制台、游戏设备、工作站、媒体播放器、个人录像机(PVR)、机顶盒、相机、用于包括在计算设备中的集成组件、电器或任何其他类型的计算设备。设备106可以包括具有一个或多个处理器108的任何计算设备,一个或多个处理器108诸如经由总线114可操作地连接到高速缓存110和计算机可读介质112,在一些情况下,总线114可以包括以下中的一个或多个:系统总线、数据总线、地址总线、PCI总线、Mini-PCI总线、以及各种本地、外围设备和/或独立总线。处理器108可以表示例如CPU型处理单元、GPU型处理单元、现场可编程门阵列(FPGA)、另一类数字信号处理器(DSP)、或在一些情况下可以由CPU驱动的其他硬件逻辑组件。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。示例处理器108包括用于检测零可优化指令并且在可能时绕过执行和写回处理阶段的前端扩展116。示例处理器108还包括用于检测和优化零可检测循环的后端扩展118、以及用于优化稀疏数据的存储的高速缓存扩展120。高速缓存110包括指令高速缓存122、零优化高速缓存124、零优化表126、零优化注释表128、数据高速缓存130和零高速缓存132。指令高速缓存122存储要由处理器108处理的指令。零优化高速缓存124存储由后端扩展118生成的优化的循环代码。零优化表126存储从代码循环地址到代码循环的一组优化版本的映射、以及能够执行每个优化版本的条件。零优化注释表128存储用于优化一个或多个指令的代码注释。数据高速缓存130存储非零数据,并且零高速缓存132本文档来自技高网...

【技术保护点】
1.一种方法,包括:在处理器内检测包括一个或多个零可优化指令的代码循环;以及生成要被执行的所述代码循环的优化版本,而不是所述代码循环。

【技术特征摘要】
【国外来华专利技术】2015.12.31 US 14/986,4651.一种方法,包括:在处理器内检测包括一个或多个零可优化指令的代码循环;以及生成要被执行的所述代码循环的优化版本,而不是所述代码循环。2.根据权利要求1所述的方法,其中:所述代码循环包括多个指令;以及如果与所述多个指令中的至少一个指令相关联的至少一个输入操作数具有零值,则所述代码循环的所述优化版本不包括所述多个指令中的一个或多个不必要的指令。3.根据权利要求1或2所述的方法,其中生成所述代码循环的所述优化版本包括将以下各项存储到高速缓存:所述代码循环的所述优化版本;以及条件的指示,所述代码循环的所述优化版本能够在所述条件下安全地被执行。4.根据权利要求3所述的方法,其中生成所述代码循环的所述优化版本还包括将所述代码循环与所述代码循环的所述优化版本之间的映射保存在所述高速缓存中。5.根据权利要求1至4中的任一项所述的方法,其中生成所述代码循环的所述优化版本包括基于以下中的至少一项来优化所述代码循环:具有零值的独立的循环不变的锚点输入;具有零值的聚类的循环不变的锚点输入;或者具有零值的聚类的循环变化的锚点输入。6.根据权利要求1至5中的任一项所述的方法,还包括:基于具有零值的独立的循环变化的锚点输入来生成代码注释,其中所述处理器被配置为根据所述代码注释来处理所述代码循环内的指令。7.根据权利要求6所述的方法,其中当所述循环变化的锚点输入具有零值时,所述代码注释指示所述处理器跳过所述多个指令中的至少一个指令的执行。8.根据权利要求6或权利要求7所述的方法,其中生成所述代码注释包括将以下各项存储到高速缓存:所述代码注释;以及条件的指示,在所述条件下所述代码循环内的所述指令能够根据所述代码注释安全地被处理。9.根据权利要求8所述的方法,其中生成所述代码注释还包括将所述代码循环与所述代码注释之间的映...

【专利技术属性】
技术研发人员:T·A·奇利姆比O·鲁瓦瑟V·塞沙德利
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1