如今的商用和消费类电子设备都是朝向智能、轻量、便携化的设计路线,但是随之密集的大数据流和算法处理的挑战相对于冯氏架构瓶颈就成为了矛盾;以及器件尺寸微缩带来的功耗与可靠性要求也加剧了这种矛盾。因此近年来才演进出了存算一体需求,进而演变到PIM、未来内存构型以及新计算体系结构的问题,应用场景覆盖不论IDC还是端边侧AIoT。

在经典冯结构中,数据需要在存储、内存、缓存、多个核的计算单元之间不断搬运,且器件彼此的距离相加,导致大量的时间、带宽、缓存空间、功耗都消耗在了搬运上,而非计算上,因此才有了内存墙的问题。为了突破冯结构瓶颈,降低数据搬运的开销,传统技法包括增加数据总线带宽和时钟频率,但随之带来了更大的功耗与硬件成本开销,且扩展性也更加受限。

存算一体的设计宗旨,就是旨在把传统以计算为中心的架构转变成以数据为中心的架构,把以主处理器为单一计算核心的架构转变成由近至远的包括存储/网卡在内的分布式多计算核心的架构;直接利用存储器承担大部分数据处理/计算任务,两种设备融合在同一芯片当中就大幅规避了冯结构影响,尤适用于DL神经网络计算这种大数据流、大规模并行的场景。此外,与亚阈值的digital_logic相比,存算一体/存内计算还是工作在正常供电范围,就有实现高算力的可能性;以及进一步的,从AI远期用途来看,PIM原理更接近模拟计算,与神经形态计算有交集,可以利用这一原理去实现synaptic_connection,提供一种高并行度、高能效的synaptic_weighting计算。

综上,存算一体是挑战经典体系结构的设计,不仅是硬件构型,更重要是将会推动软件栈、OS和应用程序的重写以及新模式诞生,因为它最终改变了程序加载和调用方式,包括File_hierarchy/Memory_hierarchy的结构。

但由于多数方案只是针对特定任务加速和降低主存交互,而并非是替代主存而将通用型任务全栈接手,所以通常我们不视作PIM,而是仅称其计算型存储CSD。当然在方案名称上的分歧可以各自妥协。但需要注意的是,通常我们看待通用场景PIM,是指通过性能等效RAM的持久存储卷代替RAM主存和磁盘,让CPU流水线和OS底层功能更加简化;而专用场景的计算型存储CSD,则是需要在存储器中内嵌计算逻辑,从而卸载CPU甚至GPU和主存的多数工作,让特定的密集型计算任务就近留在Storage_cell本地完成(直接通过cell进行计算),极大限度消除数据搬移的开销,也缓解了传统芯片跑大数据负载和AI算法面临的内存墙和功耗墙(TOPS/Watt)问题。但这两个称谓并不是学术用语,极易产生混淆。

对于AI专用的CSD,或称作基于存算一体的深度学习神经网络加速器;在这类应用中,95%+运算需求是向量矩阵乘法(MAC),它是内存密集型任务,包括CNN在内大部分计算瓶颈都在访存动作,因此CSD主要加速这类运算;进而将workload和计算开销约束在CSD芯片/板卡内,大幅降低与主板总线、主处理器和主存的交互和搬运。于是针对AI/DL的CSD设计就出现了新构型:即在存储设备中包含控制核的同时也嵌入若干个计算核(这些IP核可以完全自研或经EDA厂商授权获得,如Synopsis的ARC系列),并且这些计算核随着存储规模/颗粒规模而横向扩容,其中的控制核仍是承担本地数据辨别和读写,以及通过PCIe总线响应主CPU的各种指令并控制需要与主机交互的数据,但有所不同的是,存储端和主CPU之间的数据交互不再是原始数据,而是经过CSD计算单元预处理后的结果数据。这种构型的优势在于存储端的处理器/加速器可以根据应用类型进行优化甚至可编程,增加了新的/更近的计算核心以便分担工作负载,提供性能增益并减少硬件开销。

参考:https://zhuanlan.zhihu.com/p/418274144