论文笔记 《Best of Both Worlds: AutoML Codesign of a CNN and its Hardware Accelerator》

这篇论文是2020年5月发表于arxiv的《Best of Both Worlds: AutoML Codesign of a CNN and its Hardware Accelerator》,作者是来自三星剑桥AI中心和牛津大学的研究员。第一作者是Mohamed S. Abdelfattah。通讯是牛津副教授Nicholas D. Lane(李克澜),做机器学习系统、手机传感器、边缘计算等,值得一提的是,Nicholas教授2011-2015在MSRA带过Mobile and Sensing Systems group (MASS)。

这篇文章对软件-硬件联合搜索进行了建模,使用强化学习搜索CNN网络结构和加速器硬件设计的参数,利用NASBench在CIFAR-10上比较了联合搜索、交替搜索和分离搜索三种搜索方式的优劣,最后再CIFAR-100上做了实验,使用1000个GPU hours搜索不错的网络。

方法

搜索框架

  • CNN和Hardware的搜索总空间为$S=O_{nn1}O_{nn2}…O_{hw1}O_{hw2}$
  • 目标为找到最优的参数,使得有Evaluate函数测试的overhead最小,$s^* = arg\min_{s\inS}E(s)$
  • 使用RL在空间S中进行搜索
    • 网络结构和google的NAS_RL一样,由Controller(RNN网络)一个个预测每一个参数
    • 优化算法使用policy gradient,更新的梯度为$\nabla_{\theta}\pi_{\theta}(s_t)E(s_t)$
  • Evaluate函数考虑accuracy、latency、area
    • 他们的weighted sum作为评分
    • $Evaluate(s)=w_a Norm(-area(s))+ w_l Norm(-lat(s))+ w_a Norm(acc(s))$
    • 其中Norm是(min,max)到(0,1)
  • Constraint
    • 对acc、lat和area有要求,如lat<一个值
    • 如果sample不满足constraint,则惩罚,reward为负分
      • Controller更不容易生成这些不满足条件的sample

CNN搜索空间

  • 采用了NASBench的搜索空间
    • 类似ResNet的结构,其中Block这里称作Cell的结构
    • 限制了最多7个operations、9个connections

硬件搜索空间

  • 采用了CHaiDNN库,能部署在FPGA上
    • Data buffer(调整depth)
    • 内外通信bandwidth
    • Conv Engine(调整 filter维度和pixel维度的并行度)
    • 1x1卷积和3x3卷积单元的比例
    • 是否使用片上Pooling单元

硬件性能评估

  • Area
    • 建模每个模块使用的CLB(configurable logic blocks)、DSP、BRAM与面积关系
    • 根据每个sample使用情况计算Area
    • 实际综合面积开销平均1.6%误差
  • Latency
    • FPGA上跑每个单元各自在不同配置下的时间,记录下来
    • 根据每个sample的模型查表直接计算Latency
    • 和实际有约15%的误差

NASBench探索

  • 将NASBench中的所有网络和所有硬件架构组合,产生3.7billion个数据。
  • 选取其中的Pareto-optimal画在一张图上,进行分析
    • 确实是一个三方向的trade-off
    • 只有0.0001%的样本在帕累托最优集上,因此手工设计是几乎不可能
    • 帕累托最优的不同网络的结构有136种和硬件架构有338种,说明没有能通吃的结构

设计搜索方法

  • Combined search: 一个controller,直接联合优化CNN结构和硬件
    • 效果最好
    • 但搜索空间大,收敛慢
  • Phase search: 两个controller,交替优化CNN结构和硬件
    • 效果稍微次于Combined search
    • 收敛更快
  • Separate search: 先CNN搜索,搜完之后再硬件搜索
    • 最好的10个网络里面,有8个没有满足lat和area的constraint
    • 不考虑硬件去搜索CNN结构,会导致硬件执行效率有很大的随机性

CIFAR-100实验

  • 用 performance/area 来evaluate网络
    • 训练过程中,逐渐加大performance/area的constraint
  • 使用Combined search,2300个sample
  • 平台:6x Machine x 8x Nvidia 1080 = 48Card
    • 共 ~1000GPU hours
  • 结果分析
    • 不使用pooling engine好
    • 硬件的设计和网络的需求很Match,data buffer刚好够

评价

这篇论文在硬件设计空间、硬件评估模型以及搜索策略上面都没有创新,算是延续了之前的设计。
亮点在于通过对于整个NASBench搜索空间的所有的网络拿出来进行了分析,并且给出了帕累托最优。证明了Codesign有很大潜力,并且搜索空间有规律性,人工设计效率低。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×