北大燕博南:下一代AI芯片— 存内计算的硬核与软着陆 | 报告详解
时间:2023-08-17 01:07:00
【专栏:前沿进展】近年来,随着深度学习算法的广泛应用,人工智能方兴未艾,AI相关技术的应用也越来越丰富。AI共同发展的是硬件性能要求的不断提高。今天,传统的CPU,甚至GPU无法满足深度学习算法带来的计算效率需求。因此,人们开始设计基于存储计算的各种新型计算硬件。
本文主要介绍北燕博南京大学人工智能研究所研究员关于存储计算的研究大致可分为两部分:一、如何设计纯硬件?Hardcore IP;二,基于Hardcore IP如何完成从硬件到软件的界面。
本文从青源整理Live第28期视频回放:https://event.baai.ac.cn/activities/178
北京大学人工智能研究所研究员燕博南。2014年于北京航空航天大学获得学士学位,2017年于匹兹堡大学获得电子工程硕士学位,2020年于杜克大学获得电子与计算机工程博士学位,研究领域包括:人工智能芯片的电路与系统及其设计自动化,新兴存储器与存内计算。在国际知名期刊和会议上发表了30多篇论文,其中包括在内DAC、ICCAD、ISSCC、Symposium on VLSI Technology、IEDM、DATE十多篇国际顶级会议的第一作者文章,担任IEEE T-ED、TCAD、TCAS-I、TVLSI等国际学术期刊DAC审稿人等国际学术会议, CCF-DAC'2021的Special Session Chair,与DAC2022年存储/近存计算TPC成员。
讲者:燕博南
整理:牛梦琳
编辑:李梦佳
01
内存计算简介
近年来,随着深度学习算法的广泛应用,AI在各种规格的平台上,相关技术的应用也越来越丰富。在部署之前,深度模型需要提前训练,然后直接将待处理数据输入模型以获得结果。AI算法会导致存储单元和计算单元之间大量数据吞吐,因此需要加速。而传统的CPU,甚至GPU人们开始设计各种新型的计算硬件,不足以满足这种性能需求。
这些硬件的主要应用原理是 Systolic Array(脉动列阵)在这个阵列结构中,芯片上的数据在计算单元之间按照预先确定的流水线流动。在此过程中,所有处理单元(PE)并行处理通过它的数据,从而达到很高的并行处理速度。
研究发现,电影中的数据读写(On-Chip Buffer)所需的能量远低于与片外数据交互所需的能量。为了降低能耗,人们希望尽可能减少与片外数据的交互。在这种背景下设计了基于存算集成技术的计算硬件。
存内计算是什么?
传统的冯诺依曼系统包括存储单元和计算单元:存储器存储程序和数据,计算单元负责数据处理。在计算过程中,之间流动的延迟和能耗是影响计算机整体性能和功耗的瓶颈因素。
近年来,存储容量迅速增长,存储器与计算单元之间的数据吞吐带宽增长有限,导致冯诺依曼瓶颈(Von Neumann Bottleneck)。随着技术的进步,新的架构不断出现,如近存计算(Near-Memory Computing),试着解决冯诺依曼的瓶颈,最理想的架构之一是存储计算(PIM)。
PIM(Processing-in-memory,也被称为In-memory Computing 或存储计算)是指在存储器内直接进行数据处理的技术。理想情况下,PIM能有效消除存储单元与计算单元之间的数据吞吐量,不受能耗比例的限制,有效解决冯诺依曼的瓶颈。随着内存价格的下降和大量依赖固定计算模型的应用,PIM越来越受到学术界和工业界的重视。
为了实现存储计算,需要更新底层电路,以支持相应的功能。这是一个新的领域。
内存计算的操作原理
目前流行的存内计算范式是利用存内计算加速VMM(Vector-Matrix Multiplication)或GEMM(General Matrix Multiplication)运算。
具体计算原理如下:
实际上,现有的许多技术都已经可以实现存内计算的基本原理,如SRAM,eDRAM,Flash不同技术下的存储计算有不同的特点,如SRAM-Based 但是Density较低。因此,需要设计不同的基础电路和硬件来支持。
根据为三个层次:
这三个层次类似于现有的存储技术,例如,第一层级的SRAM,读写速度快,计算延迟短,但存储容量小;第一二级非嵌入式存储器,如RRAM和MRAM,读写速度稍慢,但存储量级较大,计算延迟较短;第三级,如PCM,Flash,读写更慢,计算延迟更长,但相应的存储量级也是最大的。
为了实现上述分类和硬件,需要提高计算效率,以更少的功耗实现更高的性能;在软硬件接口中,需要提高硬件的可编程性,使编译人员也能享受到硬件性能提高带来的好处
02
硬核的设计
基于Level 1 PIM的硬件设计
基于SRAM读写速度快,Density相对较差的特征,从Read-out Circuit(电路)和Bitcell Array创新设计有两个方面:在电路方面,设计新型高能读写电路;在Bitcell Array方面,利用基于6T SRAM全数字设计,使得SRAM-Based内存计算可以适应更多的技术。与一般不同PIM结构、燕博南等人的设计直接将计算界面与存储界面分开,输入(Input)进入存储器后,乘以已存储的参数矩阵,获得哈达玛积(Hadamard Product)。先相乘后累积通过电路完成VMM计算。
这种内部结构可用于现有不同的滤波器(Filter),定制优化。例如,输入尺寸为32,滤波器尺寸为3x3.中间的计算结果可以在硬件上独立完成,即通过更好的并行性更好地适应神经网络的运行,实现更高的空间利用率。
对比利用率后,可以发现芯片的时空利用率通过优化达到95%以上。
基于Level 2 PIM的硬件设计
RRAM 具有更高的Density,调用后,数据不会消失,这是基于设计的RRAM存内计算很有帮助。而在Read-out Circuits由于现有存储计算的模数转换器(ADC)相对面积较大,希望通过在芯片上放置更简单的小电路来降低性能ADC的面积。用Spiking-Based 计算电路取代传统Current-Based ADC。该计算电路可以收集输入的计算结果,并填充固定电容器。当达到一定阈值时,电容器会释放电流,形成类似于神经脉冲的形式。电流越大,充电速度越快,导致形成pulse最后,连接计数器来完成数字转换。
电路图原理如下:
通过对上述电路的建模和测试,发现该模型与所需的计算一致,因此该电路是可用的。
在150年测试上述芯片nm CMOS工艺节点最终可以得到0.257pj/MAC 能耗表明模数转化效率很高。
下面给出一个具体的芯片demo的视频:
此外,燕博南等人还开展了电影中神经网络加速的研究。通过这些工作,他们希望为软件定义硬件的理念实现硬件基础。
虽然存储计算已经积累了一段时间,但仍有许多工作需要完成存储和计算集成系统,如是否可以使用单个设备来完成神经网络的计算。
03
存内计算的软着陆
SOC系统简介
可形成设备Bitcell Array,与传统控制电路(如decoder等)组合形成传统Macro;在此基础上,存储计算增加计算电路,形成基础PIM Macro。然后将PIM Macro放入系统,形成独立的加速器(PIM Accelerator)。最后,将加速器放入系统级芯片中(SOC)。
从整个系统的结构可以看出,目前,存储计算只改变底层电路,理论上不会完全改变整个电路SOC。
从硬件到软件接口
硬件加速器改变后,需要出现相应的软件接口。因此,需要直接控制PIM Accelerator编程语言,编译入口是常用的编译模型,如PyTorch,TensorFlow等。
目前,
PIM在应用过程中面对的挑战有三:(一)传统的NPU规格大,针对如TinyML这种小型应用场景的适应性不强,且成本较高,不能满足相应的市场需求;(二)开发出包含从PIM硬件的发展到编译、再到软件接口的全流程技术栈难度大、耗时长;(三)PIM硬件虽然可以定制,但很难直接推广到软件编译人员中去。
基于以上挑战,燕博南课题组提出新型的“异构存储器层级”尝试直接在SoC上应用PIM Macro的硬核IP:将PIM作为存储器,并给它添加上传统的接口(如HP接口),从而将它接入现有的Memory Base(需要带宽足够)。这样可以利用主控CPU兼容PIM存储器的接口,来完成相关编译。与传统SRAM相比,PIM存储器需要单独的Input Buffer,计算结果也需要独立的Virtual Output Buffer存储PIM的计算结果。
在这个设计中,PIM存储器将成为系统的一部分,此时,整个存储空间(Memory Space)被称为Heterogrnous Memory Space,这样的存储空间可以直接利用最基本的load-store指令进行操作,完成存储任务和计算任务,从而避免为PIM Accelerator单独设计硬件,编译器,以及相关编程等等。
同时,他们也尝试开发关于软硬件接口的一个C语言数据库。通过较高层次的编译,把C中最初输入的矩阵转化成可识别的数据存入库。如此一来,针对一些不足以放下加速器的小应用场景,可以放入PIM存储器代替,以优化整个设计流程,从而实现算力上的巨大飞跃。
实际上,通过测试可以发现,将PIM作为存储器放入SOC中做计算时,Memory Base 的带宽是足够的。
04
对PIM的展望
自2018年以来,学术界中进行流片测试的PIM存储器原型设计规模越来越大,逐渐接近实际应用中的存储器容量;同时,也有越来越多的公司开始制造存内计算相关的硬件,软件,并进行各种商业化的尝试,工业界对存内计算的认可度越来越高。
值得注意的是,PIM存储器与其他存储技术之间并没有很强的竞争关系,所以在未来很长一段时间内,市场中的主流存储模型将会是各种存储技术与PIM混合的架构。
欢迎点击阅读原文参与文章讨论