"); //-->
▲吴华强
对于AI算法而言,“存储墙”正成为主要的计算瓶颈,数据搬运会消耗大量功耗和时间。目前AI算法在一部分云计算里算子比较集中,因此与忆阻器阵列有很好的契合度。基于忆阻器等类脑计算器件的存算一体架构,学习了大脑工作机制,通过模拟一些突触乃至神经元的功能,成为突破“冯·诺伊曼”瓶颈的最有潜力的技术路线之一,有望大幅提升算力和能效。忆阻器具有电阻可调特性,也可以解决很多传统模拟计算的参数难以配置的问题,它的出现,使得“存算一体+模拟计算”的新计算范式兴起。吴华强教授重点解读了忆阻器存算一体芯片面临的三个挑战:1、如何真正克服比特误差对系统误差的影响?过去数字计算首先是比特精确,比特精确至少要保证系统精确。在基于忆阻器的模拟计算里,每个比特相对来说有一个range,个别比特可能完全不准。如需将每个比特都做得很精准,则能耗变高,能效会受影响。对此,解决思路一方面是从数学模型去验证它们的误差关系,另一方面从算法上进行挑战,根据实践,如果直接复制数字计算的算法,往往得到的效果较差,而在这之中进行微调,尤其对底层设备、对分布规律的理解会有很大的帮助。吴华强团队提出由片外压力训练和片上自适应训练组成的混合训练框架,在片外压力训练中引入系统误差模型,构建具有误差耐受性的网络模型,提升实际硬件系统的精度。在权重映射到芯片后,通过原位更新关键层权重进行自适应训练,进一步提升精度。2、如何高效、低成本的设计并制造出忆阻器存算一体芯片?吴华强给出的解法是:CMOS嵌入式集成+EDA工具链。芯片走向更大规模,需要器件进一步优化结构。从2010年至今,其团队制作忆阻器件的过程分了几个阶段:第一阶段,用2μm工艺在实验室中筛选CMOS兼容材料,制备单器件;第二阶段,130nm工艺,打通后端集成工艺,发展了Foundry+Lab模式,最多集成到64M的忆阻器;第三阶段,与联电新加坡厂、厦门联芯、中芯国际等大的代工厂合作,从40nm到28nm、22nm,可完成整个工艺的加工。其团队还研发了从器件仿真、电路模块设计到系统架构设计的EDA工具链,目前已将EDA工具链跟两款工业芯片进行适配。此外吴华强透露,他们有计划将EDA工具链开源。3、如何提升存算一体架构的通用性,使其适配更多的神经网络算法?吴华强团队研发的软件工具链包括编译器、软件模拟、硬件模拟器等,通过软件工具链实现算法和芯片硬件的解耦,可支持各种神经网络算法。其中,编译器对接算法层,可实现存算一体计算单元上高效部署神经网络算法及生成可执行程序的功能;软件模拟对接着编译器和算法层,结合底层硬件模型,考虑真实器件的非理想因素,实现对真实硬件功能与性能的评估与探索;硬件模拟器对接编译器,功能完整的计算单元模块,模拟存算一体SoC工作过程中的数据信号与控制信号变化情况。在芯片方面,吴华强团队在研制一款采用28nm制程工艺的集成忆阻器存算一体芯片,集成规模达到64Mb,数模转换精度达8bit,预期算力超过100TOPS,预期能效超过10TOPS/W,具备一定通用计算能力,功能可重构、参数可配置,并有配套软件工具链。▲梁云
在他看来,摩尔定律停滞不前以及功耗限制,需要架构方面的创新,领域专用处理器(DSA)是一种可能的解决方案。DSA有多种优势,从硬件角度,可以做更高效的并行设计、内存架构、数据表示形式;从软件角度,可将复杂的编译器变简单。最近几年,梁云主要关注的是张量(Tensor)计算。由于张量计算的重要性,许多厂商设计了采用Spatial空间架构的AI加速器,这种架构并行性和数据复用率很高,但也存在一些挑战:一是如何做软硬件协同设计,二是决定了硬件架构后如何实现?总结下来,整个软硬件设计流程都需要非常底层的编程,而且很难优化,开发周期漫长。梁云所在课题组提出了一种软硬一体的智能芯片设计与优化框架AHS,希望借助高层次的抽象、自动化工具和高效的算法,自动生成芯片的硬件架构和软件算子库,降低芯片软硬件开发门槛。具体来说,其课题组通过设计领域专用语言和中间的表示形成降低编程门槛,借助机器学习算法让优化更容易,设计这种自动化的工序来解决人工设计的问题。其工作包括硬件综合、软件编译及软硬件协同设计,每个组件均已开源。硬件综合方面,其TENET框架可使用基于关系的表示形式,涵盖硬件数据流的设计空间,能够进行一系列的数学分析,分析出重用、延迟等跟性能相关的各种指标,从而帮助用户在某些限制条件下找到更好的芯片设计。同时,该团队提出了可在性能、生产力和支持的数据流上都取得最优的工具TensorLib,并为实现自动生成硬件构建了相应的EDA工具。软件编译方面,团队提出了针对不同硬件的统一抽象,核心想法是将形式多样的intrinsic在语义上降低到一个scalar program上,接下来把它形式化一个基于布尔矩阵的映射过程,在这里面通过检查布尔矩阵来检查映射方案的合理性。经实验,其在单个算子和整个网络上均实现大幅度性能提升。软硬件协同设计方面,该团队提出一种敏捷的协同设计方法HASCO,它基于新的数据结构张量语法树做软硬件的划分。在硬件方面,其借助贝叶斯的优化做硬件优化和设计空间的探索;在软件方面,引入强化学习,能快速找到所需软件设计的参数。与非软硬件协同设计的工作相比,其在边缘场景和云计算场景的实验结果在能效、性能方面均有一定的提升。▲刘勇攀
随着摩尔定律的放缓,“通用计算架构”+“工艺器件进步”相结合的性能提升之路,面临日益严重的挑战。制程工艺演进到28nm后,如果在传统小容量的芯片市场,其容量没有增加,专门为它做一个芯片,实际成本并未下降,这打破了摩尔定律以更便宜价格来提供更高算力的假设。过去“分而治之”的芯片传统设计分层架构,好处在于有一个系统观的架构师将要做的事拆分成若干层,大家各做各的,高效协同,从而提供更低的设计复杂度和更高灵活性。但随着这个组织发展到一定程度,其代价是整个顶层执行效率的下降,此前的架构反而成为算力、能效提升的瓶颈,这就需要重新打通逻辑、重新定义层次,这对我们来讲是很好的机会。刘勇攀认为,未来,在底层器件发展变慢的情况下,我们可能需要使用“分久必合”的跨层次协同模式,发挥一些从应用层面的新设计融合逻辑,不但要做算法和架构,还要做电路与器件的协同,来研发出高能效、高性价比的AI芯片。一个算法级稀疏可获得10到30倍的理论加速,而真正到了通用的GPU、CPU层面,可能只有9到25倍的加速,如果做一个稀疏架构,就能很好发挥出稀疏算法的架构优势,这便是典型的算法架构融合逻辑。器件方面,稀疏也好,低比特推理和训练也好,都是从算法和架构上的优化。自下而上也有器件和电路的融合,包括先进工艺的DTCO(设计工艺协同优化)。现在有一些SRAM面积提升,并不是通过把某个管子做小,而是垂直堆叠起来,密度可能提升了几倍、百分之几十,这就是典型的先进工艺的DTCO。还有HBM、3D堆叠,这都是从存储层面,未来可能会有更大容量、更高速的访存、更低成本的片上存储,以及更接近计算的HBM内存,这些内存将很大程度上解决未来计算中部分存储带宽的问题。另一个层面,这些器件电路不但可以做存储,还能提升计算密度,可以做存算一体,甚至可以用光互联,NVM(非易失存储器)的计算堆叠实现更高性能、低功耗、低成本的计算。可以看到,设备和电路的协同设计前景巨大。最后,刘勇攀总结了对该领域的3点观察:其一,做AI计算,可将原始算法变成硬件高效的AI算法,从而使能效和算力得到显著的提升。其二,芯片或系统有按比例缩小(scaling down)和异构集成两条路线,异构集成使我们能将更多DSA融合做一个整体解决方案。由于是芯片级集成,它不会受限于SoC要求的大的市场容量成本的问题。随着一些新型封装技术成熟,业界现已出现芯粒异构集成的方式,通过灵活互联,打破过去单一器件和同构计算架构的带来的局限。这些芯粒可以采用不同的工艺节点,从而继续提升性价比,并一定程度上缩短设计周期,这为新型器件和领域定制化异构架构创新开辟了广阔空间。其三是新器件。现在还处在相对萌芽期的光通信和光计算,未来有可能被集成到大算力AI芯片中,甚至是更遥远的量子技术里。▲杜子东
量化被认为是有望降低带宽/存储要求、提升效率、降低计算成本的有效手段。过去采用低比特或量化推理方面的应用很多,但在开销巨大的深度学习训练中,量化应用相对较少。现有的量化训练算法相关文章常常采用16bit,少部分可做到8bit,其量化效果通常只有部分数据能做到8bit,大部分数据还需16bit、32bit,对于像CPU/GPU等平台没有加速效果。杜子东团队也在GPU上实现了一个量化训练,相比32bit,直接在CPU+GPU平台做量化训练,会比平常慢1.09倍~1.8倍。在训练中,GPU并不能给予很好的硬件和软件的支持,也没有特别好的低位宽的高效深度学习算法,这是现在阻碍量化训练的两大因素。量化算法需对大量数据进行基于动态统计的量化和高精度的权重更新,这使得这些量化训练算法不能有效地部署在当前的深度学习处理器上。对此,杜子东团队提出了第一个用于高效量化训练的定制神经网络处理器架构,其训练精度损失可忽略不计。其团队提出了3个策略来解决上述问题,一是局部量化,二是基于误差估计的多路量化,三是原位权值更新。通过将这三点应用于AI加速器上,在硬件中做针对性地支持,使之能做在线量化训练,并避免了多变的数据访问,相对同规格TPU实验,其性能提升1.7倍,能效提升1.62倍。▲漆维
昆仑芯1代采用14nm制程,在百度搜索引擎、小度等业务中部署超过2万片,经历过互联网大规模核心算法考验的产品。昆仑芯2代采用7nm制程,于2021年8月量产。其4nm昆仑芯3代已启动研发,昆仑芯4代也在规划中。在演讲中,漆维分享了AI芯片在走向产业大规模落地过程中所面临的挑战:首先是算法的多样化。不同业务场景有不同的算法模型,即便是同一个业务线,其算法也在持续优化和突破。如谷歌曾在TPU论文中提到等芯片研发完成、要推到业务端落地部署时,才发现业务团队两年前所提的模型和精度需求已被推翻。第二,这个赛道并不是一个蓝海,因为有行业巨头NVIDIA在前面。NVIDIA已有10多年的积累,构建了非常强大的护城河,并敢于对自家架构做持续创新,其GPU已跟所有的主流框架做了适配。这种情况下,客户对于为什么要选到你的AI芯片是有心理防线的,因此不仅要做到有一个非常可观的实际性能收益,也需要整个软件栈做到非常灵活,实现尽量小的成本。第三,客户的需求并非一成不变,且非常严苛。以互联网为例,他们并不会关心一个单一指标,他们关心延时、吞吐、TCU,这些指标很多时候是糅合在一起的。例如,客户可能关心其业务在满足一定延时条件下,到底单卡能给他带来的吞吐是多少,甚至有时还会加一些限制,如要求其CPU或者整个AI芯片、GPU限制在一定程度的利用率,去确保整个业务系统的鲁棒性。最后,能够在真正场景中做到业务规模的量化,整个软硬件系统都将面临非常大的工程挑战。硬件产品做到万级、十万级甚至更高时,稳定性怎么样,成本对业务来说是不是可接受的;整个软件栈要适配不同的深度学习框架、处理器、操作系统以及不同OEM的不同机型等等。到业务实际部署环节,有时不是单行程的业务在跑,而会为了把利润率做高,可能会做多行程的混部。在这种场景下,整个AI卡实际性能能否做到很稳定,都是走向芯片量产后要面临的工程化挑战。针对上述挑战,昆仑芯的发展分成了两个阶段:第一个阶段是2011~2017年,主要基于FPGA开发集群,随后因底层硬件存在种种限制,FPGA在业务形态及架构上遇到瓶颈,致使相应性能和功耗等指标很难达到最优,因此大概在2017到2018年,也就是AI发展相对成熟之际,昆仑芯团队开始转型,并于2018年正式启动昆仑芯的研发。从FPGA到昆仑,昆仑芯团队对整个芯片的架构做了抽象,从早期一些偏静止的优化做成一个通用的设计。之所以要做通用的AI处理器,一则为灵活支持更广泛的应用场景,二则需要灵活可编程以适应各种业务的需求,三则尽可能降低芯片、软件以及对业务牵引的成本。在漆维看来,现在是一个很好的时代,信创国产化等趋势给了AI芯片一个良机,有一批早期用户愿意接纳和尝试你的产品,而从早期客户到主流客户中间有一条鸿沟,什么时候真正迈过这个鸿沟,AI芯片产品才真正在市场上站住了脚。*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。