最近机器学习 (ML) 进步的关键贡献者之一是定制加速器的开发,例如Google TPU和Edge TPU,它们显着提高了可用计算能力,从而解锁了各种功能,例如AlphaGo、RankBRAIn、WaveNets和对话代理。这种增加可以提高神经网络训练和推理的性能,为视觉、语言、理解和自动驾驶汽车等广泛的应用提供新的可能性。
为了保持这些进步,硬件加速器生态系统必须继续在架构设计方面进行创新,并适应快速发展的 ML 模型和应用程序。这需要对许多不同的加速器设计点进行评估,每个点不仅可以提高计算能力,还可以揭示新的能力。这些设计点通常由各种硬件和软件因素参数化。这是一项艰巨的优化任务,因为搜索空间呈指数级大1 而目标函数通过模拟或综合进行评估在计算上是昂贵的,这使得确定可行的加速器配置具有挑战性。
在“Apollo: TRansfeRable ARchITectuRe ExploRation”中,我们介绍了我们在定制加速器的 ML 驱动设计方面的研究进展。虽然最近的 工作已经证明了利用 ML 来改进低级布局规划过程方面的有希望的结果,但在这项工作中,我们专注于将 ML 混合到高级系统规范和架构设计阶段,这是影响芯片整体性能的关键因素,其中建立了控制高级功能的设计元素。我们的研究展示了 ML 算法如何促进架构探索并建议跨一系列深度神经网络的高性能架构,其领域涵盖图像分类、对象检测、OCR和语义分割。
架构搜索空间和工作负载
架构探索的目标是为一组工作负载发现一组可行的加速器参数,以便在一组可选的用户定义下最小化所需的目标函数约束。然而,体系结构搜索的流形通常包含许多点,从软件到硬件没有可行的映射。其中一些设计点是先验已知的,可以通过用户将它们制定为优化约束来绕过。然而,由于体系结构和编译器的相互作用以及搜索空间的复杂性,一些约束可能无法正确地表述到优化中,因此编译器可能无法为目标硬件找到可行的软件映射。这些不可行点在优化问题中不容易表述,并且在整个编译器通过之前通常是未知的。因此,架构探索的主要挑战之一是有效地避开不可行的点,以最少数量的周期精确架构模拟来有效探索搜索空间。
优化策略
在本研究中,我们在架构探索的背景下探索了四种优化策略:
1.随机:随机均匀地对架构搜索空间进行采样。
2.VizieR:使用贝叶斯优化在搜索空间中进行探索,其中目标函数的评估成本很高。使用来自搜索空间的一组采样点,贝叶斯优化形成一个代理函数,通常用高斯过程表示,它近似于搜索空间的流形。在代理函数值的指导下,贝叶斯优化算法在探索和开发的权衡中决定是从流形中的有希望的区域中采样更多,还是从搜索空间中不可见的区域中采样更多。然后,优化算法使用这些新采样点并进一步更新代理函数以更好地对目标搜索空间进行建模。VizieR 将预期改进作为其核心获取功能。在这里,我们使用VizieR (safe),这是一种约束优化的变体,它指导优化过程避免建议不满足给定约束的试验。
3.EvolutionaRy:使用k 个个体的种群 执行进化搜索,其中每个个体的基因组对应于一系列离散化的加速器配置。通过使用锦标赛选择从种群中为每个个体选择两个父母,以某种交叉率重组他们的基因组,并以某种概率突变重组的基因组,从而产生新个体。
4.基于种群的黑盒优化(P3BO):使用一组优化方法,包括进化和基于模型,已被证明可以提高样本效率和稳健性。采样数据在集成中的优化方法之间交换,优化器根据其性能历史进行加权以生成新的配置。在我们的研究中,我们使用 P3BO 的变体,其中优化器的超参数使用进化搜索动态更新。