cnn 准确率无法提升_清华类脑芯片再登Nature: 全球首款基于忆阻器的CNN存算一体芯片...

90c3c1c1154f339a71d65f77a210b6dd.png

传统计算架构中计算与存储在不同电路单元中完成,造成大量数据搬运功耗增加和额外延迟,被认为是冯·诺依曼计算架构的核心瓶颈。

人类的大脑却并非如此,而是直接在记忆体里计算。被认为具有「存算一体」潜力的忆阻器,因而成为类脑计算领域的热门器件,被寄予提高算力,突破技术瓶颈的厚望。

撰文 | 四月

2 月 27 日机器之心获悉,据清华大学新闻网消息,该校微电子所、未来芯片技术高精尖创新中心钱鹤、吴华强教授团队与合作者成功研发出一款基于多阵列忆阻器存算一体系统,在处理卷积神经网络(CNN)时能效比前沿的图形处理器芯片(GPU)高两个数量级。

该项研究于 1 月 29 日在顶尖学术期刊《自然》杂志(Nature)在线发表,题为《Fully hardware-implemented memristor convolutional neural network(完全由硬件实现的忆阻器卷积神经网络)》,详述了基于忆阻器阵列芯片实现卷积网络的完整硬件过程。

通过这项工作中开发的阵列芯片集成了 8 个包含 2048 个忆阻器的列阵,并构建了一个五层的卷积神经网络进行图像识别,精度高达 96% 以上。

f71b7b0f7718e866ee5b1dda10a50049.png

基于多个忆阻器阵列实现的存算一体化开发板

该阵列芯片以忆阻器替代经典计算机底层的晶体管,以更小的功耗和更低的硬件成本大幅提升计算设备的算力,在一定程度上突破了传统计算框架「冯诺依曼瓶颈」的限制:大幅提升算力的同时,实现了更小的功耗和更低的硬件成本。

90c3c1c1154f339a71d65f77a210b6dd.png

清华 LEMON 团队成员:员高滨、姚鹏、吴华强、张清天、唐建石(从左到右)图片来源:清华新闻网

目前,何谦教授和吴华强教授领导了清华大学的LEMON实验室(The Laboratory of Emerging Memory and Novel Computing,新兴存储与新型计算实验室),在过去的几年中一直致力于基于忆阻器的神经形态计算。该小组在材料和设备工程,工艺开发,电路和芯片设计以及算法和系统演示方面取得了显著成就。

01

来自忆阻器的启发

所谓忆阻器,全称记忆电阻器(Memristor),是继电阻、电容、电感之后的第四种电路基本元件,显示磁通与电荷之间的关系,最早由加州大学伯克利分校教授蔡少棠在 1971 年预言存在,惠普公司在 2008 年研造成功。

简言之,这种组件的的电阻会随着通过的电流质而扭转,而且就算电流进行了,它的电阻依然会停留在之前的值,直到承遭到反向的电流它才会被推回去,就是说能「记住」之前的电流质。

88210a8267cb906d6870d8a42c801663.png

受人脑启发,忆阻器设备被组织成交叉点阵列,以实现大规模并行的内存计算并提高电源效率。

这种巧妙的机制和我们大脑中的生物突触和神经元有相仿之处,同时忆阻器还具有尺寸小、操作功耗低、可大规模集成(三维集成)等优点,可以制成高密度交叉点阵列,以通过物理定律实现内存内部大规模并行乘积计算(CIM)。

02

首个基于忆阻器的 CNN 存算一体芯片

1bb31952cf509c954e73f6c3146ef131.png

基于多个忆阻器阵列的存算一体化计算架构

在该项研究中,清华团队提出用高能效比、高性能的均匀忆阻器交叉阵列处理神经卷积网络(CNN),网络共集成了 8 个 基于忆阻器的处理单元,每个 PE 单元中包含 2048 个单元的忆阻器阵列,以提升并行计算效率。采用基于 ARM 核的动态随机存取存储器。

2e3626181c90c92f31855656768c6566.png

右图展示了该阵列极具可重复性的多级电导率状态,成功证明了存算一体架构全硬件实现的可行性。

每个忆阻器与晶体管采用漏级端相连,即 1T1R 结构。核心 PCB 子系统皮遏止八块忆阻器阵列芯片,每个忆阻器阵列具备 128 × 16 个 1T1R 单元。在水平方向上共有 128 条并行字线和 128 条源线,在垂直方向上共有 16 条位线。

此外,研究者还提出了一种高效的混合训练方法,以适应设备缺陷,改进整个系统的性能。研究者构建了基于忆阻器的五层 mCNN 来执行 MNIST 图像识别任务,识别准确率超过 96%。

b5b50c8bd7642f8a4e19d44285416479.png

系统针对 ResNET-56 等大型网络的可扩展性

除了使用不同卷积核对共享输入执行并行卷积外,忆阻器阵列还复制了多个相同卷积核,以并行处理不同的输入。相较于当前最优的图形处理器(GPU),基于忆阻器的 CNN 神经形态系统的能效要高出两个数量级以上,并且该系统可扩展至大型网络,如残差神经网络(ResNet)。

该结果或可促进针对深度神经网络和边缘计算提供基于忆阻器的非冯诺伊曼(non-von Neumann)硬件解决方案,大幅提升计算设备的算力,成功实现以更小的功耗和更低的硬件成本完成复杂的计算。

03

攻关两大难点

据清华大学新闻网介绍,当前国际上的忆阻器研究还停留在简单网络结构的验证,或者基于少量器件数据进行的仿真。基于忆阻器阵列的完整硬件实现仍然有很多挑战。

比如,器件方面,需要制备高一致、可靠的阵列;系统方面,忆阻器因工作原理而存在固有缺陷(如器件间波动,器件电导卡滞,电导状态漂移等),会导致计算准确率降低;架构方面,忆阻器阵列实现卷积功能需要以串行滑动的方式连续采样、计算多个输入块,无法匹配全连接结构的计算效率。

据《北京日报》报道,攻关期间,材料和工艺集成是最大挑战,「做这种新的芯片需要观察大量统计规律,但当时没有大型代工厂支持,我们只能在实验室摸索,有段时间有点崩溃,每次做完实验,结果都很分散。」吴华强在接受采访时说,后来,他们与中科院微电子所、北京大学等单位共同合作,终于解决了难题。

「我们改变材料上覆盖层的组分,通过调试热导率和电导率,调整材料内部导电系数的强弱,来实现优化。」吴华强接受《北京日报》的采访时说。

目前团队已经与一家商业硅代工厂合作,开发了一种混合集成途径,以制造具有优化材料堆栈的大型阵列忆阻器,作为灵活的硬件测试平台。

另一方面,为解决器件固有缺陷造成的系统识别准确率下降问题,团队提出了一种新型的混合训练算法,仅需用较少的图像样本训练神经网络,并微调了最后一层网络的部分权重。

1b18b1b5340f00920c4009ba18364298.png

基于忆阻器的五层 mCNN 网络

据论文介绍,团队成功实现了一个完整的五层 mCNN,用于执行 MNIST 手写数字图像识别任务。优化后的材料堆栈(material stack)能够在 2048 个单晶体管单忆阻器(one-transistor–one-memristor,1T1R)阵列中实现可靠且均匀的模拟开关行为。

使用该研究提出的混合训练机制后,实验在整个测试集上的识别准确率达到了 96.19%。

e45bec34ae66b5df456fa460580e1e47.png

在 mCNN 上进行混合训练

此外,将卷积内核复制到三个并行的忆阻器卷积器可将 mCNN 延迟大约降低了 1/3。高度集成的神经形态系统通过缩小基于忆阻器之间的卷积计算和全连接 VMM 之间的吞吐量差距,为大幅度提高 CNN 效率提供了一个可行的解决方案。

04

线下实测精度约为 95%

本月,在集成电路领域最重要的会议 ISSCC 上,研究小组针对研究成果进行了报告,芯片实现了多层感知器神经网络,用于对 MNIST 数据集中的手写数字图片进行分类。

6abc0d946c289bf88df0258843b66b4b.png

用于分类 MNIST 手写数字图片的芯片和演示系统

该芯片在芯片上集成了将近 16 万个忆阻器以及所有外围电路,并实现了每瓦每秒 78.4 兆兆位(78.4TOPS/W)运算的超高能效。运行功率低至 40 毫瓦,对 MNIST 图像进行分类的识别精度约 95%。

目前,团队正在致力于开发更复杂的存算一体化芯片,并扩大忆阻器阵列的尺寸,以进一步利用忆阻器提高系统性能。吴华强在接受《北京日报》采访时表示,「我们还计划构建包括忆阻器、存算一体芯片到存算一体编译器等在内的全新计算机系统。」

展望未来,用忆阻器构建「大脑」计算机还有很长的路要走,因为在硬件和软件方面仍然存在许多挑战。而有了体积小、功耗低、算力强的存算一体芯片,手机等移动终端就能运行人工智能应用,让人工智能更懂人类不再遥远。

钱鹤、吴华强团队认为,这种跨学科的研究与协作对于突破传统思维并建立与现有系统完全不同的计算系统至关重要,这将有望通过这种强大的忆阻器彻底改变 AI 硬件。

6c25d284a07954038c7b24c64067b900.png

参考链接:

1.https://news.tsinghua.edu.cn/publish/thunewsen/9671/2020/20200225110757772216750/20200225110757772216750_.html

2.http://bj.people.com.cn/BIG5/n2/2020/0227/c349239-33831801.html

3.https://scihub.bban.top/10.1038/s41586-020-1942-4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 几个字段中某个字段大于0其他字段不再进行统计?_如何深入理解MySQL 8.0直方图?...

MySQL8.0 新功能直方图,继承于Oracle ,MairaDB的实现方式。 那下面从mysql角度认识下,直方图是什么。先看下官方直方图的实现方式。 从上图上可以看到原来是ANALYZE命令。先了解一下MySQL里 ANALYZE命令到底有什么用。ANALYZE在MySQL里提交一…

godaddy修改php版本,Godaddy美国主机Plesk面板修改PHP版本教程

由于不同的需求,我们站长朋友们建站所用的网站程序也不尽相同,有PHP、ASP和ASP.NET等。Godaddy美国主机作为全球最大域名主机商,当之无愧成为站长使用最多的主机。不少朋友应该都知道不同的网站程序对于PHP和ASP的版本要求又不一样&#xff0…

mysql数据结构_mysql的底层数据结构

一.数据结构1. 二叉树特点:左侧子节点比父节点小,右侧子节点比父节点大(对于同一个父节点下的两个子节点)缺点:对于一直递增得数据不能存在该数据结构中,会变成链表,不能降低树的高度图 1-1图1-22. 红黑树特…

winform判断线程有没有完成_并发编程系列1:线程池的架构实现、大小配置、及四种线程池使用...

△ 公众号回复关键词“架构” 即可领取《1500BAT架构及面试专题合集》本篇为线程池系列文章之一,不经常使用线程池的童鞋,还有对几种线程的使用不甚了解的童鞋,可以读一下此文,并关注后续线程池相关文章连载。 本篇内容大纲&#…

python枚举是什么意思,什么是枚举python

枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。Python 的原生类型(Built-in types)里并没有专门的枚举类型,但是我们可以通过很多方法来实现它,例如字典、类等&#x…

拖拽批量上传图片如何保证 顺序_图片压缩神器和图片分割工具,美工设计和运营终于得救了...

想要快速互联网干货技巧?请(置顶)星标我们好不容易写好文案,设计好长图海报,上传到微信公众号,竟然提示上传图片体积不得超过5M,怎么办?怎么办?不得已,只好又返回Ps里降低…

php将word转txt,PHP如何将将word文件转为pdf

PHP将word文件转为pdf的方法:首先修改【php.ini】,并重启环境;然后安装微软office套件;最后配置office组件服务即可。PHP将word文件转为pdf的方法:1、修改php.ini添加:extensionphp_com_dotnet.dll去除注释…

redis一般缓存什么样数据_SpringBoot+Redis轻松实现数据缓存

1.为什么需要缓存为什么需要缓存,我相信搞开发的都能回答出来,无非就是为了降低数据库压力,节约资源,提升系统性能。而事实上也确实是,归根结底就是降压,高并发,高性能。不过,大厂里…

红旗linux安装oracle,Redflag Linux安装Oracle 10gR2 RAC记事

Redflag Linux安装Oracle 10gR2 RAC记事Kamus遇到过:SQL> startup nomountORA-27102: out of memoryLinux-x86_64 Error: 28: No space LEFT ON device这和内核参数 shmall 有关,修改设置 kernel.shmall 16475728 。后来离开没多久,客户打…

springboot开启debug日志_SpringBoot 如何优雅的打印日志?

一、打印日志注意事项1、使用 Slf4j 注解这个代码相信大家都很熟悉,你是否曾经看到或者自己因 copy 而 没有改变“当前类名”?如果你们项目用到 lombok ,可以在类上使用 Slf4j 注解,省去手动写这行代码。2、不建议使用的输出为什么…

windows 映射文件会释放内存吗_Windows系统共享内存管理

一 进程逻辑空间 物理空间​如上图所示,每个进程都有自己的逻辑空间,这些逻辑空间,会被映射到具体的物理空间中。每个进程的逻辑空间都是彼此隔离,相互独立不受干扰的。但是他们都会被映射到同一个物理空间去,当其所映…

linux 文件的组织,Linux文件组织和目录结构

资料:https://www.shiyanlou.com/courses/running1 Linux目录结构说明可以使用tree来查看目录结构sudo apt-get install tree 安装treetree / 查看根目录的结构将目录定义为四种交互作使用的形态:2 路径. 表示当前目录.. 表示上一级目录 - 表示上一次所在…

jeecg 导出的excel不能使用公式_微软:Excel公式是世界上使用最广泛的编程语言...

喜欢就关注我们吧!文|一君微软近日推出了一项 Excel 公式构建的新功能 LAMBDA,正则测试阶段。LAMBDA 允许使用 Excel 自身的公式语言自定义功能,而过去,Excel 中需要通过 JS 等语言编写自定义函数。同时,LAMBDA 还可以…

voip 音频采集时间_蓝牙音频续航监测系统展会现场演示

|点击【美格信】关注☝大家好,我是美格信公众号主编:小M,今天的2020(秋季)亚洲蓝牙耳机展上,我们美格信现场展示了发布的新品-MAGNUM麦金纳蓝牙音频续航监测系统。不过有很多小伙伴因为时间问题,没机会来现场参观&…

linux 运行scrapy,python 文件 运行 scrapy

写了一个scrapy,程序可以跑,没有任何问题。爬下30个网站的body存入json文件,并且保存为test.json如果test.json存在就保存到一个新建的test1.json新建了一个python文件叫check.py,对比两个文件的hash值,如果有不一样&a…

大整数减法c语言_3.2 C语言运算符和表达式

01基本的算术运算符1、正号运算符2、-负号运算符3、*乘法运算符4、/除法运算符5、%求余运算符6、加法运算符7、-减法运算符读者应该特别注意和-在不同情况下的含义02自增、自减运算符1、i,--i在使用i之前,先是i的值加(减)12、i&am…

如何查看linux 是否安装软件包,linux 查看软件包是否安装 linux查看软件包

Linux下怎样检查,如何查看某软件包是否已经安装1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。rpm -qa | grep ruby2、以deb包安装的,可以用dpkg -l能看到。如果是查找指…

trueOS能装linux软件,TrueOS 是什么

TrueOS是一套基于FreeBSD-CURRENT、桌面取向的类Unix操作系统。主要目的是创建一个易于安装软件的图形用户界面,借由提供KDE SC、Lumina、MATE、Xfce等桌面环境使其容易上手。TrueOS 是一套基于 FreeBSD-CURRENT、桌面取向的类 Unix操作系统。主要目的是创建一个易于…

错误: 非法的表达式开始_虽然这两个C语言宏定义很简单,但是能在程序运行前找到错误代码...

今天翻看 Linux 内核源代码时,发现两行非常有意思的C语言代码,如下:#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))有意思的宏这两行C语言代码有什么…

linux下数据库时间格式,Java编程时间格式与数据库中时间格式转化

关于编程语言中的时间格式和关系型数据中的中时间格式问题的转化一直都是个简单而又不得不权衡的问题,这牵扯到数据库设计和SQL编程和应用程序中时间格式数据的处理的编程,两者总能够交缠在一起。关于Java中的时间格式和数据库中的时间格式转换在这里先写…