ISSCC论文详解-ISSCC.34.1 适用于高精度 AI 应用的 28nm 83.23TFLOPS/W POSIT

news2024/10/6 8:27:32

0 前言

本文将对存内计算前沿论文——ISSCC 2024 34.1进行分享介绍,包括背景介绍、解决方案和架构、主要创新点、最终结果对比四部分内容。

1 背景介绍

题目:《A 28nm 83.23TFLOPS/W POSIT-Based Compute-in-Memory Macro for High-Accuracy AI Applications》;

名称:适用于高精度 AI 应用的 28nm 83.23TFLOPS/W POSIT 内存计算宏;

链接:34.1 A 28nm 83.23TFLOPS/W POSIT-Based Compute-in-Memory Macro for High-Accuracy AI Applications | IEEE Conference Publication | IEEE Xplore

作者团队:清华大学尹首一团队&上海人工智能实验室,第一作者为清华大学Yang Wang;

简述:运用了一种全新的数据格式“POSIT”,可以用较低的位宽达到与高位宽FP几乎相同的训练和推理精度。同时基于这种数据格式,搭建建了一种具有三个特征的数字POSIT CIM宏(BRPU、CPCS、CASU),可达83.23TFLOPS/W的能效和2.74TFLOPS/mm2的面效。

2 解决方案和架构

2.1 challenge & solution

图1 challenge & solution

POSIT的动态特性带来的三个挑战:

1)POSIT的动态机制引入了额外的提取和解码逻辑,这需要比传统FP在同等条件下高2.62倍的功率;

2)POSIT的动态位宽尾数(M)与CIM架构冲突,导致41.3%的CIM未被充分利用;

3)66.8%的动态尾数对齐时没有重叠位,全加器的计算浪费了62.5%的能量。

因此,针对三个挑战提出了对应的解决方案,提出了一种具有三个特征的数字POSIT CIM宏:

1)双向机制处理单元(BRPU),用移位和连接逻辑取代复杂的编解码器逻辑,节省了40.3%的能量;

2)关键位预计算和存储(CPCS)CIM,利用空闲位方便CIM阵列在每个周期执行双位MAC,CIM单元利用率提高63%;

3)循环交替计算调度单元(CASU),如果没有重叠位,用按位或操作代替加法,节省了56.9%的能量。

2.2 该数字POSIT CIM宏(DP-CIM)的整体架构

图2 DP-CIM整体架构

整体架构组成:BRPU、16个带CPCS CIM阵列的CIM核、16个带CASU的加法器树、一个28kB的全局SRAM、一个FP2POSIT编码器、一个POSIT2FP解码器、顶层控制器。

数据流:数据先到编码器,FP转换成POSIT格式然后存储。CPCS检测权重位数位宽以预先计算并将逻辑值存储到备用CIM单元中。BRPU执行基于移位或的机制。CIM core具有CPCS,三种工作模式,包括3b模式、2-4b关联模式、正常模式,前两种模式是用预先计算和存储的逻辑值来实现CIM间双位MAC。CASU将加法替换为按位或的操作来代替无重叠尾数,他也改变了CPCS的计算顺序以增加不重叠尾数的数量。以上是此存算基本的数据流通路和计算模式,接下来我们详细介绍BRPU、CPCS、CASU这三个主要处理单元。

3 主要创新点

3.1 POSIT数据格式描述

POSIT数据由4部分组成:符号(S)、区位(R)、指数(E)、尾数(M),定义为POSIT(n,es),细节如下:

1)n是总比特位数;

2)es是指数E的比特位宽;

3)R是具有连续个0或1的一元码(温度计码);
(本文的R表示为:正值时,连续的1的个数减去1,例:R=3表示为“11110”;负值时,即为连续的0的个数,例:R=-4表示为“00001”.)

4)S是符号位,1bit位宽;

5)M和R可以动态变化(此动态机制后文会详细提到),m=n-r-es-1;

POSIT的计算表示为:(R需解码,其中K=2es)

POSIT=(-1)S × (2K)R × 2E × 1.M

图3 POSIT数据格式

3.2 具有三个特征的数字POSIT CIM宏(DP-CIM)

具有三个特征的数字POSIT CIM宏,以解决POSIT动态特性带来的挑战,主要提出了三块:

1)BRPU处理单元:

图4 R位计算

一句话解释:利用移位+按位或来代替多位加法+编码实现POSIT数据的R位计算。

图5 小绝对值数固定的移位

一句话解释:第一种随机移位只适用于两个正数,第二种小绝对值数固定的移位在各种情况下都适用。

2)CPCS处理单元:

一个8*48CIM阵列、一个负载控制器、一个关键位计算单元和一个3-8译码器。每行12个CIM单元,每列8个CIM单元(8行12列,每个单元包含4个存储cell)。

图6 CPCS处理单元

4b CIM单元有三种工作模式,首先来看第一种:

存储3b W[2:0]时,简单来说每个循环中计算P[2:0]=W*(A[n]|A[n+2]),双位MAC单元用这个结果获得O=W*A[n]+W*A[n+2];

当A[2]/A[0]=00/01时,O=P[2:0]=W*A[2]+W*A[0];

当A[2]/A[0]=10时,O=P[2:0]<<2;

当A[2]/A[0]=11时,O=P[2:0]+P[2:0]<<2;

双位MAC单元计算S[3:0]时,S[1]步骤消耗的晶体管最多,所以PCS是先把这一步结果预计算后储存在备用单元中。

图7 4b CIM的第一种工作模式

第二种模式,当Wn[0]=0时,存储4b权重,将Wn[3:1]视为3b权重,使用2bWm[1:0]中的备用位来存储Wn[P]。

图8 4b CIM的第二种工作模式

第三种模式,当Wn[0]=1时,存储4b权重:进行标准的位串行计算。

3)CASU处理单元

图9 CASU处理单元

一句话解释:对齐后没有重叠位时,直接用按位或代替加法。

图10 有重叠位时进行置换

一句话解释:对齐后有重叠位,则对W*A和W*B的为串行计算顺序进行置换,创建无重叠条件,它只需要一个加法器。

4 最终结果对比

图11 最终性能对比表

与同样使用POSIT数据格式的ISSCC’21,本课题在相同的技术节点下功耗降低了近10倍,POSIT 16下的能效比提升316.11倍、POSIT 8下的能效比提升334.60倍,POSIT 16下的面效比提升312.95倍、POSIT 8下的面效比提升306.87倍。

图12 芯片显微照片

图13 最终测试性能

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

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

相关文章

【UML用户指南】-08-对基本结构建模-图

目录 1、41视图 2、术语和概念 3、结构图 &#xff08;1&#xff09;类图&#xff08;class diagram&#xff09;&#xff1a; &#xff08;2&#xff09;构件图&#xff1a;&#xff08;component diagram&#xff09; &#xff08;3&#xff09;组合结构图&#xff1a;…

掌握ChatGPT的正确打开方式

引言 随着人工智能技术的飞速发展&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域取得了显著的突破。其中&#xff0c;聊天生成预训练变换器&#xff08;ChatGPT&#xff09;作为一种新型的对话式AI模型&#xff0c;引起了广泛关注。本文将详细介绍ChatGPT的正确使用…

更换 RT-DETR 主干网络为 【ResNet-18】【ResNet-34】| 已支持 18/34/50/101/152 全系列尺寸

本专栏内容均为博主独家全网首发,未经授权,任何形式的复制、转载、洗稿或传播行为均属违法侵权行为,一经发现将采取法律手段维护合法权益。我们对所有未经授权传播行为保留追究责任的权利。请尊重原创,支持创作者的努力,共同维护网络知识产权。 之前这篇文章写过了添加【R…

ChatGPT基本原理详细解说

ChatGPT基本原理详细解说 引言 在人工智能领域&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是研究的热点之一。随着技术的发展&#xff0c;我们见证了从简单的聊天机器人到复杂的语言模型的演变。其中&#xff0c;ChatGPT作为一项突破性技术&#xff0c;以其强大…

实战:Zig 编写高性能 Web 服务(2)

1.1 编写 HTTP server 我们从python -m http.server 8000启动得到灵感&#xff0c;先确定好目标&#xff1a; 编写一个HTTP/1.1 http serverzig version 0.12.0 使用zig init搭建项目的前置工作你先自行搭建好&#xff0c;不会的翻看前面铺垫的章节熟悉zig的项目结构。 关键…

小米用田忌赛马的方式,逼得苹果降价超2000元应对,确实厉害

苹果的iPhone15降价2300多元&#xff0c;成为618的大热门&#xff0c;之前不少人士认为迫使苹果如此大幅度降价的原因是因为另一家手机企业的竞争&#xff0c;而日前有人士认为是小米用田忌赛马的方式&#xff0c;迫使苹果降价应对。 小米这次大幅度降价的手机并非是最新款的小…

设计模式-策略模式(行为型)

行为型-策略模式 了解策略模式 策略模式是一种行为型设计模式&#xff0c;在策略模式中定义了一系列算法或者策略&#xff0c;并将这些策略封装到独立的类中&#xff0c;使得可以相互替换。在使用时&#xff0c;可以指定响应的策略使用。 角色 策略接口&#xff1a;对于某种…

【计算机网络】计算机网络的概念

计算机网络的概念 导读一、计算机网络的概念1.1 个人理解1.2 通信设备与线路1.2.1 集线器1.2.2 交换机1.2.3 路由器 1.3 计算机网络的进一步理解1.4 互联网1.5 网的不同含义 二、计算机网络的不同定义2.1 广义观点2.2 资源共享观点2.3 用户透明性观点 结语 导读 大家好&#x…

【机器学习】基于OpenCV和TensorFlow的MobileNetV2模型的物种识别与个体相似度分析

在计算机视觉领域&#xff0c;物种识别和图像相似度比较是两个重要的研究方向。本文通过结合深度学习和图像处理技术&#xff0c;基于OpenCV和TensorFlow的MobileNetV2的预训练模型模&#xff0c;实现物种识别和个体相似度分析。本文详细介绍该实验过程并提供相关代码。 一、名…

【Python】ERROR: Could not find a version that satisfies the requirement

成功解决“ERROR: Could not find a version that satisfies the requirement”错误的全面指南 一、引言 在Python开发中&#xff0c;经常需要通过pip工具来安装各种依赖包。然而&#xff0c;有时在尝试安装某个包时&#xff0c;可能会遇到“ERROR: Could not find a version …

批量提取 Word 文档中的全部图片

步骤 1、打开 WinRAR 任选一个现成的压缩包双击打开 WinRAR &#xff0c;或从开始菜单打开 WinRAR 2、直接把要提取图片的 Word 文档拖入 WinRAR 菜单区域 1 → 2 → 3&#xff0c;WinRAR 资源管理目录中的 media 就是该 Word 文档所要提取的全部图片所在文件夹 按住&#x…

python书上的动物是啥

Python的创始人为Guido van Rossum。1989年圣诞节期间&#xff0c;在阿姆斯特丹&#xff0c;Guido为了打发圣诞节的无趣&#xff0c;决心开发一个新的脚本解释程序&#xff0c;做为ABC语言的一种继承。之所以选中Python作为程序的名字&#xff0c;是因为他是一个叫Monty Python…

CATIA进阶操作——创成式曲面设计入门(1)线架设计,三维点、直线、平面、曲线

目录 引出三维空间点生成三维直线三维平面三维曲线总结异形弹簧新建几何体草图编辑&#xff0c;画一条样条线进行扫掠&#xff0c;圆心和半径画出曲面上的螺旋线再次选择扫掠&#xff0c;圆心和半径 其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重…

c++简略实现共享智能指针Shared_Ptr<T>

重点&#xff1a; 1.引用计数在堆上&#xff08;原本应为原子变量&#xff09; 2.引用计数增加减少需要加锁保证线程安全。 3.内部实现Release函数用于释放资源 4.未实现&#xff0c;增加自定义删除器可以将Release修改为模板函数&#xff0c;传入可调用参数。对于shared_p…

【Multi-Feature FAS】《Face Anti-Spoofing Based on Multi-Feature Fusion》

文章目录 原文贡献 / 相关工作作者的方法评价 原文 [1]杨敏.基于多特征融合的人脸防伪技术研究[D].武汉大学,2019. 贡献 / 相关工作 针对攻击对象存在背景依赖和非刚性运动造成的深度信息缺失问题&#xff0c;采用边缘信息放大差异 各种 loss 数据库 评价指标 本节将会对…

队列及其应用

实验内容 请设计一个简单的模拟银行排队系统&#xff0c;要求程序具有以下4项菜单&#xff1a; 1.取号。选择该菜单后&#xff0c;为客户产生一个排队号。 2.叫号。选择该菜单后&#xff0c;显示可服务的客户排队号。 3.查看队伍。从队首到队尾列出所有排队客户的排队号。 4.退…

94、python-第三阶段-4-数据计算-map方法

直接运行会报错&#xff0c;需要配置下python环境变量 from pyspark import SparkConf,SparkContext import os os.environ[PYSPARK_PYTHON]"D:/Program Files/Python/Python3.13/python.exe" conf SparkConf().setMaster("local[*]").setAppName("…

【数据结构】二叉树的层序遍历~动画超详解

目录 1 什么是层序遍历2 二叉树层序遍历的基本思路3 二叉树层序遍历的实现 1 什么是层序遍历 我们从字面意思就明白,所谓层序,就是一层一层按顺序去遍历一个二叉树,这和我们之前了解的按前中后序遍历方式完全不同 比方说这颗二叉树: 前序遍历: 层序遍历: 2 二叉树层序遍历的…

通过 AI Edge Torch 生成式 API 在设备上使用自定义大语言模型

作者 / 首席工程师 Cormac Brick&#xff0c;软件工程师 Haoliang Zhang 我们很高兴地发布 AI Edge Torch 生成式 API&#xff0c;它能将开发者用 PyTorch 编写的高性能大语言模型 (LLM) 部署至 TensorFlow Lite (TFLite) 运行时&#xff0c;从而无缝地将新的设备端生成式 AI 模…

申请医疗设备注册变更时,需要补充考虑网络安全的情况有哪些?

在申请医疗器械设备注册变更时&#xff0c;需要补充网络安全的情况主要包括以下几点&#xff1a; 网络安全功能更新&#xff1a;如果医疗器械的自研软件发生网络安全功能更新&#xff0c;或者合并网络安全补丁更新的情形&#xff0c;需要单独提交一份自研软件网络安全功能更新…