System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及集成电路,特别涉及一种硬件描述语言生成方法、装置、设备、介质和产品。
技术介绍
1、随着现代芯片技术的不断发展,人们对硬件性能的追求不断提高。为了提升硬件性能,在基础的运算模块之外,人们加入各种专用结构以处理特定的问题。为了解决大规模矩阵乘法下布线困难,且对内存读取次数过多,占用带宽的问题,人们提出使用脉动阵列来进行矩阵乘法。
2、然而,粗暴地使用脉动阵列来映射矩阵乘法效率极低,在实际使用时,硬件利用率在某些情况下会到达20%以下,而对其进行精细的处理则需要大量的人工干预,这将耗费设计者极大的精力且极易出错。
3、因此,如何在提高脉动阵列映射矩阵乘法的硬件利用率的同时,提高硬件描述语言生成的效率,是本领域技术人员急需解决的技术问题。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种硬件描述语言生成方法、装置、设备、可读存储介质和产品,解决了现有技术中硬件描述语言生成效率低的技术问题,并通过自动生成硬件描述语言的方式,减少了人工的参与度,提高硬件描述语言生成的效率。
2、为解决上述技术问题,本专利技术提供了一种硬件描述语言生成方法,包括:
3、基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列和控制模块;其中,所述基础矩阵为生成所述折叠脉动阵列所需的两个矩阵进行乘法运算确定的矩阵;所述目标折叠因子包括矩阵行的折叠因子和矩阵列的折叠因子;所述控制模块用于控制折叠后脉动阵列的输入输出;
4、基于基础处理元
5、基于所述折叠脉动阵列对应的参数和所述控制模块对应的参数,生成控制模块的硬件描述语言;其中,所述控制模块对应的参数包括折叠脉动阵列对应的内存读取顺序。
6、可选的,在所述基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列之前,还包括:
7、确定所述折叠脉动阵列对应的内存读取顺序为行优先,或者确定所述内存读取顺序为列优先。
8、可选的,所述基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列,包括:
9、利用矩阵a和矩阵b确定所述基础矩阵为;其中,所述矩阵a为,所述矩阵b为;
10、基于所述矩阵行的折叠因子m和所述矩阵列的折叠因子n对所述基础矩阵进行折叠,得到所述折叠脉动阵列为。
11、可选的,所述基于基础处理元的硬件描述语言和所述折叠脉动阵列对应的参数,生成折叠脉动阵列的硬件描述语言,包括:
12、通过调用个基础处理元,自动生成折叠脉动阵列的内部基础处理元之间的连接关系;
13、基于所述内存读取顺序和所述内部基础处理元之间的连接关系生成所述折叠脉动阵列的硬件描述语言。
14、可选的,所述基于所述折叠脉动阵列对应的参数和所述控制模块对应的参数,生成控制模块的硬件描述语言,包括:
15、通过所述折叠脉动阵列确定需要控制的行和列内存通道个数、每轮矩阵运算需要的周期数以及对折叠脉动阵列输出的脉动阵列控制时序;
16、通过所述目标折叠因子确定所述折叠脉动阵列需要进行矩阵计算的次数,通过所述内存读取顺序确定折叠脉动阵列中分块矩阵进行矩阵运算的顺序;
17、基于所述内存通道个数、所述每轮矩阵运算需要的周期数、所述脉动阵列控制时序、所述折叠脉动阵列需要进行矩阵计算的次数和所述折叠脉动阵列中分块矩阵进行矩阵运算的顺序,生成控制模块的硬件描述语言。
18、可选的,在生成硬件描述语言之后,还包括:
19、通过软件仿真工具测试所述硬件描述语言的正确性;
20、当所述硬件描述语言不符合要求时,重新基于新的目标折叠因子生成新的折叠脉动阵列和控制模块,进而生成新的硬件描述语言。
21、本申请还提供了一种硬件描述语言生成装置,包括:
22、折叠脉动阵列和控制模块确定模块,用于基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列和控制模块;其中,所述基础矩阵为生成所述折叠脉动阵列所需的两个矩阵进行乘法运算确定的矩阵;所述目标折叠因子包括矩阵行的折叠因子和矩阵列的折叠因子;所述控制模块用于控制折叠后脉动阵列的输入输出;
23、折叠脉动阵列的硬件描述语言确定模块,用于基于基础处理元的硬件描述语言和所述折叠脉动阵列对应的参数,生成折叠脉动阵列的硬件描述语言;
24、控制模块的硬件描述语言确定模块,用于基于所述折叠脉动阵列对应的参数和所述控制模块对应的参数,生成控制模块的硬件描述语言;其中,所述控制模块对应的参数包括折叠脉动阵列对应的内存读取顺序。
25、本申请还提供了一种硬件描述语言生成设备,包括:
26、存储器,用于存储计算机程序;
27、处理器,用于执行所述计算机程序时实现如上述的硬件描述语言生成方法的步骤。
28、本申请还提供了一种可读存储介质,所述可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述的硬件描述语言生成方法的步骤。
29、本申请还提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如上述的硬件描述语言生成方法的步骤。
30、可见,本专利技术通过基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列和控制模块;其中,基础矩阵为生成折叠脉动阵列所需的两个矩阵进行乘法运算确定的矩阵;目标折叠因子包括矩阵行的折叠因子和矩阵列的折叠因子;控制模块用于控制折叠后脉动阵列的输入输出;基于基础处理元的硬件描述语言和折叠脉动阵列对应的参数,生成折叠脉动阵列的硬件描述语言;基于折叠脉动阵列对应的参数和所述控制模块对应的参数,生成控制模块的硬件描述语言;其中,控制模块对应的参数包括折叠脉动阵列对应的内存读取顺序。本申请通过目标折叠因子和基础矩阵等参数得到对应的折叠脉动阵列和控制模块的设计,提高了脉动阵列的硬件利用率,并直接生成与折叠脉动阵列对应的硬件描述语言,以及生成与控制模块对应的硬件描述语言,通过减少设计脉动阵列时的人工参与度的方式,降低设计硬件的时间并减少人工参与设计导致错误的概率。
31、此外,本专利技术还提供了一种硬件描述语言生成装置、设备、可读存储介质及产品,同样具有上述有益效果。
本文档来自技高网...【技术保护点】
1.一种硬件描述语言生成方法,其特征在于,包括:
2.根据权利要求1所述的硬件描述语言生成方法,其特征在于,在所述基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列之前,还包括:
3.根据权利要求1所述的硬件描述语言生成方法,其特征在于,所述基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列,包括:
4.根据权利要求1至3任一项所述的硬件描述语言生成方法,其特征在于,所述基于基础处理元的硬件描述语言和所述折叠脉动阵列对应的参数,生成折叠脉动阵列的硬件描述语言,包括:
5.根据权利要求4所述的硬件描述语言生成方法,其特征在于,所述基于所述折叠脉动阵列对应的参数和所述控制模块对应的参数,生成控制模块的硬件描述语言,包括:
6.根据权利要求1所述的硬件描述语言生成方法,其特征在于,在生成硬件描述语言之后,还包括:
7.一种硬件描述语言生成装置,其特征在于,包括:
8.一种硬件描述语言生成设备,其特征在于,包括:
9.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机可执行指令,
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至6任一项所述的硬件描述语言生成方法的步骤。
...【技术特征摘要】
1.一种硬件描述语言生成方法,其特征在于,包括:
2.根据权利要求1所述的硬件描述语言生成方法,其特征在于,在所述基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列之前,还包括:
3.根据权利要求1所述的硬件描述语言生成方法,其特征在于,所述基于目标折叠因子对基础矩阵进行处理,得到折叠脉动阵列,包括:
4.根据权利要求1至3任一项所述的硬件描述语言生成方法,其特征在于,所述基于基础处理元的硬件描述语言和所述折叠脉动阵列对应的参数,生成折叠脉动阵列的硬件描述语言,包括:
5.根据权利要求4所述的硬件描述语言生成方法,其特征在于,所述基于所述折叠脉动阵列对应的参数和所述控制模块对...
【专利技术属性】
技术研发人员:张川,李慕浩,黄永明,尤肖虎,
申请(专利权)人:紫金山实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。