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

07-11 1709阅读

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

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

图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)的整体架构

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

图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

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

图3 POSIT数据格式

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

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

1)BRPU处理单元:

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

图4 R位计算

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

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

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

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

2)CPCS处理单元:

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

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

图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]

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]