当前位置: 首页 > 专利查询>湖南大学专利>正文

一种基于FT-2000+的整数矩阵乘法内核优化方法技术

技术编号:32456276 阅读:30 留言:0更新日期:2022-02-26 08:35
本发明专利技术公开了一种基于FT

【技术实现步骤摘要】
一种基于FT

2000+的整数矩阵乘法内核优化方法


[0001]本专利技术属于信息处理领域,尤其提供了一种基于FT

2000+的整数矩阵乘法内核优化方法。

技术介绍

[0002]矩阵运算一直是高性能计算领域与科学计算领域的核心问题。而BLAS库中的许多函数,例如特征值求解和奇异值求解,是许多科学与工程应用的底层计算支撑。结构计算、自动控制、集成电路设计、化学模拟等领域都要将BLAS库作为底层计算函数库。同时BLAS库做为标准库函数的一种,是评测计算机性能的核心程序,在高性能计算中被广泛使用。HPL(高性能标准测试函数)在有一些极端情况下超过90%以上的时间都在进行矩阵运算。当前针对BLAS库优化的方向主要存在两个方向。一种是通过底层操作系统API(应用程序接口)获得当前体系结构的详细性能参数,例如L1缓存大小、L2缓存大小、L3缓存大小、内存大小等,然后通过参数的不同,自动计算出该平台下最佳的优化方案,这种优化方向最终产生的BLAS版本具有较好的可移植性;另外一个方向是基于不同的体系结构进行BLAS库的优本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于FT

2000+的整数矩阵乘法内核优化方法,其特征在于,包括如下步骤:步骤一、根据输入和输出矩阵数据长度的不同,对子函数的设计内容加以区分;步骤二、确定矩阵分块策略;步骤三、基于指定目标,同时结合飞腾2000+体系结构,确定计算内核规模及内核寄存器分配策略;步骤四、根据步骤三汇总确定的分块策略,确定矩阵数据重排策略,得到优化后的FT

2000+的整数矩阵乘法内核。2.如权利要求1所述的基于FT

2000+的整数矩阵乘法内核优化方法,其特征在于,所述步骤一包括如下步骤:设置三种类型的整数矩阵乘法的内核寄存器:第一种矩阵乘法:若输入矩阵A和输入矩阵B的数据均为有符号int16,输出矩阵C的数据为有符号int32,则选择子函数为fastblas_sigemm;第二种矩阵乘法:若输入矩阵A和输入矩阵B的数据均为有符号int8,输出矩阵C的数据为有符号int32,则选择子函数为fastblas_schgemm;第三种矩阵乘法:若输入矩阵A和输入矩阵B的数据均为无符号int8,输出矩阵C的数据为有符号int32,则选择子函数为fastblas_chgemm。3.如权利要求2所述的基于FT

2000+的整数矩阵乘法内核优化方法,其特征在于,所述步骤二的矩阵分块策略如下:(1)在最外层循环中,首先将矩阵B、C分别按列分为若干个矩阵规模为k
×
n
c
的子矩阵B
c
和m
×
n
c
的子矩阵;(2)第二层中,将矩阵A按列得到panel A、矩阵B按行进行分块得到panel B,完成后矩阵A的规模为m
×
k
c
,panel B的规模为k
c
×
n
c
;(3)第三层中,在panelA的基础上按行进行切分得到子矩阵blockA,规模为mc
×
kc,结合panelB可以得到结果矩阵C的规模为mc
×
nc;(4)panelB按列切分成规模为kc
×
nr的子矩阵Br,blockA按行切分为mr
×
kc的子矩阵Ar,得到了micro

kernel;(5)最后一层中,我们每次取矩阵A的一列与矩阵B的一行相乘,得到结果矩阵Cr,然后将Cr进行累加从而得到结果矩阵C;三种类型的整数矩阵乘法的内核寄存器的分块参数如下:其中,fastblas_sigemm内核寄存器中由于规模为k
c
×
n
r
的矩阵B
r
被重复使用,因此矩阵B
r
要一直存储在L1缓存中;同时规模为m
r
×
k
c
的矩阵A
r
要从L2缓存中加载到L1缓存,并且计算完成后需要更新矩阵规模为m
r
×
n
r
的矩阵C
r
,并且要将结果从寄存器中存储到计算机内存层次结构中;此时数据计算量为2m
r
n
r
k
c
;那么此时的计算访存比为:同时实际上m
c
是m
r
的整数倍,因为GEBS和GESS的计算访存比类似,所以GEBS和GESS的比率简化为:
其中,m
r
为8,k
c
为1024,n
r
为8;隐藏掉输出矩阵C数据存储到内存中的这个过程的开销,此时只要m
r
和n
r
的值确定了,则k
c
的值取最大值;另一方面,受限于L1缓存,k
c
受到如下限制:其中,n
r
=8,element_size=2,并且飞腾2000+中L1缓存大小为32KB,从而得到得到k
c
=1024;同理得公式:k
c
=1024,element_size=2,并且飞腾2000+中L2缓存大小为2MB,得到m
c
=512;由于飞腾2000+的处理器并没有L3缓存,选取经验值n
c
=10240;产品呢个人得到fast_sigemm的全部参数:m
r
=8,n
r
=8,k
c
=1024,m
c
=512,n
c
=10240;根据上述方法,fastblas_chgemm内核寄存器中计算得到得到fast_chgemm的全部参数:m

【专利技术属性】
技术研发人员:全哲肖仕扬
申请(专利权)人:湖南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1