中文

面向“不稳定”CNN加速器的训练:以FPGA为例

计算机视觉与模式识别 2018-12-06 v1

摘要

随着卷积神经网络(CNN)的巨大进步,CNN加速器正被越来越多地开发和部署到主流计算系统中。为使用CNN加速器,通常先在多核CPU和GPU上通过Caffe、Pytorch和Tensorflow等离线训练系统训练CNN模型,再编译到目标加速器上。尽管这一两步过程看似自然且已被广泛应用,但它假设加速器在CPU和GPU上的行为可被完全建模。这一假设并不成立:当电路工作在超频或受易故障航天环境等影响的“不稳定”模式时,CNN加速器的行为是不确定的。加速器的确切行为由芯片制造以及工作环境或状态共同决定。在这种情况下,直接将常规离线训练结果应用于加速器可能导致显著的精度损失。为解决该问题,我们提出面向“不稳定”CNN加速器进行训练,在同一框架中将“未确定行为”与数据一同学习。其基本思路是从离线训练模型出发,通过额外的加速器专用训练将不确定的电路行为整合进CNN模型。该微调训练使CNN模型对电路不确定性不那么敏感。我们将该设计方法应用于一个超频CNN加速器和一个故障加速器。根据在ImageNet子集上的实验,当CNN加速器处于极端超频时,加速器专用训练可使top 5精度最高提升3.4%,平均提升2.4%。当加速器暴露于故障环境时,在最严重的故障注入下,top 5精度最高提升6.8%,平均提升4.28%。

关键词

引用

@article{arxiv.1812.01689,
  title  = {Training for 'Unstable' CNN Accelerator:A Case Study on FPGA},
  author = {KouZi Xing},
  journal= {arXiv preprint arXiv:1812.01689},
  year   = {2018}
}