当前位置 >>  首页 >> 研究成果 >> 科研项目

国家自然科学基金委重点项目 “差错容忍计算器件基础理论与方法”(批准号61432017)成果科普性介绍和展示

撰稿: 摄影: 发布时间:2020年03月10日

 

项目名称:差错容忍计算器件基础理论与方法(批准号61432017)

项目负责人:李华伟研究员(中国科学院计算技术研究所)

项目时间:20151-201912

项目主要完成单位:

中国科学院计算技术研究所

同济大学

香港中文大学深圳研究院

 

项目成果摘要

 集成电路技术发展面临功耗问题等严峻挑战,在应用质量约束下,差错容忍计算成为实现低功耗/高能效设计的重要趋势。本项目围绕差错容忍计算器件提出了系列创新方法

1考虑差错容忍的电路可靠设计方面,创新地提出了众核处理器可靠设计和性能优化方法CoreRank、面向近阈值计算的片上存储器差错恢复技术等,为众核处理器的健康监测和选择性容错提供了有效解决方案,在保障可靠性的前提下优化了应用程序的性能和功耗。

2)在面向近似计算的高能效体系结构和电路设计方面,创新地提出了性能/精度可控的神经网络加速器体系结构和电路设计自动化方法DeepBurning、针对片外存储器存取的精度缩放方法等,支持可重构和可配置的卷积神经网络硬件加速器设计,为精度可控的高能效体系结构和电路设计提供了有效解决方案。

3)在高层的差错容忍管理和优化方面,创新地提出了结合了近似模式调整和回卷恢复的近似运算框架ApproxQA、满足实时性与计算精度的近似计算调度方法等,在确保应用服务质量的前提下,有效节约了能耗。

4)在考虑差错容忍的功能验证方面,创新地提出了深度神经网络IP的功能测试用例生成方法等,能够以较少的测试用例达到穷尽测试的效果。

5)在考虑差错容忍的集成电路测试方面,创新地提出了针对基于阻变式存储器的深度学习加速器的故障检测和性能恢复方法 RRAMedy等,相对传统测试方法取得了更好的硬件故障检测率,并提升了故障检测实时性。

本项目还研制了支持近似计算的神经网络加速芯片自动生成平台(DeepBurning)、针对大规模数据检索的高速认知存储系统(Cognitive SSD)等,进行项目创新技术的验证和应用。

项目提出的创新方法,在满足智能计算分类精度的前提下,获得芯片乃至计算机在能耗、性能、吞吐率、面积、存储密度、可靠性、成品率等方面的优化,能够显著提高计算能效、降低设计成本,为应对新一轮智能物联网(AIoT)对低功耗智能处理器的大量定制需求提供了系列关键技术,具有重要的科学意义和应用前景。

本项目合计在国内外重要期刊和领域著名IEEE/ACM国际会议发表学术论文150余篇,含SCI期刊论文40余篇,其中IEEE/ACM期刊论文28篇;EI期刊和EI国际会议论文论文110余篇。合计受理发明专利20余项。


项目成果展示

1)性能/结果质量可控的神经网络加速芯片自动生成平台(DeepBurning

当前神经网络加速芯片设计存在着如下几个关键挑战:

1)面向神经网络结构定制的芯片设计,效率高但必须随着神经网络算法变化而做相应改变,而当前神经网络模型非常活跃,尚未收敛归结为特定模型,变动成本较高。

2)相比于软件,芯片设计和修改优化都较难,通过研制的高层自动综合工具,能实现“软件人员设计硬件”目的,大幅提高了其易用程度。

3)芯片设计周期和形成生产力周期都很长,ASIC芯片设计周期一般为2年左右,如果能实现自动化工具并结合FPGA形态加速芯片,能将设计和形成生产力周期缩短为6个月左右,这对使用者非常有吸引力。

DeepBurning是一套依据神经网络拓扑结构通过创新关键算法直接生成电路结构的自动映射算法,并形成配合FPGA实现的全流程软件工具链,达到实现“依据神经网络拓扑结构直接生成计算加速电路”的目的。DeepBurning的主要框架如下图所述,所研制的算法和工具链,输入是神经网络拓扑结构描述,这种描述通过一种高层次文本语言进行表述,结合FPGA的实现流程,生成对应的FPGA芯片。

 



DeepBurning初步实现了以当前使用较多的Caffe神经网络模型配置文件为输入,通过算法引擎,自动生成FPGA网表,相关工作发表在2016年集成电路设计自动化领域顶级会议Design Automation Conference上。在研究过程中,计算所项目团队基于DeepBurning框架,采用基于Xilinx Zynq706芯片,以及Dini开发板,研制了神经网络处理器开发平台。

下图是采用DeepBurning所开发的FPGA神经网络处理器系统原型,以及基于该系统原型运行图片识别应用的实例。


  

2)针对大规模数据检索的高速认知存储系统(Cognitive SSD

国际数据公司IDC报告称,到2025年,全球数据总量将达到163ZB,其中非结构化数据,例如图片,音频,视频等,占比为80%。然而,一方面,CPU在应对深度学习相关的密集矩阵运算性能十分低,另一方面,传统的以计算为中心的结构在处理庞大的非结构化数据时,存储在磁盘中的数据必须跨越多层存储系统到达计算单元,导致数据迁移路径过长,从而引起大量的数据迁移功耗。据统计,应用中数据迁移产生的功耗占总功耗的62.7%。因此,多个工作提出了以数据为中心的计算结构,通过在存储控制器中嵌入处理单元,使得存储设备从传统的只具备单一的读写功能转变为读写和计算处理兼备的存储设备,进而使得存储器能够实现计算功能,缩短数据迁移路径,降低数据迁移造成的功耗。近数据计算通过在闪存存储控制器中嵌入流处理器、并且辅以SSD控制器内部的计算单元来实现较为复杂的运算,例如线性回归、字符串匹配等操作。针对这些计算实现了2-4倍性能提升,并减少5-27倍功耗。然而,现有的这些研究或者工程工作采用的针对计算量较小的应用设计的嵌入式通用处理器、流处理器和可编程芯片,无法满足人工智能和深度学习所需的庞大算力。在向非结构化数据处理时,仍然需要把数据传送到CPU才能完成。因此,本项目以在存储控制器中计算的结构为出发点,提出了高速认知存储系统Cognitive SSD,通过在存储控制器中或者数据传输路径上嵌入神经网络智能计算单元,实现近数据的智能计算分析。该智能计算单元的设计结合了闪存控制的结构,可充分利用闪存内部的带宽。另外,该神经网络智能计算芯片是针对非结构化数据处理领域中采用的深度学习技术定制的计算芯片。与之前的工作相比,该芯片能够提供强大的算力,并且融合了神经网络稀疏化技术,能够在提高运算性能的同时,保持高精度。

Cognitive SSD的主要创新点包括:

a)计算和存储一体的认知存储设备:该认知存储可充分利用存储内部闪存带宽,并提供高性能、低功耗的数据分析能力,使得常见图像和人工智能运算在航天器内实现实时处理,无需把数据发送到地面处理中心。

b)在存算一体中嵌入AI算力:在SSD主控器基础上嵌入NPU(深度学习处理器),结合SSD内部高速带宽,提供图像识别、场景识别和目标检测等非结构化数据的运算,在SSD内部实现近数据的AI计算。

c)数据搬运降低,能效提高:以数据为中心,数据存储在不同的存储级别中,处理引擎围绕数据运行,减少了数据的迁移次数。同时也能减少不必要的数据读写,提高存储设备的寿命和航天的使用寿命。

d)存算一体系统提供的内部算力,降低了地面数据处理中心所需处理的数据量,有利于地面数据处理中心部署更大规模更加精准的计算程序,为系统带来更高的识别精度。

Cognitive SSD的软件结构。应用程序调用认知存储API来控制认知存储。该API除提供了传统的读数据、写数据、擦除数据等操作外,还提供了启动计算任务、查询计算单元状态、关闭计算任务等计算相关的API。通过这四个函数接口,用户可以在应用程序中直接调用相应的函数来控制认知存储中的计算单元。API可以将逻辑地址通过LVDS接口发送到认知存储的控制逻辑单元中,该控制单元将逻辑地址转化成物理地址后,将数据从闪存中读出或者写入闪存。当计算任务到达后,计算单元可以直接从闪存中获取数据,不需要经过片上存储SRAM。在计算任务运行时,上层程序可以通过获取计算单元的状态来决定是否继续下发计算任务。当计算任务完成后,上层可以下发关闭计算任务来关闭计算单元,使得计算单元进入休眠状态,避免额外的动态功耗。

下图为采用认知存储系统搭建的大规模图像数据检索系统的web用户界面,用户可以发送图片数据直接通过网络传输到认知存储器当中,认知存储器收到图片之后会主动提取输入图片的视觉特征,通过深度学习与图搜索在固态存储器中高速搜索到与目标特征接近的相关关键数据,从而大幅度减少固态硬盘与处理器和网关之间的数据交换。


 

Cognitive SSD的硬件结构。硬件系统包含LVDS接口、计算/分析单元、SRAMSSD 控制单元和闪存控制器。这里计算/分析单元、SSD控制单元和闪存控制器可以在同一个FPGA芯片上实现。考虑到SRAM存储空间有限的情况,计算分析单元被设计成既可以与SRAM互相传输数据,同时也可以直接和闪存控制器相连进行数据交换。因此,存储在闪存中的数据,从闪存中读出后,可以直接送到计算单元进行处理,无需再经过SRAM层和LVDS接口,避免了数据的长距离迁移。同时,为了提高数据的处理速度,闪存控制器中也嵌入了一个计算单元用于数据的并行处理。下图为基于FPGA实现的认知存储器原型系统。


 

附件下载: