高效能神经网络调度:从粗粒度到细粒度的优化策略
1. 神经网络调度概述
在异构片上系统(SoC)中进行复合神经网络任务调度是一项复杂但关键的工作。它主要分为粗粒度调度和细粒度调度。
1.1 粗粒度调度
粗粒度调度类似于典型异构 SoC 上的传统调度问题。在将神经网络任务部署到节能型 SoC 时,有三条主要规则可作为指导。这种调度关注的是将网络骨干或划分后的网络块分配到合适的计算单元。
1.2 细粒度调度
在完成粗粒度调度后,如果网络被映射到特定的计算单元(SUs),为了提高相应加速器的执行效率,还需要进行细粒度的模型映射。深度神经网络(DNN)算法可以用粗计算有向无环图(coarse - grained CDAG)表示,它由相互连接的矩阵运算符组成。细粒度调度就是要挖掘这种图及其运算符实现方式中的潜在优化空间,通常由 SU 编译器执行。
2. 神经网络任务粗粒度调度案例研究
以 2016 年低功耗图像识别挑战赛(LPIRC2016)中的基于 DNN 的目标检测任务为例,展示在典型异构 SoC 上的手动调度过程。
2.1 LPIRC2016 任务与解决方案介绍
卷积神经网络(CNNs)在各种图像数据集上的准确性不断提高,但网络规模和深度的增长给基于 CNN 的图像识别解决方案在功率受限的计算设备上的整合带来了挑战。这些设备难以在有限的计算和内存资源下提供实时 CNN 推理能力。
LPIRC 旨在推动节能型目标检测技术的研究,强调检测解决方案中准确性和功耗之间的权衡。在 LPIRC2016 中,通过在 NVIDIA Jetson
超级会员免费看
订阅专栏 解锁全文
959

被折叠的 条评论
为什么被折叠?



