【技术实现步骤摘要】
一种基于存内计算的稀疏矩阵稠密乘法加速器
[0001]本专利技术涉及存内计算领域,具体来说,涉及一种基于存内计算的稀疏矩阵稠密乘法加速器。
技术介绍
[0002]稀疏矩阵稠密向量乘法(sparse matrix
‑
dense vector multiplication,SpMV)是一个基本的线性代数内核,也是一个重要的计算原语。它在多种应用中被使用,例如科学计算和图形处理。由于较差的数据局部性和不规则的内存访问,传统SpMV加速器的性能通常受到内存的限制。存内计算(In
‑
memory computing,IMC)被视为缓解内存瓶颈的一种很有前途的技术。然而现存的基于存内计算的SpMV加速器存在一些缺陷,使得他们难以很好地支持对SpMV的加速。
[0003]现有的基于存内计算技术的稀疏矩阵稠密向量乘法加速器主要包括以下两种:
[0004]方案一:以参考文献[1]为代表的方案则是使用基于电阻式随机存取存储器(resistive random
‑
access memory,ReRAM)的内存存储参与乘法计算的稀疏矩阵数据。随后使用内存可寻址存储器(Content Addressable Memory,CAM)阵列完成索引匹配,将匹配的稀疏矩阵数据从内存中读出然后使用靠近内存的浮点乘法器来完成SpMV计算[1]。
[0005]方案二:以参考文献[2]为代表的方案则是使用基于ReRAM的乘加(Multiply
‑
Add Compu ...
【技术保护点】
【技术特征摘要】
1.一种基于存内计算的稀疏矩阵稠密乘法加速器,其特征在于,所述加速器包括:控制器,用于根据当前的计算任务,确定其中稀疏矩阵的所有非零数值、稠密向量的所有非零数值、稀疏矩阵和稠密向量的每个非零数值对应的行索引值和列索引值,且非零数值为浮点数值;CAM阵列,用于存储稀疏矩阵的每个非零数值对应的行索引值和列索引值,根据稠密向量的每个非零数值的行索引值匹配需与之进行计算的稀疏矩阵的每个非零数值的列索引值和行索引值,得到匹配结果;MAC阵列,用于根据CAM阵列的匹配结果关联存储稀疏矩阵的每个非零数值和稠密向量的每个非零数值,并执行关联存储的稀疏矩阵的每个非零数值与稠密向量对应的非零数值间的浮点乘法计算,得到计算结果。2.根据权利要求1所述的加速器,其特征在于,所述匹配结果包括与稠密向量对应行的非零数值进行计算的稀疏矩阵对应列的所有非零数值的第一匹配结果,MAC阵列按以下方式执行浮点乘法计算:根据CAM阵列的第一匹配结果在MAC阵列的每行中关联存储稀疏矩阵的一个非零数值和与该数值进行计算的稠密向量对应的一个非零数值;按预设规则将MAC阵列的每行中关联存储的稀疏矩阵的非零数值与稠密向量对应的非零数值进行浮点乘法计算,得到MAC阵列的每行的计算结果。3.根据权利要求2所述的加速器,其特征在于,所述稀疏矩阵和稠密向量的每个非零数值包括指数和尾数,所述MAC阵列的每行中包括多个FeFET晶体管,每个FeFET晶体管存储稀疏矩阵的非零数值的尾数的一位二进制数值,其中,按以下方式得到每行的计算结果:将每行中关联存储的稀疏矩阵的非零数值的指数与稠密向量对应的非零数值的指数相加,得到总指数值;将对应行关联存储的稠密向量的非零数值的尾数的每位二进制数值按位将对应位的二进制数值输入到该行的每个FeFET晶体管中,每个FeFET晶体管执行输入二进制数值与其存储的二进制数值间的乘法计算,以得到该行的尾数计算结果;根据每行的总指数值和尾数计算结果得到每行的计算结果。4.根据权利要求3所述的加速器,其特征在于,所述每个FeFET晶体管按以下方式执行输入二进制数值与其存储的二进制数值间的乘法计算:每个FeFET晶体管根据输入为零的二进制数值与其存储的二进制数值间的乘法计算得到尾数计算结果的相应位为零,根据输入为一的二进制数值与其存储的二进制数值间的乘法计算得到尾数计算结果的相应位为其存储的二进制数值。5.根据权利要求3所述的加速器,其特征在于,所述MAC阵列包括由多个寄存器构成的寄存器堆和第一交叉开关矩阵,第一交叉开关矩阵的每行对应一个寄存器,通过第一交叉开关矩阵的每行和其对应的寄存器关联存储稀疏矩阵的非零数值和与该数值进行计算的稠密向量对应的非零数值,其中,按照以下方式进行关联存储:通过第一交叉开关矩阵在所述矩阵的每行中存储稀疏矩阵的非零数值的尾数,其中,MAC阵列每行中的多个FeFET晶体管设置在第一交叉开关矩阵的每行中用于存储尾数的相应位的二进制数值;通过寄存器堆在稀疏矩阵的非零数值的尾数所在的行对应的寄存器中存储该稀疏矩
阵的非零数值的指数、与该稀疏矩阵的非零数值进行计算的稠密向量的非零数值的指数和尾数。6.根据权利要求5所述的加速器,其特征在于,所述MAC阵列按以下方式得到最终计算结果:按确定搜索的行索引值从小到大的顺序依次匹配CAM阵列中存储的与之相等的行索引值,得到与稀疏矩阵对应行的所有非零数值进行计算的稠密向量对应的非零数值的第二匹配结果;根据第二匹配结果将稀疏矩阵的对应行中所有非零数值与对应非零数值关联存储的稠密向量的非零数值进行乘法计算,得到稀疏矩阵的对应行对应的乘法结果;根据稀疏矩阵的对应行中所有非零数值的指数和与对应非零数值进行浮点乘法计算的稠密向量的非零数值的指数,对稀疏矩阵的对应行中对应的乘法结果进行浮点乘加,得到稀疏矩阵的对应行的乘加结果;根据稀疏矩阵的所有行对应的乘加结果得到最终计算结果。7.根据权利要求6所述的加速器,其特征在于,所述MAC阵列包括寻找最大值电路、延迟电路、数模转换器、采样保持电路、模数转换器和移位累加电路,其中,寻找最大值电路对每个寄存器存储的稀疏矩阵的非零数值的指数和稠密向量的非零数值的指数进行求和,得到每个寄存器对应的总指数值,并按照以下方式得到稀疏矩阵的对应行的乘加结果:通过寻找最大值电路根据稀疏矩阵的对应行中的所有非零数值以及每个非零数值对应的总指数值,得到最大的总指数值,计算所述对应行中的每个非零数值对应的总指数值与最大的总指数值间的差值;通过延迟电路根据稀疏矩阵的对应行中的每个非零数值对应的差值,得到稀疏矩阵的对应行中的每个非零数值延迟计算的时钟周期;通过数模转换器将与稀疏矩阵的对应行中的每个非零数值关联存储的稠密向量的对应非零数值的尾数延迟对应时钟周期输入第二交叉开关矩阵中,以与稀疏矩阵的对应行中的对应非零数值进行乘法计算,得到对应时钟周期的计算结果;通过采样保持电路获取并保存每个时钟周期的计算结果;通过模数转换器将每个时钟周期的计算结果...
【专利技术属性】
技术研发人员:张啸宇,陈晓明,韩银和,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。