机器学习(ML)近期进展的主要贡献者之一是定制加速器的开发,例如GoogleTPU和EdgeTPU,它们显着增加了可用的计算能力,解锁了各种功能的示例包括AlphaGo、RankBrain、WaveNets和对话代理。这种添加可以提高神经网络训练和推理的性能,为视觉、语言、理解和自动驾驶汽车等领域的广泛应用开辟新的可能性。为了维持这些进步,硬件加速器生态系统必须在架构设计方面不断创新,并适应快速发展的ML模型和应用程序。这需要对许多不同的加速器设计点进行评估,每个设计点不仅可以提高计算能力,还可以揭示新的能力。这些设计点通常由各种硬件和软件因素参数化(例如,内存容量、不同级别的计算单元数量、并行性、互连网络、流水线、软件映射等)。这是一项困难的优化任务,因为搜索空间呈指数级增长1,并且目标函数(例如,更低的延迟和/或更高的能源效率)通过仿真或综合进行评估的计算成本很高,这使得确定可行的加速器配置具有挑战性。在“Apollo:TransferableArchitectureExploration”中,我们展示了我们在自定义加速器的ML驱动设计方面的研究进展。虽然最近的工作已经证明在利用ML改进低级布局规划过程(其中硬件组件在空间上布局并在硅中连接)方面取得了可喜的成果,但在这项工作中,我们专注于将ML融入高级系统规范和架构设计阶段,这是影响芯片整体性能的关键因素,控制高级功能的设计元素就建立在这个阶段。我们的研究展示了ML算法如何促进架构探索,并在涵盖图像分类、对象检测、OCR和语义分割的一系列深度神经网络中建议高性能架构。架构搜索空间和工作负载架构探索的目标是为一组工作负载发现一组可行的加速器参数,以最小化所需的目标函数(例如,加权平均值)约束。然而,架构搜索的流形通常包含许多点,这些点没有从软件到硬件的可行映射。其中一些设计点是先验已知的,用户可以将它们制定为优化约束(例如,在区域预算2约束中,总内存大小不得超过预定义限制)。然而,由于架构和编译器的相互作用以及搜索空间的复杂性,一些约束可能无法正确地表达到优化中,因此编译器可能无法为目标硬件找到可行的软件映射。这些不可行性点在优化问题中不容易表述,并且通常要等到整个编译器通过后才知道。因此,架构探索的主要挑战之一是有效地避免不可行点,并通过最少数量的周期精确架构模拟有效地探索搜索空间。下图显示了目标ML加速器的整体架构搜索空间。加速器包含处理元件(PE)的二维阵列,每个处理元件以单指令多数据(SIMD)方式执行一组算术计算。每个PE的主要架构组件是处理核心,其中包括用于SIMD操作的多个计算通道。每个PE在其所有计算核之间共享内存(PEMemory),主要用于存储模型激活、部分结果和输出,而单个核则有内存主要用于存储模型参数。每个内核都有多个带有多路乘法累加(MAC)单元的计算通道。每个周期的模型计算结果要么存储在PE内存中以供进一步计算,要么卸载回DRAM。优化策略在这项研究中,我们在架构探索的背景下探索了四种优化策略:1.随机:随机均匀地对架构搜索空间进行采样。2.Vizier:使用贝叶斯优化在目标函数评估成本高昂的搜索空间中进行探索(例如硬件模拟,可能需要数小时才能完成)。使用一组来自搜索空间的采样点,贝叶斯优化形成一个代理函数,通常由高斯过程表示,它近似于搜索空间的流形。在代理函数值的指导下,贝叶斯优化算法在探索-开发权衡中决定是从流形中有前途的区域采样更多(开发),还是从搜索空间的不可见区域采样更多(勘探).优化算法然后使用这些新的采样点并进一步更新代理函数以更好地对目标搜索空间进行建模。Vizier期望将改进作为其核心采购功能。在这里,我们使用Vizier(安全),一种约束优化的变体,它指导优化过程避免建议不满足给定约束的试验。3.进化:使用k个个体的群体进行进化搜索,其中每个个体的基因组对应于一系列离散的加速器配置。通过使用锦标赛选择从种群中为每个个体选择两个父母,以一定的交叉率重组他们的基因组,并以一定的概率对重组的基因组进行突变,从而产生新的个体。4.基于群体的黑盒优化(P3BO):使用一组优化方法,包括进化和基于模型,已被证明可以提高样本效率和鲁棒性。采样数据在集成中的优化方法之间交换,优化器根据其性能历史对其进行加权以生成新的配置。在我们的研究中,我们使用P3BO的变体,其中优化器的超参数使用进化搜索动态更新。加速器搜索空间嵌入为了更好地可视化每个优化策略在导航加速器搜索空间中的有效性,我们使用t分布随机邻域嵌入(t-SNE)将探索的配置映射到优化域内的二维空间。所有实验的目标(奖励)定义为每个加速器区域的吞吐量(推理/秒)。在下图中,x轴和y轴表示嵌入空间的t-SNE组件(嵌入1和嵌入2)。星号和圆圈标记分别显示不可行(零奖励)和可行的设计点,可行点的大小与其奖励相对应。正如预期的那样,随机策略以均匀分布搜索空间并最终在设计空间中找到几个可行点。与随机抽样方法相比,Vizier默认优化策略在探索搜索空间和寻找具有更高奖励(1.14对0.96)的设计点之间取得了良好的平衡。然而,这种方法往往会陷入不可行区域,虽然它确实找到了一些具有最大奖励的点(用红色十字标记表示),但在最后一次探索迭代中它找到的可行点很少。另一方面,进化优化策略在优化早期找到可行的解决方案,并在它们周围组装可行点簇。因此,该方法主要导航可行区域(绿色圆圈)并有效地避免不可行点。此外,进化搜索能够找到更多具有最大奖励(红叉)的设计选项。这种具有高收益的解决方案为设计人员提供了灵活性,可以探索具有不同设计权衡的各种架构。最后,基于种群的优化方法(P3BO)更有针对性地探索设计空间(具有高奖励点的区域)以找到最优解。P3BO策略在具有更严格约束(例如,大量不可行点)的搜索空间中找到具有最高奖励的设计点,显示其在导航具有大量不可行点的搜索空间中的有效性。不同设计约束下的架构探索我们还研究了在不同面积预算约束(6.8mm2、5.8mm2和4.8mm2)下每种优化策略的优势。以下小提琴图显示了在优化结束时研究的优化策略中最大可实现奖励的完整分布(每次4K运行10次之后)。更宽的段表示观察到特定给定奖励的可行架构配置的可能性更高。这意味着我们倾向于生成在具有更高奖励(更高性能)的点处增加宽度的优化算法。用于架构探索的两种性能最佳的优化策略是进化和P3BO,它们都提供了在多次运行中具有高回报和稳健性的解决方案。查看不同的设计约束,我们观察到P3BO优化策略随着面积预算约束的收紧而产生更高性能的解决方案。例如,当面积预算约束设置为5.8mm2时,P3BO发现奖励(吞吐量/加速器面积)为1.25的设计点优于所有其他优化策略。当面积预算约束设置为4.8mm2时,观察到相同的趋势,在多次运行中发现具有更高鲁棒性(更少可变性)的回报稍好。小提琴图显示了在10种优化策略中运行的最大可实现奖励的完整分布,在6.8平方毫米的面积预算下在4K试验中进行了评估。P3BO和进化算法产生更多的高性能设计(更宽的部分)。x轴和y轴分别表示所研究的优化算法和基准加速器的加速比(奖励)的几何平均值。结论虽然Apollo是更好地理解加速器设计空间和构建更高效硬件的第一步,但发明具有新功能的加速器仍然是未知的新领域。我们相信这项研究是一条令人兴奋的前进道路,可以进一步探索ML驱动的架构设计和跨计算堆栈(例如,编译器、映射和调度)的协同优化技术,以开发下一代高效的函数加速器。应用。
