ISSCC论文详解 2023 16.1 MulTCIM 存内计算在多模态领域的应用前沿论文

多模态模型,是指具备理解来自不同模态(如视觉、自然语言、语音等)的混合信号能力的神经网络模型,是当今人工智能模型发展的重要方向之一。本文将要介绍的文献题目为《16.1 MulTCIM: A 28nm 2.24μJ/Token Attention-Token-Bit Hybrid Sparse Digital CIM-Based Accelerator for Multimodal Transformers》,作者是来自清华大学集成电路学院和香港科技大学电子与计算机学院(Department of Electronic and Computer Engineering)的涂锋斌博士,提出了一种数字存算一体核心设计,可以支持多模态Transformer模型的计算。

  • 文章基本信息[1]

神经网络模型的终极目的是具备像人一样的感知和处理能力,多模态模型为此而被提出,其中的佼佼者即为多模态Transformer模型。但是,当前的多模态Transformer模型在硬件上执行时面临以下三项稀疏度方面的挑战:

(1)注意力稀疏性方面,作为Transformer模型重要组成部分的注意力矩阵,具有不规则的稀疏性,可能导致较长的复用距离。例如,在ViLBERT-base模型中可以覆盖了78.6%~81.7%的令牌数。为了支持这样的运算,存算核中需长期存储大量权重,而这些权重的使用率极低;

(2)令牌稀疏性方面,尽管可以通过令牌剪枝降低计算量,但不同模态的令牌具有不同的长度会导致跨模态注意力层产生计算空闲或流水线延时;

(3)位稀疏性方面,Softmax、GERU等激活函数会产生很多接近0的数据,增强待处理数据的稀疏度,CIM核心的同一组输入的有效位宽会反复变化。而传统CIM中的串行乘累加计算方案,使得计算时间受到最长位宽的限制。

图1 文章提出的挑战及相应的解决方案[2]

针对以上问题,本文提出了三项针对性解决方案:

(1)针对注意力矩阵不规则稀疏性导致的较长复用距离,本文提出一种长重用消除调度器(LRES,Long Reuse Elimination Scheduler)。LRES将注意力矩阵拆分为全局+局部稀疏的模式,其中全局类似的注意力权重向量会在CIM中存储更长时间,局部类似的权重向量则会更频繁地消耗和更新,以减少不必要的长时间重用距离,而并非像传统的Transformer那样依次生成Q、K、V的令牌,可以提高存算一体核的利用率;

(2)针对不同模态的令牌长度不同导致计算空闲或流水线延时的问题,本文提出了运行时令牌剪枝器(RTP,Runtime Token Pruner)和模态自适应CIM网络(MACN,Modal-Adaptive CIM Network)来优化此过程。RTP能够移除不重要的令牌,而MACN则能够动态地在注意力层中的不同模态之间进行切换,减少CIM的闲置时间,并降低生成Q、K令牌的延迟;

(3)针对激活函数稀疏性带来的最长位宽变化的问题,本文引入了有效位宽平衡CIM(Effective Bitwidth Balanced CIM,EBB-CIM)宏架构来解决该问题。EBB-CIM通过检测输入向量中每个元素的有效位宽并进行位平衡处理,以平衡在存储器MAC中的输入位,从而减少计算时间。这通过为较短的有效位宽元素重新分配较长的有效位宽元素中的位来实现,进而使整体的输入位宽更加平衡。

  • 论文内容解析[1]

下面,本文将针对作者提出的三项稀疏度方面的挑战,详细介绍文章创新点:

(1)LRES

LRES包含三个依次工作的部分:

1)注意力稀疏管理器:用于存储初始的稀疏注意力模式,并根据运行时的令牌剪枝信息更新这一模式,在这一步骤中,管理器会识别产生广泛注意的Q和K向量,因为这些向量需要在CIM核心中存储更长的时间,以提高CIM的利用率;

2)局部注意力排序器:对剩余的注意力矩阵,Q和K向量进行重新排序,其中K作为权重,Q作为输入向量在CIM中进行频繁消耗和切换。这意味着K向量会频繁被新生成的K向量替代,从而减少CIM的闲置;

3)重塑注意力生成器:基于前两个步骤的输出生成配置信息,用于优化CIM核心的工作流程。

图2 LRES的结构示意图[2]

(2)RTP与MACN

如图3所示,描述了针对令牌稀疏性进行优化的RTP和MACN模块。其中,RTP模块主要负责删除无关紧要的令牌。MACN则是将所有CIM核动态地划分为两个流水线阶段:StageS用于Q、K和V令牌生成中的静态矩阵乘法(MM);StageD用于注意力计算的动态MM,下面将详细分析两个模块。

首先由于类(CLS)标记表征了其他标记的重要性,因此RTP需要接收前一层的CLS分数,并选择当前层的前n个最重要标记。而MACN包括一个模态工作负载分配器(Modal Workload Allocator,MWA)、16个CIM内核和一个流水线总线。在工作时,MWA需要将CIM内核划分为StageS和StageD,并根据分配表预先分配StageS的权重。此外,在跨模态交换方面,传统方法顺次计算模态,不同的模态参数会导致跨模态交换机中有许多空闲的CIM宏;而MACN利用模态对称性来重叠多模态Q、K令牌的生成,从而降低延迟。具体实现方案为,CIM的4:1激活结构将多模态权重存储在一个宏中,并通过时间多路复用切换模态:在时间为1~NX时,MACN处于Phase1状态,Core1在示例中存储WQX和WQY;在时间为NX~NY时,MACN切换到Phase2状态,Core1激活WQY以生成QY;在时间为NY~NX+NY时,MACN切换到Phase3状态,Core1激活WQY和WKX以生成QY和KX。模态对称性使QY、KX的生成同时完成,并具有更好的CIM利用率。

最终结果表明,RTP将单模态和跨模态注意力的延迟降低了2.13倍和1.58倍,模态对称性为跨模态注意力提供了额外的1.69倍加速。

图3 RTP与MACN的结构示意图[1]

(3)EBB-CIM

如图4所示,显示了针对位稀疏性进行优化的EBB-CIM宏。它包括32个EBB-CIM阵列、一个有效的比特宽检测器、一个位均衡器和一个位平衡馈线。其中每个EBB-CIM阵列有4×64个6T-SRAM位单元(8个组)和一个交叉移位乘累加树(Cross-Shift MAC Tree),EBB-CIM使用4:1激活的全数字CIM架构,在INT16下实现了高计算精度,同时保持内存密度;检测器在运行时接收输入并检测有效比特宽(EB);位均衡器计算平均EB,将长EB数据的位分配给短EB数据,产生位平衡输入序列;位平衡馈线获取序列并生成交叉移位配置。此外,EBB-CIM可通过每两次INT8操作融合来针对INT16重新配置。

最终结果表明,与传统的位串行CIM相比,EBB-CIM将softmaxMM、GELU-MM和整个编码器的延迟分别降低了2.38倍、2.20倍和1.58倍,功耗开销仅占5.1%,面积开销仅占4.6%。

图4 EBB-CIM的结构示意图[1]

  • 多模态模型

(1)概念和原理

多模态模型指的是能够处理和理解多种类型数据的模型,例如文本、图像、音频、视频等。与单一模态模型相比,多模态模型能够融合来自不同模态的信息,从而提升信息理解和任务处理的准确性和全面性。

多模态模型的核心原理在于跨模态的信息融合与协同处理,其主要过程包括:

1)数据表示:将不同模态的数据转换为模型可以处理的形式。通常使用特定的编码器将各模态数据表示为向量或嵌入;

2)特征提取:从不同模态的数据中提取有意义的特征。例如,使用卷积神经网络(CNN)处理图像,使用循环神经网络(RNN)或Transformer架构来处理文本;

3)跨模态对齐:在不同模态间建立关联,例如通过对齐时间戳或利用共享注意力机制,确保不同模态的信息可以有效融合;

4)信息融合:将对齐后的多模态特征进行融合,常用的方法包括简单的拼接、加权求和、以及使用更复杂的融合网络;

5)决策和输出:通过融合后的特征进行任务处理和决策输出,如分类、生成或检索。

(2)应用和前景

多模态模型在很多领域有着广泛的应用,比如最典型的是视觉问答(Visual Question Answering)和图像描述生成(Image Captioning),即将图片输入给ChatGPT让其理解含义(如图5),或输入一段话让ChatGPT生成图像(如图6)。

图5 ChatGPT的视觉问答功能

图6 ChatGPT的图像描述生成功能

除此之外,2月发布的Sora、4月发布的Vidu等视频生成大模型,具有视频描述生成(Video Captioning)功能;上周发布的ChatGPT-4o大模型还具有多模型情感分析(Multimodal Sentiment Analysis)、跨模态检索(Cross-modal Retrieval)、多模态翻译(Multimodal Translation)等功能,他们都依托多模态大模型来实现。

图7 ChatGPT-4o发布会上展示的情感分析功能

多模态模型带来的网络规模增大、参数剧增、训练成本提升等问题将对传统芯片架构提出挑战,而存内计算技术可以很好的应对这些问题。存内计算技术将带来更高的能耗效率、计算效率、数据处理并行度与更低的传输延迟、计算功耗,这些特点使得存内计算芯片在多模态模型的训练、推理等场景中占据优势,有望取代传统冯﹒诺依曼架构成为新一代AI芯片的架构选择。国内知存科技已在存内计算芯片领域深耕多年,自2019年11月发布国际首个存内计算芯片产品WTM1001起,五年间已实现WTM1001量产投片、国际首个存内计算SoC芯片WTM2101验证与小批量试产投片、WTM-8系列新一代计算视觉芯片量产等等。在未来,存内计算芯片将在多模态模型领域发挥更大的作用,为多模态模型的广泛应用提供有力支持。

参考文献:

[1]Tu F, Wu Z, Wang Y, et al. 16.1 MuITCIM: A 28nm 2.24μJ/Token Attention-Token-Bit Hybrid Sparse Digital CIM-Based Accelerator for Multimodal Transformers[C]//2023 IEEE International Solid-State Circuits Conference (ISSCC). IEEE, 2023: 248-250.

[2]Tu F, Wu Z, Wang Y, et al. MulTCIM: Digital Computing-in-Memory-Based Multimodal Transformer Accelerator With Attention-Token-Bit Hybrid Sparsity[J]. IEEE Journal of Solid-State Circuits, 2023.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/841784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一些常见的程序设计问题

秒杀 redis缓存库存 1.判断库存名额是否充足,2.进行扣减 为了防止超卖,必须保证这两部的原子性 库存扣减后发送mq消息,去异步执行创建订单流程,创建订单失败会造成少卖。可加重试机制,对多次重试依旧失败的&#xff…

刷题记录第九十九天-与排序相关的题-第K大的数和逆序对的数量

求第K大的数—利用快速排序的思想 class Solution { public:int partition(vector<int>& num, int l, int r){swap(num[l],num[lrand()%(r-l1)]);int x num[l];int il1, jr;while(i<j){while(i<r&&num[i]<x){i;}while(num[j]>x){j--;}if(i>…

SpringBoot自动化配置原理

Spring Boot 的自动化配置原理基于 EnableAutoConfiguration 注解及其相关机制。以下是其工作原理的详细说明&#xff1a; Spring Boot 自动化配置原理 主要概念和机制&#xff1a; EnableAutoConfiguration 注解&#xff1a; 这个注解告诉 Spring Boot 启动时去自动配置 Spr…

【java程序设计期末复习】chapter7 内部类和异常类

内部类和异常类 内部类 ava支持在一个类中声明另一个类&#xff0c;这样的类称作内部类&#xff0c;而包含内部类的类成为内部类的外嵌类。 注意 &#xff08;1&#xff09;内部类的类体中不可以声明类变量和类方法。 &#xff08;2&#xff09;外嵌类的类体中可以用内部类…

[论文阅读笔记31]Mamba (Selective Structured State Space Model) 及其应用

最近想学一下Mamba模型&#xff0c;奈何看了很多视频还是感觉一知半解&#xff0c;因此做一篇笔记&#xff0c;顺便介绍一下Mamba结构作为CV backbone和时间序列预测领域的应用。 论文1. Mamba: Linear-Time Sequence Modeling with Selective State Spaces 0. Abstract 现有…

VLAN高级特性

1.VLAN聚合 &#xff08;1&#xff09;VLAN聚合产生的技术背景 &#xff08;2&#xff09;VLAN聚合概述 &#xff08;3&#xff09;VLAN聚合的原理 多个Sub-VLAN共享一个网关地址&#xff0c;节约了子网网络地址、子网定向广播地址、子网缺省网关地址&#xff0c;且各Sub-VLAN…

微信小程序--微信开发者工具使用小技巧(3)

一、微信开发者工具使用小技巧 1、快速创建小程序页面 在app.json中的pages配置项&#xff0c;把需要创建的页面填写上去 2、快捷键使用 进入方式 1&#xff1a; 文件–>首选项–> keyboard shortcuts 进入快捷键查看与设置 进入方式 2&#xff1a; 设置–>快捷键…

JVM学习-方法区(元空间)

运行时数据区结构图 从线程共享与否角度来看 栈、堆、方法区的交互关系 方法区 《Java虚拟机规范》中明确说明&#xff1a;“尽管所有的方法区在逻辑上属于堆的一部分&#xff0c;但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩”&#xff0c;但对于HotSpotJVM而…

EXPLAIN之type、Extra

在我们使用explain命令对sql语句进行优化时&#xff0c;有一些参数比较重要但也有点不容易理解。接下来就对他们分别进行介绍。 1. type type表示此次sql语句的访问类型&#xff0c;可以从总体上反应该语句的运行情况。 从最好到最差依次是&#xff1a;system>const>e…

布鲁可冲刺上市:极其依赖第三方,多个授权将到期,朱伟松突击“套现”

“奥特曼”概念股来了。 近日&#xff0c;布鲁可集团有限公司&#xff08;下称“布鲁可”&#xff09;递交招股书&#xff0c;准备在港交所主板上市&#xff0c;高盛和华泰国际为其联席保荐人。据贝多财经了解&#xff0c;布鲁可的经营主体为上海布鲁可科技集团有限公司。 天眼…

轻量级 C Logger

目录 一、描述 二、实现效果 三、使用案例 四、内存检测 一、描述 最近实现一个 WS 服务器&#xff0c;内部需要一个日志打印记录服务器程序的运行过程&#xff0c;故自己实现了一个轻量级的 logger&#xff0c;主要包含如下特征&#xff1a; 可输出 debug、info、warn、er…

历年高校招生计划数据 API 数据接口

历年高校招生计划数据 API 数据接口 基础数据 / 高校招生&#xff0c;各高校历年招生计划数据&#xff0c;高校招生数据 / 历年计划。 1. 产品功能 支持历年高校招生计划数据查询&#xff1b;包含各高校招生计划详细数据&#xff1b;多维度查询条件支持&#xff1b;毫秒级查询…

yolov5_obb

yolov5_obb: 旋转目标检测从数据制作到终端部署全流程教学

安全分析[2]之计算机系统安全分析

文章目录 计算机系统结构计算机系统安全风险软件安全漏洞 计算机系统结构 计算机系统安全风险 计算机硬件安全&#xff1a;因设计不当、器件的质量及使用寿命的限制、外界因素等导致的计算机系统硬件出现故障&#xff0c;进而影响到整个系统的安全。特别是如果是CPU出现安全漏…

【Go专家编程——协程】

1 协程的概念 1.1 基本概念 进程是应用程序的启动实例&#xff0c;每个进程都有独立的内存空间&#xff0c;不同进程通过进程间的通信方式来通信线程从属于进程&#xff0c;每个进程至少包含一个线程&#xff0c;线程是CPU调度的基本单元&#xff0c;多个线程之间可以共享进程…

PCIe总线-事物层之TLP请求和完成报文格式介绍(六)

1.概述 TLP报文按照类型&#xff0c;可以大致分为4中类型&#xff0c;分别是IO请求报文、存储器请求报文、配置请求报文、完成报文和消息请求报文。IO请求报文可分为IO读请求&#xff08;不携带数据&#xff09;和IO写请求&#xff08;携带数据&#xff09;。存储器请求报文可…

架构师系列-定时任务解决方案

定时任务概述 在很多应用中我们都是需要执行一些定时任务的&#xff0c;比如定时发送短信&#xff0c;定时统计数据&#xff0c;在实际使用中我们使用什么定时任务框架来实现我们的业务&#xff0c;定时任务使用中会遇到哪些坑&#xff0c;如何最大化的提高定时任务的性能。 我…

【文末附gpt升级方案】前沿人工智能安全承诺:OpenAI、微软、智谱AI等全球16家公司的共同行动

前沿人工智能安全承诺&#xff1a;OpenAI、微软、智谱AI等全球16家公司的共同行动 一、引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其在全球范围内的应用日益广泛&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗诊断到金融分析&#xff0c;…

C语言——函数指针与指针函数

一、函数指针 1、定义 顾名思义&#xff0c;函数指针就是函数的指针。它是一个指针&#xff0c;属于一个数据类型&#xff0c;其指向一个函数。如定义一个函数&#xff0c;其入口地址就是这个函数的指针&#xff0c;是个常量&#xff0c;可以用该常量给函数指针类型的变量赋值&…

Spark-RDD-依赖关系详解

Spark概述 Spark-RDD概述 Spark-RDD-依赖关系 在Apache Spark中&#xff0c;RDD&#xff08;Resilient Distributed Dataset&#xff09;是一种基本的抽象数据结构&#xff0c;代表了分布式的、不可变的数据集。 RDD之间的依赖关系在Spark中非常重要&#xff0c;因为它们决定了…