离散傅立叶相关变换的硬件实施制造技术

技术编号:37346023 阅读:13 留言:0更新日期:2023-04-22 21:40
离散傅立叶相关变换的硬件实施。公开了一种使用硬件加速器执行离散傅立叶相关变换的机制,所述硬件加速器包括固定功能电路系统,所述固定功能电路系统包括被配置为执行一个或多个卷积运算的卷积硬件。在所述离散傅立叶相关变换中使用的矩阵乘法运算由所述卷积硬件使用卷积运算来执行。所述卷积运算的卷积核是从表示所述矩阵乘法运算的被乘数或乘数的权重矩阵中导出的。权重矩阵中导出的。权重矩阵中导出的。

【技术实现步骤摘要】
离散傅立叶相关变换的硬件实施


[0001]本专利技术涉及离散傅立叶相关变换的硬件实施。

技术介绍

[0002]诸如离散傅立叶变换(DFT)和离散余弦变换(DCT)的离散傅立叶相关变换(DFRT)是具有各种应用的有用运算。DFRT是遵循傅立叶分析原理的任何线性变换,并且包括将离散样本序列(表示函数)映射到对应于正交基函数(例如,正弦、余弦、复指数函数及其组合)的系数序列的任何离散变换。DFRT的一个示例性用途是在神经网络过程中,所述过程采用一个或多个神经网络来处理数据。例如,DFRT可以用于输入到神经网络的数据的预处理和/或从神经网络输出的数据的后处理。本领域技术人员将很容易设想DFRT的其他潜在用途。DFRT背后的数学原理在本领域中是众所周知的。
[0003]DFT将离散样本序列分解成其空间或时间频率。DFT是执行快速傅立叶变换(FFT)或短时傅立叶变换(STFT)的重要组成部分,这两种变换可以类似地(但不排他地)用于神经网络过程。作为示例,STFT可以用于在生成频谱图时处理音频数据,这通常被认为是使用(例如用于语音识别的)神经网络对音频输入进行信号处理的第一步。
[0004]DCT提供了另一种方法,用于以不同频率处的余弦函数的加权和的形式,根据频率来表示离散样本序列。作为一个示例,DCT函数在计算音频信号的梅尔频率倒谱系数(MFCC)时是有用的,并且可以形成音频信号的频谱图的处理的一部分。
[0005]在专门适配的硬件加速器(通常称为神经网络加速器(NNA))上实施神经网络变得越来越普遍。这些设备——通常是集成电路——通常专门用于评估在使用神经网络进行推理时遇到的最常见和计算密集型的运算。例如,神经网络加速器可以包括卷积硬件(例如,一个卷积引擎或多个卷积引擎),其专门用于评估卷积和解卷积。
[0006]NNA的专用硬件元素意味着NNA上有本机硬件支持的运算集/池有限。

技术实现思路

[0007]提供本
技术实现思路
是为了以简化形式介绍下文在具体实施方式中进一步描述的一系列概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0008]提供了使用硬件加速器执行离散傅立叶相关变换的机制,所述硬件加速器包括固定功能电路系统,所述固定功能电路系统包括被配置为执行一个或多个卷积运算的卷积硬件。在所述离散傅立叶相关变换中使用的矩阵乘法运算由实施卷积运算的所述卷积硬件执行。所述卷积运算的卷积核是从表示所述矩阵乘法运算的被乘数或乘数的权重矩阵中导出的。
[0009]提出了一种使用硬件加速器实施离散傅立叶相关变换的方法,所述硬件加速器包括固定功能电路系统,所述固定功能电路系统包括被配置为执行一个或多个卷积运算的卷积硬件,其中所述离散傅立叶相关变换包括至少一个矩阵乘法运算。
[0010]所述方法包括:获得输入数据,其中所述输入数据包括要经历所述离散傅立叶相关变换的值;获得至少一个卷积核,其中每个卷积核是从权重矩阵中导出的,所述权重矩阵表示所述离散傅立叶相关变换的所述至少一个矩阵乘法运算的被乘数或乘数;以及使用所述硬件加速器对所述输入数据执行所述离散傅立叶相关变换,其中所述离散傅立叶相关变换的所述至少一个矩阵乘法运算是通过使用所述卷积硬件使用所述至少一个卷积核执行一个或多个卷积运算来执行的。
[0011]要经历离散傅立叶相关变换的输入数据和/或值可以包括音频和/或视觉数据,例如图像。在特定示例中,要经历离散傅立叶相关变换的值可以包括从麦克风和/或相机或其他声/光敏感传感器获得的样本。在另一个示例中,要经历离散傅立叶相关变换的值可以是从从麦克风和/或照相机或其他声/光敏感传感器获得的样本中导出的,换句话说,样本在经历离散傅立叶相关变换之前可能已经经过了一些其他音频/图像处理。要经历离散傅立叶相关变换的输入数据和/或值可以例如包括从雷达/RADAR系统中导出的数据。这种数据的处理在汽车工业中特别重要,因此特别希望提高处理这种数据的效率和灵活性。
[0012]输入数据可以是张量(例如向量或矩阵),即“输入张量”。输入张量可具有高度、宽度、通道、批和/或长度的维度(取决于张量的精确实施方式)。
[0013]在此上下文中,“固定功能”是指电路系统的特性,即电路系统实施的逻辑在制造之后不能被重新配置(或至少不能被广泛地重新配置)。这与例如可重新配置的现场可编程逻辑形成对比。其还与通用处理器硬件形成对比,所述通用处理器硬件完全可编程以实施任何(任意)函数或算法。硬件加速器可包括在专用集成电路(ASIC)中。固定功能电路系统的行为可在有限程度上可编程。例如,固定功能电路系统的模块可以能够在有限参数集的控制下执行其固定功能。因此,每个模块可能仅在其可实施例如具有各种步长和核大小的卷积或池化的意义上可重新配置,但在其可能执行任意算法的意义上并不完全可编程。
[0014]在一些示例中,离散傅立叶相关变换是离散傅立叶变换。
[0015]所述输入数据可以包括第一张量,所述第一张量仅包括要经历所述离散傅立叶变换的值的实部。所述离散傅立叶变换可以包括第一组矩阵乘法,所述第一组矩阵乘法包括:将所述第一张量乘以第一权重矩阵以产生第一相乘张量;以及将所述第一张量乘以第二权重矩阵(Im(W))以产生第二相乘张量;所述至少一个卷积核包括从所述第一权重矩阵中导出的第一卷积核和从所述第二权重矩阵导出的第二卷积核;并且所述第一组矩阵乘法是通过使用所述卷积硬件使用所述第一卷积核和所述第二卷积核执行至少两次卷积来执行的。
[0016]在一种方法中,所述输入数据仅包括要经历所述离散傅立叶变换的实值;所述第一组乘法是通过以下步骤进行的:使用所述第一卷积核对所述第一张量进行第一卷积以产生所述第一相乘张量;以及使用所述第二卷积核对所述第一张量执行第二卷积以产生所述第二相乘张量。
[0017]在另一种方法中,所述输入数据可以还包括第二张量,所述第二张量仅包括要经历所述离散傅立叶变换的值的虚部。所述离散傅立叶变换可以包括第二组矩阵乘法,所述第二组矩阵乘法包括:将所述第二张量乘以所述第一权重矩阵以产生第三相乘张量;以及将所述第二张量乘以所述第二权重矩阵以产生第四相乘张量;并且所述第二组矩阵乘法是通过使用所述卷积硬件使用所述第一卷积核和所述第二卷积核执行至少两次卷积以执行所述第二组矩阵乘法来执行的。
[0018]在一些示例中,存在一种使用硬件加速器实施离散快速傅立叶变换的方法,所述硬件加速器包括固定功能电路系统,所述固定功能电路系统包括被配置为执行一个或多个卷积运算的卷积硬件,所述方法包括:获得输入数据,其中所述输入数据包括要经历所述快速傅立叶变换的值;将所述输入数据划分成两个或更多个部分;使用本文描述的方法对所述输入数据的每个部分执行离散傅立叶变换,以产生相应的两个或更多个DFT输出;以及使用所述硬件加速器组合所述DFT输出以产生包括所述输入数据的快速傅立叶变换的FFT输出。
[0019]将所述输入数据划分成两个或更多个部分的步骤可以包括使用两个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种使用硬件加速器实施离散傅立叶相关变换的方法,所述硬件加速器包括固定功能电路系统,所述固定功能电路系统包括被配置为执行一个或多个卷积运算的卷积硬件,其中所述离散傅立叶相关变换包括至少一个矩阵乘法运算,所述方法包括:获得输入数据,其中所述输入数据包括要经历所述离散傅立叶相关变换的值;获得至少一个卷积核,其中每个卷积核是从权重矩阵中导出的,所述权重矩阵表示所述离散傅立叶相关变换的所述至少一个矩阵乘法运算的被乘数或乘数;以及使用所述硬件加速器对所述输入数据执行所述离散傅立叶相关变换,其中所述离散傅立叶相关变换的所述至少一个矩阵乘法运算是通过使用所述卷积硬件使用所述至少一个卷积核执行一个或多个卷积运算来执行的。2.如权利要求1所述的方法,其中每个卷积核是通过整形和/或置换相应权重矩阵的维度来生成的。3.如权利要求2所述的方法,其中在获得所述输入数据之前生成所述卷积核。4.如权利要求1至3中任一项所述的方法,其中:所述输入数据包括两个或更多个值序列,所述两个或更多个值序列中的每个值序列将使用所述离散傅立叶相关变换的相应实例被单独变换;并且使用单个卷积运算对相应的值序列执行所述离散傅立叶相关变换的多个实例的所述至少一个矩阵乘法运算中的矩阵乘法运算。5.如权利要求1至4中任一项所述的方法,其中所述离散傅立叶相关变换是离散傅立叶变换。6.如权利要求5所述的方法,其中:所述输入数据包括第一张量,所述第一张量仅包括要经历所述离散傅立叶变换的值的实部;所述离散傅立叶变换包括第一组矩阵乘法,所述第一组矩阵乘法包括:将所述第一张量乘以第一权重矩阵以产生第一相乘张量;以及将所述第一张量乘以第二权重矩阵以产生第二相乘张量;所述至少一个卷积核包括从所述第一权重矩阵导出的第一卷积核和从所述第二权重矩阵中导出的第二卷积核;并且所述第一组矩阵乘法是通过使用所述卷积硬件使用所述第一卷积核和所述第二卷积核执行至少两次卷积来执行的。7.如权利要求6所述的方法,其中:所述输入数据还包括第二张量,所述第二张量仅包括要经历所述离散傅立叶变换的值的虚部;所述离散傅立叶变换包括第二组矩阵乘法,所述第二组矩阵乘法包括:将所述第二张量乘以所述第一权重矩阵以产生第三相乘张量;以及将所述第二张量乘以所述第二权重矩阵以产生第四相乘张量;并且所述第二组矩阵乘法是通过使用所述卷积硬件使用所述第一卷积核和所述第二卷积核执行至少两次卷积以执行所述第二组矩阵乘法来执行的。8.如权利要求7所述的方法,其中所述第一组矩阵乘法和所述第二组矩阵乘法是通过以下步骤执行的:
连接所述第一张量和所述第二张量以产生连接张量;使用所述第一卷积核对所述连接张量执行第一卷积,以产生包括所述第一相乘张量和所述第三相乘张量的第一卷积输出;使用所述第二卷积核对所述连接张量执行第二卷积,以产生包括所述第二相乘张量和所述第四相乘张量的第二卷积输出;拆分所述第一卷积输出和所述第二卷积输出以产生所述第一乘积张量、所述第二乘积张量、所述第三乘积张量和所述第四乘积张量。9.如权...

【专利技术属性】
技术研发人员:S
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1