与6位图灵奖得主和100多位专家

共同探讨人工智能的下一个十年

长按图片,内行盛会,首次免费注册


计算机体系结构领域国际顶级会议每次往往仅录用几十篇论文,录用率在20%左右,难度极大。国内学者在顶会上开始发表论文,是最近十几年的事情。

ASPLOS与HPCA是计算机体系结构领域的旗舰会议。其中ASPLOS综合了体系结构、编程语言、编译、操作系统等多个方向,HPCA则主要针对高性能体系结构设计。过去的三十多年里,它们推动了多项计算机系统技术的发展,RISC、RAID、大规模多处理器、Cluster架构网络存储、机器学习加速器等诸多计算机体系结构领域的重大技术突破,都最早发表在这两个会议之上。

2020年4月12日上午,北京智源人工智能研究院和北京大学高能效计算与应用中心联合主办了“AI芯片体系架构和软件专题报告会”,五位学者结合在2020年计算机体系结构顶级会议(ASPLOS和HPCA)中发表的最新研究成果,针对AI芯片和体系结构领域的几个关键挑战:芯片加速、能耗和反对抗攻击等,详细介绍了他们的最新思考和解决方案。超过1900名观众在线观摩了学者们的报告。报告主题分别是:

  • 本次报告会主席、智源青年科学家和北京大学研究员梁云《FlexTensor: An Automatic Schedule Exploration and Optimization  Framework for Tensor Computation on Heterogeneous System》

  • 美国南加州大学PhD Candidate骆沁毅《Prague: High-Performance Heterogeneity-Aware Asynchronous Decentralized Training》

  • 清华大学交叉信息研究院助理教授高鸣宇《Interstellar: Using Halide's Scheduling Language to Analyze DNN Accelerators》

  • 智源青年科学家、中国科学院计算技术研究所副研究员陈晓明《Communication Lower Bound in Convolution Accelerators》

  • 中国科学院信息工程研究所研究员和信息安全国家重点实验室副主任侯锐《DNN Guard: An Elastic Heterogeneous Architecture for DNN Accelerator against Adversarial Attacks》

本篇是此次活动演讲内容的第三篇文章,今天我们将介绍中国科学院信息工程研究所研究员和信息安全国家重点实验室副主任侯锐的《DNN Guard: An Elastic Heterogeneous Architecture for DNN Accelerator against Adversarial Attacks》(DNN Guard: DNN加速器防御对抗攻击的弹性异构体系结构)。

侯锐,中国科学院信息工程研究所研究员、博导,信息安全国家重点实验室副主任。主要研究方向包括处理器芯片设计与安全、AI芯片安全与数据隐私,以及数据中心服务器等领域,长期从事国产自主可控的高性能处理器芯片的研制和开发,主持、参与了多款芯片的设计研发工作。

本次报告中,侯锐带来了他与中科院、南加州大学同事们的合作成果——DNN Guard,该成果已经发表在ASPLOS 2020上。侯锐在报告中认为,深度神经网络(DNN)容易受到对抗样本的攻击,但现有的DNN加速器在对抗样本攻击检测中会出现成本、计算效率和信息安全性等诸多方面的问题。而且,现有的DNN加速器也无法为检测方法所需的特殊计算提供有效的支持。为了应对这些挑战,侯锐和他的同事们提出了一种弹性异构DNN加速器体系结构DNNGuard,它可以有效地协调原始DNN网络(目标网络)与检测算法或检测网络(对抗样本攻击的网络)同时执行,该体系结构将DNN加速器与CPU核心紧密地耦合在一个芯片中,以实现高效的数据传输和信息保护;此外,它还支持非DNN计算,并允许CPU核有效地支持神经网络的特殊层,并通过一种动态资源调度机制,可以减少片外通信量,提高资源利用率。

整理:智源社区李泽远、罗丽

一、 研究的背景与动机

图1:深度学习安全性研究概况

在进入DNNGuard的介绍之前,侯锐简单介绍了深度学习安全性领域近年来的发展状况。他总结到,目前有一类广泛使用、使用性强的攻击,叫对抗样本攻击。侯锐举了三个例子:图1中,把鸭子和噪声混合之后,人肉眼看到的还是鸭子,但是机器会把鸭子识别为马;穿灰色衬衫的人的图像进行翻转后,机器的识别就会失效;在语音领域,一段歌曲加入噪声之后会被自动驾驶的系统识别为打开车门或者刹车等类似的危险动作。简而言之,对抗样本攻击是很强的一类攻击。

图2:对抗样本攻击检测方法

目前主流的对抗样本攻击检测方法可划分为三大类别:

第一类是用深度神经网络作为检测机制;

第二类是使用传统的机器学习方法,比如决策树、随机森林等;

第三类是将深度神经网络与机器学习方法相结合,即混合检测方法,这也是当前最新的一类。

可以看到,对抗样本攻与防的问题层出不穷,但是到目前为止,尚未出现一个适合所有问题的检测方法。从趋势上来说,DNN和机器学习的有效结合以用于对抗样本攻击检测将是未来的一个大的趋势。

图3:对抗样本攻击检测中存在的问题

那么在真实的场景下,如何进行对抗样本的检测呢?目前大部分的算法是基于GPU的运算方法,但是越来越多的深度学习加速器是ASIC加速器。由于ASIC端还没有太多深入的工作,这也导致对抗样本检测存在较大问题。

在检测领域,目前主要存在如下两大问题:

第一个问题是成本和效率上的问题。无论是 GPU还是ASIC加速器,用两块显卡来做检测问题时,成本比较高昂。此外现在ASIC加速器大部分只支持几类神经网络,不是一个通用的机器学习的加速器或者通用的人工智能加速器。

第二个问题是安全性问题。目标网络和检测网络二者必须是紧耦合的结构,不能是松耦合的。举个例子,检测网络与目标网络分别部署在同一个主机的两块显卡上时,若检测网络识别出危险需要目标网络进行防御,当数据通过操作系统传输到目标网络的显卡上时,中间的通信道路是不安全的,如果操作系统被攻陷或者用户被攻陷可能就会出现风险。所以目标网络和检测网络二者必须是紧耦合的结构。

图4: 传统目标网络和检测网络工作原理

上图是传统目标网络和检测网络工作原理图。目标网络进行逐层计算时,中间的某几层需要检测网络读取OF Map,获得中间数据后,检测网络开始运行。过程根据算法的不同,可能是目标网络运行几层,然后读取中间数据检测网络并开始运行,也有可能目标网络和检测网络可以同时运行。简而言之即是在目标网络运行过程中,或并行或串行将数据读取出来进行分析,最后检测网络则会判断输入的查询是否安全,如果查询被判定为噪声最终的结果将不会被输出。

基于上面的应用场景,对硬件提出了三大方面的需求:

1. 共享需求。硬件需要在两个网络之间支持高带宽的数据共享,主要是高带宽高效率地访问OF Map;

2. 弹性需求。硬件设计时需要有一定的通用性,当不知道检测网络和目标网络所需资源时,可以弹性地对资源进行划分;

3. CPU需求。ASIC的加速器都是PE,支持不了机器学习的算法,因此需要一个异构的体系架构来运行机器学习检测算法。

图5: DNN 加速器设计目标与特性

因此,现在需要重新考虑安全的AI DNN加速器。设计目标是开发一个能够高效地支持目标网络和检测机制同时运行的新的结构,且这个结构应该足够通用,并适应不同的检测算法。而这就是DNNGuard, 一种抵御对抗样本攻击的异构的、弹性深度神经网络加速器架构。

二、 DNNGuard概览

图6:DNNGuard结构图

图6为DNNGuard结构图,灰色部分是传统经典的DNN加速器,黄色部分侧是新设计的部分。

DNNGuard具有三大特性:

1. 紧耦合。这是一个异构架构,DNN旁有一个小的CPU的核,用于运行传统的机器学习算法。在PE阵列上进行了动态划分,一部分运行检测网络,一部分运行目标网络;

2. 任务集的数据通信和共享机制。目标网络和检测网络需要做高带宽的数据通信,如果在内存里进行是不高效的。我们希望有更高效的数据支持,更高效的硬件支持,能够充分利用本地数据,提供更高的并发支持,支持一些Corner Case的数据依赖关系;

3. 任务级的同步。目标网络会让检测网络进行等待,或检测网络会让目标网络进行等待。

 

三、DNNGuard微结构设计与实现

在了解了DNNGuard的结构图及其特性后,侯锐介绍了DNNGuard在微结构设计中需要考虑的三个主要问题。

1. 如何进行弹性的片上缓存,怎样把片上缓存设计得可以高效地支持目标网络和检测网络的同时访问?

侯锐认为,弹性Buffer是由一大堆SRAM Bank组成的,SRAM Bank通过资源配置将其划分为目标网络和检测网络,对于目标网络,通过Double Buffer的设计来增加并发性提高效率。为了进行访问,需要多个Bank来组成一个片上路由的网络。具体为,每个SRAM都有一个Bank ID具体去做路由和访问特定的地址,以此来实现动态划分。

图7:弹性片上缓冲器

在图7的目标网络中,2个NBIn_target和4个NBOut_target都是由Double Buffer组成的,每次都会产生不同的应用场景,但其核心方法是通过Bank ID和路由机制来实现动态划分。对于出现的Corner Case,比如中间数据Buffer放不下必须要写到片外时(尽管这种情况会比较少,但也是做硬件所需要考虑的),要在每个Buffer加上一个State寄存器去进行控制,比如在没有读完目标网络之前,检测网络不能再去写,所以需要利用full State状态位去控制目标网络。

2. PE阵列怎样去做弹性划分?

图8: 具有弹性PE结构的DNN加速器

典型的PE阵列有累加器和乘加器,需要做一个Switch的单元动态划分,比如在图8中需要为Mac(地址表)单元上面加一个交换开关,选择来自多个地方的输入,包括累加时需要做输出的选择,即在多个地方写时,可以通过路由Logic(逻辑),也就是最开始编译设定的指令,来支持动态划分。

3. CPU和PE之间如何进行通信?

图9:事件队列通信机制

在机器学习中,碰到PE阵列支持不了的算法时,需要通过哈希、SVM等将Event控制信号通过Event Queue(事件队列)传给CPU核,CPU核通过Completion Queue将信号传输Scheduler,实现二者之间的通信。其格式包括:任务的开始、暂停、继续、停止等等信号和类型。除此之外,因为CPU和PE之间要进行访问,尤其CPU要访问PE上面的Global Buffer(全局缓冲器),因为是在不同的地址空间,所以需要翻译地址的转换单元支持跨空间去读写。在此基础上需要扩展AI指令集。

图10:AI 指令集的扩展

为了支持CPU和PE之间高速的通信同步,指令集的扩展包括三个层面:控制层面、数据层面和配置层面。

1. 控制层面:通过配置指令去配置目标网络和检测网络各占多少PE资源和缓存资源。

2. 数据层面:提供Global Buffer到CPU的读写操作。

3. 控制层面:包含一个Event_Dispatch命令,一个Sync同步命令和一个Polling_Check命令。目标网络在等待检测网络的执行时,需要不停地Polling_Check(轮询检查)状态位,所以会有不同的扩展指令集。

再次回到DNNGuard的结构图中,目标网络和编译网络依照调度器指令发给检测网络阵列,如果检测网络之间可以通过片上缓存共享数据,检测网络通过CPU通道把共享数据发到Core上,通过ATU去访问,最后都是通过Scheduler内的控制器进行通信同步。目标网络和检测网络间控制流和数据流的展示如图11所示。

图11:DNNGuard的运行示例

下面来介绍软件站,DNNGuard的软件站是基于NVDIA-RA来进行扩展。如图所示,输入的是目标网络和检测网络,通过TensorFlow训练好,并通过Converter把数据图和依赖关系提取出来,送到Compiler 中,Compiler里加了一个分析模块Analytical model,该分析模块决定目标网络和检测网络各需要多少资源(需要通过静态划分而不是通过动态划分,动态划分会有各种各样的问题),分析模块通过参数,再通过弹性算法不停地模拟,外面外挂的模拟器可以检测目标网络和检测网络各需要多少资源,最终达到一个值,并给出合理的划分,如果有放不下资源,就需要进行同步通信。

图12:软件站示意图

四、DNNGuard的评估

DNNGuard的评估是基于RISC-V核和NVDLA核,总体来说检测网络要比目标网络小很多。

图13:DNNGuard体系结构的弹性NVDLA和RISC-V的应用

评估实验一:在弹性DNN加速器上运行的目标网络和检测网络

当两个网络同时在DNN和PE阵列上运行时,通过片外的DRAM通信,就是通过优化之后的方案on-chip buffer通信。

图14:弹性NVDLA和SNVDLA的性能比较

实验分析发现:

(1)假定两个网络在硬件资源(PE 和on-chip buffer)相同的情况下,由于扩展的AI指令或弹性资源管理,ENVDLA的速度提高了1.42倍。对应的VGG性能提升1.61倍,因为片外带宽减少了36%;

(2)扩展的AI指令集平均占2.3%。

评估实验二:在弹性DNN加速器和CPU上运行的检测机制比较

当检测网络在PE上运行又在CPU上运行,即采用混合方法时,实验分析如下:

图15:紧密耦合的DNN加速器体系结构的性能改进

与基于片上共享存储器的通信相比,基于片上缓冲区的通信的平均性能提升约为2.04倍,因为DRAM减小了92%。

评估实验三:仅在CPU上运行的非DNN防御方法

图16:CPU上非DNN防御的性能比较

实验分析发现:

检测任务是小型目标网络的性能瓶颈。当目标网络比较小时,检测网络实际上是一个可能的性能评级,因为目标网络太小时,检测网络要进行等待,因此会影响性能。

评估实验四:敏感性分析

结构设计是为了同时支持目标网络和检测网络有效运行,那么单纯运行目标网络其性能会不会也有提升?

图17:敏感度分析实验图

图17表明,实际上可以加速单个任务的执行,在提高PE资源后,单任务的网络性能会持续增长。但对On_Chip Buffer Size和DRAM带宽持续增加到一定阀值后,网络性能的增长效果并不大,所以这部分资源可以进行同时多线程运行检测或者是其它的任务,比如提高并发度。

结语

演讲最后,侯锐总结了他们关于DNNGuard的工作:主要聚焦于怎样在微结构设计的层面支持对抗样本攻击高效的检测,其要点是提供一个异构的、紧耦合的、弹性资源分配的方案,然后在RISC-V核和NVDLA核中进行评估。

Q&A

Q1:关于检测网络训练问题,能不能把检测网络的训练和目标网络的训练融合在一起?

A1:可以,最新的算法就是这么做的,不再分检测网络和目标网络,就是一体化的,我们的Paper从做到录用再到发表的过程中,我们的算法一直是在变化的,有攻有防,不停地攻防博弈,最新的算法确实是一体化的。

Q2:一体化的设计会对架构带来一些什么新的问题?

A2:还有继续优化的空间,我们也在考虑这方面的工作,有进一步的进展再和大家分享。

Q3:RISC-V是用SiFive的IP Core吗?

A3:不是,我们还是用开源的,因为我们主要的研究方向是CPU的安全,我们基于RISC-V开发了一个新的版本,现在马上就要流片了,这个芯片上面我们做了一系列的安全机制。

Q4:请问检测网络和目标网络的计算类型有什么差别?

A4:目标网络是传统的纯粹DNN或者深度学习的内容,但是检测网络可能是DNN也可能是机器学习,还有可能是二者的混合,当传统的经典ASIC的算法无法支持时,就需要做一些改动。

- 活动推荐 -

顶会ASPLOS 新成果解析:用“弹性异构”防御DNN加速器对抗攻击相关推荐

  1. AI新方向:对抗攻击

    https://www.toutiao.com/a6624300476227650051/ 2018-11-16 11:49:03 在调查近几年 AI 领域的过程中,我发现近几年对抗攻击的概念逐渐出现 ...

  2. 加速、能耗与对抗攻击:5位顶会作者解析2020 AI系统关键挑战

    计算机体系结构领域国际顶级会议每次往往仅录用几十篇论文,录用率在20%左右,难度极大.国内学者在顶会上开始发表论文,是最近十几年的事情. ASPLOS与HPCA是计算机体系结构领域的旗舰会议.其中AS ...

  3. 收藏 | 2018年AI三大顶会中国学术成果全链接(附视频、PPT、论文)

    来源:读芯术 本文多资源,建议收藏. 本文为你汇总展示了NLP和信息检索领域的三大国际旗舰会议最新论文成果. 作为自然语言处理和信息检索领域的三大国际旗舰会议,ACL(墨尔本,15-20).IJCAI ...

  4. GreenDao3.0新特性解析(配置、注解、加密)

    Greendao3.0release与7月6日发布,其中最主要的三大改变就是:1.换包名 2.实体注解 3.加密支持的优化 本文里面会遇到一些代码示例,就摘了官方文档和demo里的例子了,因为他们的例 ...

  5. 【转】Silverlight 3 Beta 新特性解析(7)- Child Window和Shader Effect篇

    前提条件: 阅读本文之前请确认你已经安装了如下软件 Visual Studio 2008 (Express) SP1 Silverlight 3 Tools For Visual Studio Mic ...

  6. 从卖冰箱到卖年夜饭,看海尔智家生态品牌新成果

    文/螳螂财经(ID:TanglangFin) 作者/易牟 一顿极富仪式感的年夜饭,怎么少得了家乡味?近日,海尔食联网推出了"年夜饭"套餐,展示了海尔智家在生态品牌上的新成果. 受疫 ...

  7. python3.8新特性 逻辑表达式_Python3.8正式发布!新特性解析在这里

    Python3.8正式发布!新特性解析在这里 诗书塞外 Python程序员 10月14日,Python 3.8 正式版发布.这也意味着一个Python开发周期的结束,和另一个开发周期的开始.Pytho ...

  8. HTML5新的解析顺序,HTML5新表单新功能解析

    HTML5新增了很多属性功能.但是有兼容性问题,因为这些表单功能新增的.我这里做了一个简单的练习,方便参考.如果完全兼容的话,那我们写表单的时候就省了很多代码以及各种判断. HTML5表单新功能解析 ...

  9. JavaScript ES2021 新特性解析

    JavaScript ES2021 新特性解析 新特性列表 String.prototype.replaceAll Promise.any 逻辑运算符和赋值表达式 数值分隔符 Intl.ListFor ...

最新文章

  1. 「树莓派+1万块乐高」打造乐高分类器,树莓派官方转发,网友:我想借来用两天...
  2. Java的this、super和final关键字
  3. JMS学习(4):--Spring和ActiveMQ整合的完整实例
  4. 如何:从Spring 4.0快速入门以构建简单的REST-Like API(演练)
  5. 在没有域环境的情况下配置完整安装的SharePoint2010和2013
  6. Eclipse run configrations 配置
  7. Nhibernate出现No row with the given identifier exists问题的产生原因及解决方法
  8. 实时抓取图片保存到oracle数据库中、读取、注册和卸载服务等等
  9. GitLab使用教程(详细)
  10. 惯量比多少合适_惯量比计算公式
  11. IOS免越狱安装历史版本APP软件
  12. 【分布式开发】之 CAP 原则
  13. c语言扇形打印图片,圆形CD绘制 (扇形)
  14. 《Python编程:从入门到实践》配套资源 官方网站免费下载
  15. java word 颜色设置_如何在Java中为word文档(.doc或.docx)设置背景颜色(页面颜色)?...
  16. pytorch报错“RuntimeError: DataLoader worker (pid 83709) is killed by signal: Bus error. It is .......“
  17. Azkaban环境配置-尚硅谷大数据培训
  18. 记将title(复杂字符串)放入URL时遇到的一些问题(`Model has no value for key ‘[‘`;重定向;中文乱码;URLEncoder;正则替换)
  19. LeetCode 每日一题1006. 笨阶乘
  20. 原型和高保真原型对比

热门文章

  1. python 判断字符串是否包含另一个字符串_强烈推荐:Python字符串(string)方法整理(一)...
  2. rt-thread端口时钟使能_(2)RTThread启动过程分析
  3. revit如何根据坐标进行画线_护肤干货丨抗衰老的护肤品有哪些?如何根据成分进行挑选?(1)...
  4. python表格控件_python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例...
  5. python以垂直方式输出_python学习笔记
  6. 判断数组元素相等 php,php中判断数组相等的方法以及数组运算符介绍
  7. MIC4680-5.0YM-TR详细资料
  8. 开源wkhtmltopdf使用心得 (四)
  9. HDUOJ-------单词数
  10. 使用Ptrace跟踪进程收到的异常信号(信号SIGTRAP是通过traceme后wait得到的)