可重构张量运算单元的硬件实现方法及系统

allin2025-07-18  213


本发明涉及可重构处理器,尤其涉及一种可重构张量运算单元的硬件实现方法及系统。


背景技术:

1、本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

2、张量,作为向量和矩阵的高维推广,是机器学习和高性能计算中数据表示和存储的基本形式。张量运算,包括卷积层的卷积运算和全连接层的矩阵乘法等,是处理张量数据的关键技术。传统张量运算(即矩阵乘法运算)依赖于算子对,其中实现逐元素计算,实现多元素归约。

3、除了传统张量运算外,动态规划算法也可使用这种“逐元素计算-多元素归约”的算子组合进行实现。例如 needleman-wunsch 算法的迭代公式

4、

5、可以被认为是向量和之间使用逐元素计算和多元素归约实现的“广义张量运算”。

6、广义张量运算在动态规划、图计算等领域有广泛的应用。广义张量运算因其与传统张量运算的相似性,具有并行计算的潜力,且能与传统张量运算加速器硬件共享数据通路,从而提高资源的利用效率。然而,目前的硬件张量运算单元仅支持传统张量运算,却不支持广义张量运算。目前的硬件张量运算单元包括通用计算芯片和张量计算核心。

7、(1)通用计算芯片

8、通用计算芯片主要包括指令集处理器(cpu)和现场可编程器件(fpga)。由于通用计算的要求,指令集处理器中的取指译码和寄存器堆访问等非计算功能需要消耗 80% 以上的功耗。而 fpga 中冗余的运算和互连资源通常需要占用 95% 左右的面积和功耗,这使得通用计算芯片的能量效率和计算能力都难以满足需求。总体来说,通用计算芯片的能量效率比领域定制芯片低三到四个数量级。

9、(2)张量计算核心

10、张量计算核心(tensor core)是一种专门为深度学习中的张量运算设计的硬件加速器。张量运算单元的主要目的是加速深度学习中的矩阵运算,特别是那些涉及到高维数据的操作。在深度学习中,矩阵运算是计算密集型的,需要大量的乘法和累加操作。张量运算单元通过并行处理这些操作来提高性能。然而,张量计算核心只支持由算子对构建的传统张量运算,并不支持更丰富的算子组合,使得它的应用场景仅限于机器学习中的矩阵运算。

11、综上,目前缺乏一种同时支持传统张量运算和广义张量运算的硬件实现系统。


技术实现思路

1、本发明实施例提供一种可重构张量运算单元的硬件实现方法,可同时支持传统张量运算和广义张量运算,该方法包括:

2、获取目标领域的典型应用集合的软件程序,分析软件程序中的目标应用算法,提取出目标应用算法中使用的特征算子对,得到特征算子对集合;

3、以特征算子对集合中的特征算子对作为基本计算单元,生成同构的二维空间阵列结构的可重构张量运算阵列的硬件描述,并根据所述硬件描述制造可重构张量运算单元对应的芯片;

4、将目标应用算法重写为广义张量运算的形式,使用广义乘加标记对广义张量运算的形式进行描述,将描述的广义乘加标记映射到可重构张量运算单元对应的芯片上,得到能在可重构张量运算单元上执行的硬件程序。

5、本发明实施例还提供一种可重构张量运算单元的硬件实现系统,可同时支持传统张量运算和广义张量运算,该系统包括:

6、特征算子对集合获得模块,用于获取目标领域的典型应用集合的软件程序,分析软件程序中的目标应用算法,提取出目标应用算法中使用的特征算子对,得到特征算子对集合;

7、可重构张量运算阵列获得模块,用于以特征算子对集合中的特征算子对作为基本计算单元,生成同构的二维空间阵列结构的可重构张量运算阵列的硬件描述,并根据所述硬件描述制造可重构张量运算单元对应的芯片;

8、硬件程序获得模块,用于将目标应用算法重写为广义张量运算的形式,使用广义乘加标记对广义张量运算的形式进行描述,将描述的广义乘加标记映射到可重构张量运算单元对应的芯片上,得到能在可重构张量运算单元上执行的硬件程序。

9、本发明实施例中,获取目标领域的典型应用集合的软件程序,分析软件程序中的目标应用算法,提取出目标应用算法中使用的特征算子对,得到特征算子对集合;以特征算子对集合中的特征算子对作为基本计算单元,生成同构的二维空间阵列结构的可重构张量运算阵列的硬件描述,并根据所述硬件描述制造可重构张量运算单元对应的芯片;将目标应用算法重写为广义张量运算的形式,使用广义乘加标记对广义张量运算的形式进行描述,将描述的广义乘加标记映射到可重构张量运算单元对应的芯片上,得到能在可重构张量运算单元上执行的硬件程序。与现有技术方案相比,本发明实施例不仅支持传统的张量运算,还能高效实现包括动态规划算法在内的多种目标应用算法;另外,将目标应用算法重写为广义张量运算的形式,使用广义乘加标记对广义张量运算的形式进行描述,将描述的广义乘加标记映射到可重构张量运算单元对应的芯片上,得到能在可重构张量运算单元上执行的硬件程序,该灵活的硬件调度策略,可动态且高效地支持多种动态规划算法在内的多种目标应用算法的实现。



技术特征:

1.一种可重构张量运算单元的硬件实现方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,目标应用算法包含各类动态规划算法,目标应用算法中的核心计算部分都由逐元素计算和多元素归约两种计算模式组合而成。

3.如权利要求1所述的方法,其特征在于,特征算子对包括一个逐元素计算的算子和一个多元素归约的算子;

4.如权利要求1所述的方法,其特征在于,可重构张量运算阵列能够实现不少于两种算子组合,且能够动态配置为在多种算子组合间实时切换。

5.如权利要求1所述的方法,其特征在于,可重构张量运算阵列电路结构为同构的空间阵列结构;

6.如权利要求5所述的方法,其特征在于,生成同构的二维空间阵列结构的可重构张量运算阵列的硬件描述,包括:

7.如权利要求1所述的方法,其特征在于,所述广义张量运算的形式中,输入为两个张量,输出为一个张量,每个张量为一个多维数组,输出的张量中每个元素能够通过输入的两个张量中对应元素先逐元素计算,后多元素归约得到。

8.如权利要求7所述的方法,其特征在于,使用广义乘加标记对广义张量运算的形式进行描述,包括:

9.如权利要求8所述的方法,其特征在于,将描述的广义乘加标记映射到可重构张量运算单元对应的芯片上,包括:

10.如权利要求9所述的方法,其特征在于,将广义张量运算划分为多个符合尺寸约束条件的张量运算任务,包括:

11.一种可重构张量运算单元的硬件实现系统,其特征在于,包括:


技术总结
本发明公开了一种可重构张量运算单元的硬件实现方法及系统,该方法包括:获取目标领域的典型应用集合的软件程序,分析软件程序中的目标应用算法,提取出目标应用算法中使用的特征算子对,得到特征算子对集合;以特征算子对集合中的特征算子对作为基本计算单元,生成同构的二维空间阵列结构的可重构张量运算阵列的硬件描述,并根据所述硬件描述制造可重构张量运算单元对应的芯片;将目标应用算法重写为广义张量运算的形式,使用广义乘加标记对广义张量运算的形式进行描述,将描述的广义乘加标记映射到可重构张量运算单元对应的芯片上,得到能在可重构张量运算单元上执行的硬件程序。本发明可同时支持传统张量运算和广义张量运算。

技术研发人员:刘雷波
受保护的技术使用者:清华大学
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-23112.html

最新回复(0)