人工智能在海量数据面前拥有无可比拟的速度优势,近年来计算机体系结构也发生了巨变,变得越来越难以预知和多样。多样化的发展也让人工智能的准确性,性能和效率来到了选择的十字路口。
目前最显而易见的方式采用更多的计算机,或者是更多的内存单元,更快的处理器。然而,这种“粗暴”的方式,也遵循着边际递减原则,即使我们不限制采购设备的预算和使用各种高带宽内存(HBM)和内存计算(PIM)技术,传统结构的计算机仍旧不能满足需要。但是现在有针对性的替代方案开始崭露头角,包括特定用途的加速器和其他专用内存计算技术。
目前市面上有几种加速器架构在竞争,但是从本质上来说,内存计算才是最符合的计算机架构,不仅现阶段的人工智能应用急需这种架构,在未来的也同样需要,并且内存计算还在不断的演变和进化。
人工智能涵盖的业务场景激增,并且呈现多样化发展
人工智能预测已经跨越了多种行业和场景,有些十分普及,例如普通的智能手机中搭载的面部识别等。然而人工智能发挥巨大作用的场景往往需要快速做出决策,而传统计算机架构便有些力不从心了。所以,全新的计算机架构、设备和可靠性以及数据安全都是挑战。
高频交易是金融服务行业的一大特点,人工智能在这个行业迎来了前所未有的挑战,自然语言处理(NLP)技术(NLP是语言学、计算机科学和人工智能的一个分支)可以从各种类型的文档中提取数据,能够帮助我们自动化批量处理任务,还能收集客户信息,通过评估上下文中各种文本和语音数据来驱动业务逻辑从而建立更好的市场预测机制。
不仅是金融,人工智能还在工厂车间和其他工业化道路上前进,通过自动化流程优化供应链、产品开发和生产制造等方面,更有甚者通过深度学习让机器自主进行操作。在某些情况下,工业用AI技术数据来源是工厂内物联网和其他传感器所捕获的数据,随着人工智能硬件的发展和半导体技术的进步,越来越多的场景需要人工智能,工厂内自动化和工艺技术的精进也需要AI技术的加持。
更进一步来讲,人工智能同样在现代交通和智能交通系统上扮演着关键的角色,AI处理并预测的数据可以为私人或者公共交通系统提供高效和可靠的指挥。对于行驶在道路上的车辆来说,AI在辅助驾驶或全自动驾驶上扮演着重要角色,如何捕获交通信号,感知其他车辆行为,处理道路障碍等等复杂环境的驾驶行为都是不小的挑战。
所以,上述的这些人工智能应用都在有着各自领域的特点,正是这种多样性导致了更加多样化的神经网络结构,这些拥有各自特点的数据也蕴含着更多的不可预测和挑战,使得未来的人工智能变得更加难以捉摸。
成本效益下的人工智能
在人工智能“野蛮”生长的时代,金融服务、制造和汽车等行业都在技术上探索其可行性,但是进入如今的加速期,技术可行但是成本效益和可移植拓展性才是考量的重点。
首先深度学习和机器学习的算法非常耗电,显而易见的办法是:利用高性能、最新最好的处理器和 DRAM,甚至 HBM,将更多的计算能力投入到这个问题上,这无疑会让成本高昂,而且其边际递减效应也愈发明显。CPU确实在人工智能中扮演着不可或缺的角色,尤其适合连续的算法和任务,这类任务通常需要获取较小的数据并且按照一定的方式进行转换。举例来说,图像识别、自动驾驶、无人机的同步定位和地图绘制,或具有简单 NLP 功能的家用设备等,但是更进一步的神经网络(数据量大)却让CPU成为了瓶颈。
与此同时,GPU的发展已经从满足PC游戏的图形化处理走了出来,其浮点型运算能力十分适合大规模并行计算的负载,但是GPU同样需要大量的电能,而如果计算量太大,内存反而是其最大的瓶颈。所以,增加内存可以提高整个系统的吞吐量,但是这种方法也有局限性,AI 负载的多样化同样加速了 DRAM 规范(DDR 和 LPDDR)的演变,如今演变出了HBM 和 PIM 技术。DRAM 仍然是最快和最容易理解的内存技术,低功耗 DRAM 很可能会在更长的时间内被应用于边缘人工智能和自动驾驶技术。毕竟HBM是一种更高级的内存技术,现在还处于PIM的早期,因为最近的发展只是使它更容易集成到系统中,而不需要对软件进行大量的更改,而要定义 PIM 的商业可行性,还有很多路要走。
人工智能带来的挑战不仅仅是数据量的激增,其专用加速器在内存、存储器之间获取数据的速度同样也是挑战。异构计算中系统可以轻松地访问给定工作负载的计算单元、内存和存储,并且近期提出的分解内存池的 Compute Express Link (CXL)规范,也引起了众多工程师的极大兴趣。
此外我们还要平衡精度、准确性和处理效率之间的关系,而这些也逐渐从技术至上的思想中演变成效率第一的评价指标。所以内存计算在权衡各种因素后是目前AI技术最适合的技术了。
内存计算是人工智能加速催化剂
内存计算技术不同于今天常见的内存和冯诺依曼结构,它们依赖于窄带宽总线和大容量共享缓存;内存计算结构使用数量庞大的大规模并行处理器直接连接,使用专用的、优化过的内存以提高效率和带宽。
传统的冯·诺伊曼结构有外部 DRAM单元、缓存和专用通信线路,而内存计算方法则将处理结果直接连接到内存单元。在Untether AI 中我们使用了一个 RISC 处理器和多达512个处理单元,并且每个单元直接连接到自己的SRAM阵列中,通过将整个神经网络放在芯片上,Untether AI 同时满足了低延迟和高吞吐量,临近放置提高了能量效率并减少了延迟,从而使得总的吞吐量得以提升。
Untether AI 的内存计算架构是一种“两全其美”的方法,它混合了多指令、多数据(MIMD)和单指令、多数据(SIMD)处理,MIMD 允许511个内存组异步操作,而序列优化是通过 SIMD 实现的,每个内存组在一条指令上执行512个进程。Untether AI 的内存计算架构针对大规模推理工作负载进行了优化,通过使用整数运算单元,可以在降低成本的同时提高吞吐量,极大程度上满足了自然语言处理,视觉导向的神经网络等应用场景。
所以无论是Untether AI还是其他的内存计算技术,无一例外的给人类社会提供高性能、低功耗的AI技术,无论当今还是以后的神经网络架构,内存计算技术必将绽放新的光彩。
编译自:The Advantages of At-Memory Compute for AI Inference ----EE times
责编:我的果果超可爱