稀疏计算结合Facebook Glow的神经网络优化
2017年8月,一篇题为《神经网络最完整的图表,解释》的文章面世,里面一口气列出了27种不同类型的神经网络。从那时起,这个数字就在不断膨胀——工程师和数据科学家们不停地为各种应用场景寻找更高效的AI实现方式,神经网络家族也越来越庞大。与此同时,处理器架构师们也在拼命追赶,想方设法推出能够扛住这些工作
2017年8月,一篇题为《神经网络最完整的图表,解释》的文章面世,里面一口气列出了27种不同类型的神经网络。从那时起,这个数字就在不断膨胀——工程师和数据科学家们不停地为各种应用场景寻找更高效的AI实现方式,神经网络家族也越来越庞大。
与此同时,处理器架构师们也在拼命追赶,想方设法推出能够扛住这些工作负载的新计算平台。但光靠硬件是不够的,软件层面的效率提升同样迫在眉睫。其中一项关键技术就是“剪枝”——说白了,就是从神经网络里删掉那些重复的、冗余的神经元,让它变得更小、更快(图1)。

图1. 剪枝可以带来更小、更快的神经网络,同时保持相同的精度。
对于嵌入式系统来说,剪枝几乎成了深度学习落地的必备手段——它能在不牺牲精度的前提下,大幅降低计算量。而且,剪枝技术还能进一步对付神经网络里一些特定的“低效”问题,比如稀疏性。
通过神经网络进行稀疏化
在神经网络的结构图里,稀疏性指的是那些数值为零、或者与相邻神经元没有连接的神经元(图2)。这其实是深度神经网络输入层和输出层之间隐藏矩阵的一个固有特性——当数据在网络中流动时,给定的输入通常只会激活越来越少的神经元。矩阵里的连接越少,稀疏度就越高。

图2. 左图把活跃连接的神经元密集地显示为黄色立方体,右图则展示了分布在整个神经网络中的稀疏随机连接。
Cadence Design Systems旗下Tensilica产品线的高级总监兼营销和业务发展主管Lazaar Louis说:“当你一层一层往下走,把1和0相乘的时候,结果全是0。所以随着层数加深,激活值的稀疏性会越来越高。目前主流的神经网络从输入到输出的激活过程里,平均稀疏度大约在50%。” 如果用处理器和内存资源去计算稀疏神经网络里那些没用的零值,简直是浪费。反过来,通过剪枝来引入稀疏性,反而能变成计算上的优势。具体做法就是把那些接近零的权重强制归零,再配合模型重新训练,稀疏度就能提升到70%。
一旦神经网络被剪枝增加了稀疏性,像Cadence的Tensilica DNA 100处理器IP这样的计算平台就能抓住这个优势——它只对非零值执行乘加运算(MAC)(图3)。这得益于它集成的稀疏计算引擎,其中包含一个直接内存访问(DMA)子系统,能在把可执行文件交给处理单元之前先把数值读一遍。

图3. Cadence Design Systems的DNA 100处理器IP包含一个稀疏计算引擎,只对非零值进行MAC运算,从而提高了吞吐量。
总体而言,这使DNA 100 IP的MAC利用率更高,与阵列大小相近的替代方案相比,性能提升了4.7倍。
Glow编译
和其他嵌入式处理器一样,DNA 100也需要借助编译器来理解神经网络图的稀疏性。Tensilica神经网络编译器从Caffe、TensorFlow、TensorFlow Lite和Android神经网络(ANN)应用等深度学习框架那里拿到浮点输出,然后量化为整数,并生成针对Cadence IP优化过的机器码。
编译器还能帮忙把那些接近零的权重进一步压到零,并且在可能的情况下把多个神经网络层融合成单独的操作。这些功能对于提高DNA 100这类设备上的神经网络吞吐量至关重要,同时还能把精度保持在原始浮点模型的1%以内。
不过,尽管Tensilica神经网络编译器有这么多好处,工程师们还是面临着越来越多的神经网络类型、深度学习框架和AI处理器架构的挑战。这个趋势还在继续,开发者们自然希望编译器能在最多样化的处理器目标上,支持最广泛的神经网络类型和工具。反过来,像Cadence这样的供应商也得想办法跟上技术的发展。
看到市场的需求,Facebook开发了Glow——一个基于LLVM编译器基础架构、面向异构硬件架构的降图机器学习编译器。Glow的目标是从PyTorch等框架接收计算图,然后利用数学相关的优化,为多个硬件目标生成高度优化的代码。实现方式分为两步:先把神经网络数据流图降低为中间表示,再应用两阶段过程(图4)。

图4. Facebook的Glow编译器是一种与硬件无关的编译器,它通过两阶段过程来优化嵌入式计算翻跟斗上的神经网络。
在Glow中间表示的第一阶段,编译器可以执行特定领域的改进,并根据神经网络数据流图的内容来优化高级结构。这个阶段是目标无关的。
到了第二阶段,编译器会在生成硬件特定代码之前,优化指令调度和内存分配。由于它采用增量降级的方式,并且支持大量的输入算子,Glow编译器能够利用专门的硬件功能,而不需要在每个受支持的硬件目标上都实现所有算子。这不但减少了内存占用,也让它在面对只关心少数线性代数基元的新计算架构时,具备很好的可扩展性。
目前,Esperanto Technologies、英特尔、Marvell、高通和Cadence都已经承诺在未来的硅方案中使用Glow。
“Facebook Glow让我们能够快速优化那些还没到来的技术,”Louis说。“假设引入了一个新网络,要么有人会贡献代码,要么我们自己来。他们希望建立一个开源社区,让大家都能进来贡献,共同加速通用的事情。另外,Glow里还引入了插入各种翻跟斗的功能,所以我们能根据自家架构来适配。我们计划把Glow作为编译器底层引擎来向前发展。”
嵌入式神经网络:少即是多
过去几年,围绕人工智能的炒作、研究和开发确实经历了一场大爆发。但正如嵌入式领域经常发生的那样,事实证明“少”才是“多”。
剪枝正在迅速成为神经网络开发者的常规操作——大家都想在保证精度的前提下把性能提上去。与此同时,Facebook的Glow正在解决处理器碎片化的问题,免得它拖累AI的广泛采用。
把正确的工具用到极致,往往就能成功。对于神经网络来说,用好Glow编译器和稀疏计算技术,大概就是这个道理。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:稀疏计算结合Facebook Glow的神经网络优化要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点Leanstral1 5是MistralAI开源的形式化验证大模型,采用119B参数MoE架构,每token仅激活6 5B参数,支持256k上下文和多模态输入。专为Lean4优化,在miniF2F等数学基准上取得SOTA成绩,具备自动定理证明、形式化验证及Agent式交互证明能力。
基于标题和提纲自动生成完整博文草稿,支持关键词优化、多语言输出与语气风格自定义。编辑工具可逐段精修,将重复劳动从零创作转为编辑修改,适用于博客扩展、营销文案及长篇创作辅助。
一个AI驱动的灵性成长平台,整合个性化每日灵修、引导式日记和虚拟导师功能。用户通过每日反思与AI引导的深度聊天,逐步深化与信仰的联结,实现灵性成长、内心平静与自我觉察的持续提升。
Tripmix ai是一款人工智能旅行规划助手,根据用户填写的天数、兴趣偏好及特殊要求,智能生成涵盖景点、餐厅、交通等要素的个性化行程,无需自行查阅攻略,实现需求到方案的一站式匹配,省时省力,高效便捷。
- 日榜
- 周榜
- 月榜
热点快看
