当前位置:网站首页>ADS算力芯片的多模型架构研究
ADS算力芯片的多模型架构研究
2022-07-01 15:45:00 【高工智能汽车】
作者:Nathan J,复睿微电子英国研发中心首席架构师,常驻英国剑桥。曾在ARM总部从事十多年的高性能CPU架构研究以及人工智能架构研究。
在过去十几年里,深度神经网络(DNN)得到了广泛应用,例如移动手机,AR/VR,IoT和自动驾驶等领域。复杂的用例导致多DNN模型应用的出现,例如VR的应用包含很多子任务:通过目标检测来避免与附近障碍物冲突,通过对手或手势的追踪来预测输入,通过对眼睛的追踪来完成中心点渲染等,这些子任务可以使用不同的DNN模型来完成。像自动驾驶汽车也是利用一系列DNN的算法来实现感知功能,每个DNN来完成特定任务。然而不同的DNN模型其网络层和算子也千差万别,即使是在一个DNN模型中也可能会使用异构的操作算子和类型。
此外,Torch、TensorFlow和Caffe等主流的深度学习框架,依然采用顺序的方式来处理inference 任务,每个模型一个进程。因此也导致目前NPU架构还只是专注于单个DNN任务的加速和优化,这已经远远不能满足多DNN模型应用的性能需求,更迫切需要底层新型的NPU计算架构对多模型任务进行加速和优化。而可重配NPU虽然可以适配神经网络层的多样性,但是需要额外的硬件资源来支持(比如交换单元,互联和控制模块等),还会导致因重配网络层带来的额外功耗。
开发NPU来支持多任务模型面临许多挑战:DNN负载的多样性提高了NPU设计的复杂度;多个DNN之间的联动性,导致DNN之间的调度变得困难;如何在可重配和定制化取得平衡变得更具挑战。此外这类NPU在设计时还引入了额外的性能标准考量:因多个DNN模型之间的数据共享造成的延时,多个DNN模型之间如何进行有效的资源分配等。
目前的设计研究的方向大体可以分成以下几点:多个DNN模型之间并行化执行,重新设计NPU架构来有效支持DNN模型的多样性,调度策略的优化等。
编辑搜图
DNN之间的并行性和调度策略:
可以使用时分复用和空间协同定位等并行性策略。调度算法则大概可以分为三个方向:静态与动态调度,针对时间与空间的调度,以及基于软件或者硬件的调度。
时分复用是传统优先级抢占策略的升级版,允许inter-DNN的流水线操作,来提高系统资源的利用率(PE和memory等)。这种策略专注调度算法的优化,好处是对NPU硬件的改动比较少。
空间协同定位则专注于多个DNN模型执行的并行性,也就是不同DNN模型可以同时占用NPU硬件资源的不同部分。这要求在设计NPU阶段就要预知各个DNN网络的特性以及优先级,以预定义那部分NPU硬件单元分配给特定的DNN网络使用。分配的策略可以选择DNN运行过程中的动态分配,或者是静态分配。静态分配依赖于硬件调度器,软件干预较少。空间协同定位的好处是可以更好的提高系统的性能,但是对硬件改动比较大。
动态调度与静态调度则是根据用户用例的特定目标来选择使用动态调度或者静态调度。
动态调度的灵活性更高,会根据实际DNN任务的需求重新分配资源。动态调度主要依赖于时分复用,或者利用动态可组合引擎 (需要在硬件中加入动态调度器),算法则多数选择preemptive策略或者AI-MT的早期驱逐算法等。
对于定制化的静态调度策略,可以更好的提高NPU的性能。这种调度策略是指在NPU设计阶段就已经定制好特定硬件模块去处理特定神经网络层或者特定的操作。这种调度策略性能高,但是硬件改动比较大。
编辑搜图
异构NPU架构:
结合动态可重构和定制化的静态调度策略,在NPU中设计多个子加速器,每个子加速器都是针对于特定的神经网络层或者特定的网络操作。这样调度器可以适配多个DNN模型的网络层到合适的子加速器上运行,还可以调度来自于不同DNN模型的网络层在多个子加速器上同步运行。这样做既可以节省重构架构带来的额外硬件资源消耗,又可以提高不同网络层处理的灵活性。
异构NPU架构的研究设计可以主要从这三个方面考虑:
1)如何根据不同网络层的特性设计多种子加速器;
2)如何在不同的子加速器之间进行资源分布;
3)如何调度满足内存限制的特定网络层在合适的子加速器上执行。
参考文献:
[1] Stylianos I. Venieris, and etc.“Multi-DNN Accelerators for Next-Generation AI Systems”
https://arxiv.org/pdf/2205.09376.pdf
[2] Hyoukjun K. Liangzhen L and etc. “Heterogeneous Dataflow Accelerators for Multi-DNN- Workloads”
https://arxiv.org/abs/1909.07437
边栏推荐
- Qt+pcl Chapter 6 point cloud registration ICP Series 5
- Pnas: brain and behavior changes of social anxiety patients with empathic embarrassment
- 【目标跟踪】|STARK
- process.env.NODE_ENV
- Day 3 of rhcsa study
- HR面试:最常见的面试问题和技巧性答复
- 2022-07-01日报:谷歌新研究:Minerva,用语言模型解决定量推理问题
- 软件测试的可持续发展,必须要学会敲代码?
- 智慧党建: 穿越时空的信仰 | 7·1 献礼
- Seate中用了shardingjdbc 就不能用全局事务了吗?
猜你喜欢
分享在大疆DJI(深圳总部)工作的日常和福利
超视频时代,什么样的技术会成为底座?
TensorFlow團隊:我們沒被拋弃
张驰课堂:六西格玛数据的几种类型与区别
[video memory optimization] deep learning video memory optimization method
[IDM] IDM downloader installation
一次革命、两股力量、三大环节:《工业能效提升行动计划》背后的“减碳”路线图...
Sales management system of lightweight enterprises based on PHP
电脑照片尺寸如何调整成自己想要的
Redis high availability principle
随机推荐
u本位合约和币本位合约有区别,u本位合约会爆仓吗
Redis high availability principle
C#/VB.NET 合并PDF文档
她就是那个「别人家的HR」|ONES 人物
ThinkPHP kernel work order system source code commercial open source version multi user + multi customer service + SMS + email notification
[stm32-usb-msc problem help] stm32f411ceu6 (Weact) +w25q64+usb-msc flash uses SPI2 to read out only 520kb
RT-Thread Env 工具介绍(学习笔记)
【STM32-USB-MSC问题求助】STM32F411CEU6 (WeAct)+w25q64+USB-MSC Flash用SPI2 读出容量只有520KB
[target tracking] | template update time context information (updatenet) "learning the model update for Siamese trackers"
Photoshop插件-HDR(二)-脚本开发-PS插件
七夕表白攻略:教你用自己的专业说情话,成功率100%,我只能帮你们到这里了啊~(程序员系列)
Automatic, intelligent and visual! Deeply convinced of the eight designs behind sslo scheme
A unifying review of deep and shallow anomaly detection
求求你们,别再刷 Star 了!这跟“爱国”没关系!
【php毕业设计】基于php+mysql+apache的教材管理系统设计与实现(毕业论文+程序源码)——教材管理系统
自动、智能、可视!深信服SSLO方案背后的八大设计
SAP CRM organization Model(组织架构模型)自动决定的逻辑分析
从 MLPerf 谈起:如何引领 AI 加速器的下一波浪潮
Introduction to RT thread env tool (learning notes)
Raytheon technology rushes to the Beijing stock exchange and plans to raise 540million yuan