论文笔记: HAQ: Hardware-Aware Automated Quantization with Mixed Precision

这篇是MIT韩松组发表在CVPR2019的论文《HAQ: Hardware-Aware Automated Quantization with Mixed Precision》,第一作者是韩松组的Kuan Wang,清华毕业。

文章提出使用NAS去搜索NN网络中不同layers的最佳quantization bit-width,并且根据实际的硬件给出的表现来作为reward。

方法

算法

  • 描述成一个寻找特定constraint (Latency/Energy)下的最小accuracy degradation的网络问题
  • weight和activation使用不同的量化bit-width
    • 线性量化
    • 分布KL散度最小化求区间 $c=\arg\min_{x} D_{KL}(W_k || quantize(W_k, a_k, x))$
  • 使用RL
    • input是前一层的action+这一层的参数
    • action space使用的continuous的
    • reward只考虑accuracy下降 $\lambda \times (acc-acc_{original})$
    • 如果达不到constraint,所有层等量降低bit-width
    • DDPG优化

硬件

  • 使用了Cloud(batch-size大)和Edge的两种场景
  • 使用了两种硬件做测评原则
    • 时间维度复用硬件BISMO
    • 空间维度组合硬件BitFusion

结果分析

  • 只做了MobileNet V1和V2
    • 发现V2还比V1差
  • 根据roofline model分析
    • edge
      • depthwise的卷积是memory bound,因此分配更少的bit-width给activation
      • pointwise的卷积是computation bound,多分配
    • cloud
      • pointwise layer 更少的bitwidth

评价

CVPR2019的oral,文章算法写得非常清晰,结果也不错,韩松用NAS这一套可谓是轻车熟路。但是后面结果分析就很不清楚,edge和cloud不是很能让人信服。看完还是有很多疑问的:为什么不用classification这个很奇怪,可以把结果放出来看看;为什么不用联合reward;最后出来的cloud和edge相差有点大,让人摸不着头脑;为什么Mobilenet V1比V2好。可以从Hardware和Software联合优化的角度去看这个问题,硬件如何去设计完全可以根据算法的结果去优化,这个方面可以探讨的问题还挺多的。

Your browser is out-of-date!

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

×