为什么内存计算会颠覆 AI SoC 开发
2021-05-22
不断追求更高性能功耗比的人工智能 (AI) 算法,推动了特定硬件设计技术的发展,包括用于片上系统 (SoC) 设计的内存计算。最开始,内存计算主要公开出现在期望颠覆行业现状的半导体初创企业中,但现在,许多行业龙头也开始在底层使用内存计算技术。
使用内存计算的创新设计将颠覆 AI SoC 的格局。首先,我们来看一下初创企业打算使用内存计算来颠覆的AI SoC现状。自 2015 年以来,很多公司和风投开始大举投资专门用于 AI 的新型 SoC,促使 AI 硬件取得巨大的飞跃。在最近 5 年,投资开始加速,推动了行业龙头在 AI 硬件设计方面取得了诸多改进。Intel 的 x86 处理器增加了新的指令,甚至还增加了一个单独的 NPU 引擎。Nvidia 添加了特定的 Tensor 内核,放弃了 GDDR,转而实现 HBM 技术以增加内存带宽。Google 开发了专门用于 AI 算法的特定 ASIC TPU(Tensor 处理单元,图 1)。但是,即使这些架构不断改进,投资者仍然希望初创企业能够开发出具有颠覆性的 AI 技术。
图 1:Intel、Nvidia 和 Google 正在引入新的硬件架构,以提高 AI 应用的性能功耗比
为什么 AI 计算的颠覆如此有趣?
大举投资 AI 硬件的三大主要原因如下:1) 产生的数据量呈指数级增长,而 AI 是解决复杂性问题的关键技术;2) 使用现有架构(尤其是边缘)运行 AI 算法的功耗和时间成本仍然过高;3) AI 计算引擎的并行化达到芯片尺寸极限,促使这些系统扩展为多个芯片,而这种扩展仅在云或边缘云数据中心领域较为实用。
这些新的挑战共同推动了设计人员不断探索全新的创新型硬件架构。内存计算被视为最有前景的硬件创新之一,因为它可以提供多数量级的改进。
AI 计算颠覆路径
初创企业和领先的半导体供应商正在寻找实现 AI 计算加速的潜在途径。
新型 AI 模型:新型神经网络被频频推出。例如,Google 专注于发布模型的庞大研究团队推出了 EfficiencyNet。Advanced Brain Research 公司发布了 LMU,Lightelligence 与麻省理工学院合作运行了高效统一神经网络(Efficient Unitary Neural Network,EUNN)。
集成光子学:一些初创企业正在开发新的集成光子学技术,并将其作为另一种颠覆方式。
压缩、修剪和其他技术:使用压缩、修剪及其他技术,让特定的 AI 功能可在小型高效处理器上运行,例如以低于 100MHz 的频率运行的 DesignWare® ARC® EM 处理器 IP。
扩展计算系统:行业龙头已经已经全面生产通过多个晶片、主板或系统来扩展计算系统的解决方案,来应对AI 最复杂、最耗费成本的挑战。
各企业都在寻求或已经实现这些提高性能的方法。内存计算设计可以建立在这些方法的基础上,通过多次改进,以及其他开发技术来提高效率。
什么是内存计算?
内存计算是将内存设计在硬件处理元件旁边或内部的方式。内存计算会利用寄存器文件,处理器内的内存,或者会将 SRAM 或新内存技术的阵列转换为寄存器文件或计算引擎本身。对于半导体而言,内存计算的基本要素可能会大幅降低 AI 成本,缩短计算时间和降低功耗。
用于内存计算的软件和硬件
内存计算兼具硬件和软件元素,其可能会引发一些混淆。从软件的角度来看,内存计算是指在本地存储中运行的处理分析。实际上,软件充分利用了离计算较近的内存。“内存”从硬件的角度来说可能有点模糊,可以指本地系统中的 DRAM、SRAM、NAND 闪存和其他类型的内存,而不是通过联网软件基础架构获取数据的内存。优化软件以利用更多本地内存为行业进步带来巨大机遇,工程师团队将需要继续在系统层面关注这些创新。然而对于硬件优化而言,内存计算提供了位级创新,能够更加逼真地模拟人脑,效率达到现行计算的 1000 多倍。
内存计算、近内存计算和模拟计算
内存计算不仅仅是 AI 算法的神奇解决方案,它已经达成各种实现,而且还在通过逐步创新得以发展。寄存器文件和缓存的实现已有数十年之久,近内存计算是在实现改进后取得的进步,并在过去几年中在新的 SoC 中得到了实现。
AI 算法需要的系数和乘积累加 (MAC) 即便没有数十亿个,也有数百万个。为了有效地执行所有这些 MAC,现在在 SoC 中设计了用于一系列 MAC 的自定义本地 SRAM,其唯一用途是执行 AI 模型数学,即矩阵/张量数学。为一组 MAC 集成专门的本地 SRAM 以执行 AI 模型数学就是近内存计算的概念。在近内存计算中,本地 SRAM 经过优化,旨在存储指定 MAC 单元所需的权重和激活值。
在开发内存计算的过程中,下一个进展自然是模拟计算。模拟计算能够实现更多并行,并且能够更加逼真地模拟人脑的效率。模拟系统并行运行 MAC 和内存,就系统效率的提升幅度而言,甚至远远超过仅靠近内存计算方式得到的效率提升。传统的 SRAM 可以作为内存模拟计算实现的基础,新思科技已针对这一用途提供定制服务。
内存技术解决内存计算挑战
与传统的 SRAM 相比,MRAM、ReRAM 等新型内存技术可提供更高的密度和非易失性。SRAM 的改进可提高计算和片上内存的利用率。利用率是 AI SoC 设计人员面临的最关键的设计挑战之一(图 2)。SoC 设计人员需要专为 AI 数据移动和计算(无论采用任何技术均可)而设计内存子系统。
图 2:AI SoC 具有极其密集的计算和数据移动,这会影响延迟、面积和性能
带有内存系统的 AI SoC 设计面临的关键挑战与需要存储的 MAC 和系数的数量有关。对于 ResNet-50 而言,需要超过 23M 的权重,可计算为 35 亿 MAC 和 105B 的内存访问。并非所有处理都是同时运行的,因此最大激活值的大小可能是内存子系统的关键瓶颈。控制工程师知道,将瓶颈设计作为执行成本最为昂贵的功能,从而提高效率。因此,设计需要确保其内存计算架构能够有效地处理最大的激活系数层。
满足这些要求需要大量的片上内存和多层的密集计算。目前正在开发内存设计的独特技术,以消减延迟、系数体量以及必须在 SoC 周围处理的数据量。
用于内存计算的 DesignWare IP 解决方案
新思科技为客户提供广泛的 IP 选项,用于实现内存计算。针对密度或漏电功耗进行优化的内存编译器用于为近内存实现开发本地 SRAM,有时,此类实现可以实例化 1000 多个 MAC。MAC 可以利用新思科技基础内核的一组原始数学函数,其中包括点积(一种常见的 AI 函数)等灵活函数。
此外,新思科技 DesignWare 多端口内存 IP 支持多达 8 个输入或 8 个输出,提高了计算架构内的并行性。随着 AI 变得越来越普遍,多端口内存在设计中更加常见。
新思科技开发了一种专利电路,专门对内存计算创新的支持。图 3 中所示的 Word All Zero 功能基本上消除了要处理的零。为什么要移动乘数零?Word All Zero 功能显著降低了所需的计算量,并可将芯片内数据移动的功耗降低了60%以上。
图 3:除了 Word All Zero 功能外,新思科技 DesignWare 嵌入式内存 IP 还提供多种特性,以解决功耗、面积和延迟挑战
结语
目前,业内采用内存计算的速度还有待进一步观察,不过,这项技术的前景,以及全新内存、创新电路和富有创意的设计师带来的理念实践,必将成为一项工程壮举。很多时候,开发解决方案的过程,与获得的最终结果一样有趣。