CN116931876A - 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 - Google Patents
矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 Download PDFInfo
- Publication number
- CN116931876A CN116931876A CN202310925552.2A CN202310925552A CN116931876A CN 116931876 A CN116931876 A CN 116931876A CN 202310925552 A CN202310925552 A CN 202310925552A CN 116931876 A CN116931876 A CN 116931876A
- Authority
- CN
- China
- Prior art keywords
- matrix
- matrix operation
- accelerator
- memory
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 307
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000015654 memory Effects 0.000 claims abstract description 148
- 238000004364 calculation method Methods 0.000 claims abstract description 97
- 230000008569 process Effects 0.000 claims abstract description 25
- 239000013598 vector Substances 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/35—Constructional details or hardware or software details of the signal processing chain
- G01S19/37—Hardware or software details of the signal processing chain
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Nonlinear Science (AREA)
- Mathematical Physics (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
- Advance Control (AREA)
Abstract
本申请提供一种矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质,涉及卫星定位技术领域。该系统包括:矩阵运算加速器、总线、处理器和设置在矩阵运算加速器内部的内部存储器;总线连接矩阵运算加速器和处理器;矩阵运算加速器中设置有浮点运算单元阵列;处理器用于下发需要执行的目标任务以供矩阵运算加速器进行处理;矩阵运算加速器用于基于浮点运算单元阵列对目标任务的目标矩阵进行流水计算,得到计算数据。通过矩阵运算加速器中设置的浮点运算单元阵列对矩阵运算任务进行流水计算,并将各阶段的数据分别存储在对应的内部存储器中,能够降低矩阵运算的成本,提高矩阵运算的效率,从而提高卫星定位导航系统的工作效率。
Description
技术领域
本申请涉及卫星定位技术领域,具体而言,涉及一种矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质。
背景技术
卫星定位导航系统是包含射频、基带、各类传感器、定位算法组成的系统。各设备能够将采集的数据输入给定位算法,定位算法融合来自基带的卫星定位信息和上述传感器的输入,获得高可靠性的定位导航信息,并传输给下游设备。在进行定位计算时,通常是由片上系统SOC(System on Chip)方法架构嵌入式处理器进行设计,其在一块芯片上集成了包括通用处理器核心、辅助核心、数据总线、存储设备、执行设备、通用接口、电源管理、传感器等组件构成的完整微电子电路系统。并且,围绕嵌入式处理器芯片,进行驱动底层软件开发、上层业务应用软件开发、配套硬件PCB电路板开发,以实现定位功能。
现有的处理器芯片中,通常采用通用处理器通过其总线访问专用的存储系统,由存储系统存放待处理的操作数矩阵,以及矩阵运算后的结果矩阵,由通用处理器运算完成矩阵运算中各步骤运算。但是,这种方式仅适用于简单计算的业务场景,对于大维度的矩阵运算,需占用较多CPU算力和总线带宽,矩阵运算性能较低,运算功耗以及芯片面积较大,从而导致目前的卫星定位导航系统进行定位计算时的效率较低且成本较高,无法满足多种定位和导航需求。
发明内容
有鉴于此,本申请实施例的目的在于提供一种矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质,以改善现有技术中存在的定位计算效率较低且成本较高的问题。
为了解决上述问题,第一方面,本申请实施例提供了一种矩阵运算系统,所述系统包括:矩阵运算加速器、总线、处理器和设置在所述矩阵运算加速器内部的内部存储器;
所述总线连接所述矩阵运算加速器和所述处理器;
所述矩阵运算加速器中设置有浮点运算单元阵列;
所述处理器用于下发需要执行的目标任务以供所述矩阵运算加速器进行处理;
所述矩阵运算加速器用于基于所述浮点运算单元阵列对所述目标任务的目标矩阵进行流水计算,得到计算数据;
所述内部存储器用于分别存储所述目标矩阵和所述计算数据。
在上述实现过程中,通过在矩阵运算加速器中设置支持多种运算的浮点运算单元阵列,以基于其中的浮点运算单元阵列对接收的矩阵运算的目标任务的目标矩阵进行流水计算,并将各阶段的矩阵数据和计算得到的计算数据分别存储在对应的内部存储器中。无需设置复杂或较大的处理芯片进行矩阵运算,能够通过浮点计算降低矩阵运算的成本并提高矩阵运算时的效率,适用于对多种维度的矩阵运算任务进行处理,且将存储实体采用共享资源池模式进行调度,有效地节省了存储器的块数和容量需求,提升了矩阵运算加速器的性能,提高了定位计算时的效率,降低了定位计算的计算成本,从而提高卫星定位导航系统的工作效率。
可选地,所述浮点运算单元阵列的设置参数根据矩阵运算的运算需求确定;其中,所述设置参数包括:算子类型以及并行度数量、流水级数量和维度信息中的至少一种。
在上述实现过程中,为了实现多种不同的计算功能,并适用于多种维度的矩阵计算,可以根据实际应用场景中矩阵运算的运算需求确定浮点运算单元阵列的算子类型、并行度数量、流水级数量以及维度信息等一种或多种参数信息,从而设置相应的浮点运算单元阵列。能够在低成本的情况下设置运算性能较高的浮点运算单元阵列进行计算,有效地提高了矩阵运算的效率,适用于对多种不同类型的矩阵运算任务进行处理。
可选地,其中,所述计算数据包括:中间数据和结果数据;
所述矩阵运算加速器具体获取当前执行的所述目标任务的所述目标矩阵;基于所述浮点运算单元阵列对所述目标矩阵进行拆分,得到一个或多个拆分矩阵和/或一个或多个运算行列向量;基于所述浮点运算单元阵列对一个或多个所述拆分矩阵和/或一个或多个所述运算行列向量进行流水计算,得到所述中间数据;基于所述浮点运算单元阵列和对应的算子类型,调用所有所述中间数据进行组合运算,得到所述结果数据。
在上述实现过程中,在进行矩阵运算时,可以对大维度的目标矩阵进行拆分,以得到一个或多个小的拆分矩阵和/或一个或多个运算行列向量,从而基于浮点运算单元阵列对一个或多个拆分矩阵和/或一个或多个运算行列向量进行流水计算,得到多个待用的中间数据,再根据浮点运算单元阵列以及对应的算子类型对中间数据进行组合运算,得到对目标矩阵完成计算后的结果数据。能够将大维度的目标矩阵拆分为一个或多个小维度矩阵和/或一个或多个运算行列向量进行计算,并且使用流水计算以提高计算的效率,适用于多种维度的矩阵运算。
可选地,其中,所述内部存储器中包括:第一类存储器、第二类存储器和第三类存储器;
所述第一类存储器用于存储所述目标矩阵;
所述第二类存储器用于存储所述中间数据;
所述第三类存储器用于存储所述结果数据。
在上述实现过程中,由于在矩阵运算加速器进行矩阵运算的过程中,需要调用原本的目标矩阵进行计算,且能够计算得到相应的中间数据和结果数据,因此,为了提高运算时每种数据的读取效率,可以对各阶段的数据进行分别存储,将多种类型的数据分别存入对应类型的内部存储器中,从而在需要对数据进行读取时,无需进行预处理后再进行读取,能够直接在相应的内部存储器中读取所需的数据,有效地提高了矩阵运算加速器内部存储仲裁和访问的效率,从而提高了矩阵运算的效率。
可选地,其中,所述系统还包括:外部存储器,所述内部存储器中还包括:第四类存储器;所述外部存储器通过总线与所述矩阵运算加速器和所述处理器连接;
所述外部存储器用于存储未启动任务的操作数矩阵;
在所述矩阵运算加速器对所述目标矩阵进行计算的情况下,所述第四类存储器用于存储所述矩阵运算加速器从所述外部存储器中预读取的下一个或多个执行的后续任务的所述操作数矩阵;
所述矩阵运算加速器用于将所述第三类存储器中存储的所述结果数据搬移到所述外部存储器中。
在上述实现过程中,由于具有多个矩阵运算任务,因此,可以设置与矩阵运算加速器和处理器连接的外部存储器,以存储多个任务的操作数矩阵。并且,由于每个矩阵运算任务都需要读取相应的数据进行计算,为了减少后续任务的等待时间和数据读取时间,内部存储器中还可以包括第四类存储器,在矩阵运算加速器计算当前的目标任务的情况下,矩阵运算加速器能够从外部存储器中提前预读取下一个或多个执行的后续任务的操作数矩阵,并将操作数矩阵存储在第四类存储器中,且矩阵运算加速器还能够将第三类存储器中存储的结果数据搬移到外部存储器中进行处理,以保证矩阵运算任务之间高效的流水处理,提高矩阵运算任务的执行效率。
可选地,其中,所述矩阵运算加速器中还设置有状态机和管理模块;所述状态机与所述管理模块连接,所述管理模块与每个所述内部存储器连接;
所述状态机用于根据所述目标任务向所述管理模块申请存储需求;
所述管理模块用于根据所述存储需求,以及每个所述内部存储器当前的存储状态和剩余存储空间,确定每个所述内部存储器的类型。
在上述实现过程中,为了实现多种数据的分类存储,矩阵运算加速器中还可以设置状态机和管理模块,状态机可以根据目标任务的实际情况进行存储请求,管理模块可以根据存储需求,以及内部存储器当前的存储状态和剩余存储空间决定每个内部存储器的存储类型,即内部存储器的类型是可变化的,以满足不同矩阵运算任务的实际计算需求,适用于多种计算场景。
可选地,其中,所述内部存储器的数量大于或等于4个,每个所述内部存储器的容量大于或等于矩阵运算的最大矩阵的矩阵容量。
在上述实现过程中,为了能够对数据进行完整、有效地存储,内部存储器的数量可以大于或等于4个,以确保每种类型的内部存储器至少有一个,并且对内部存储器的容量进行了设置,以使内部存储器能够对矩阵数据进行完整地存储。
第二方面,本申请实施例还提供了一种矩阵运算方法,所述方法应用于矩阵运算系统,所述系统包括:矩阵运算加速器、总线、处理器和设置在所述矩阵运算加速器内部的内部存储器;所述总线连接所述矩阵运算加速器和所述处理器;所述矩阵运算加速器中设置有浮点运算单元阵列;
通过处理器下发需要执行的目标任务以供所述矩阵运算加速器进行处理;
通过矩阵运算加速器基于所述浮点运算单元阵列对所述目标任务的目标矩阵进行流水计算,得到计算数据;
通过内部存储器分别存储所述目标矩阵和所述计算数据。
在上述实现过程中,通过处理器下发目标任务至矩阵运算加速器中进行执行,通过矩阵运算加速器中设置的支持多种运算的浮点运算单元阵列对接收的矩阵运算的目标任务的目标矩阵进行流水计算,并将各阶段的矩阵数据和计算得到的计算数据分别存储在对应的内部存储器中。
第三方面,本申请实施例还提供了一种卫星导航方法,所述方法包括:
通过处理器根据采集生成的卫星定位信息和/或传感信息确定进行定位计算的目标任务;
通过处理器下发需要执行的目标任务以供矩阵运算加速器进行处理;其中,所述矩阵运算加速器中设置有浮点运算单元阵列;
通过所述矩阵运算加速器基于所述浮点运算单元阵列对所述目标任务的目标矩阵进行流水计算,得到计算数据;
通过所述矩阵运算加速器内部的内部存储器分别存储所述目标矩阵和所述计算数据;
通过所述矩阵运算加速器将所述内部存储器中存储的所述计算数据中的结果数据搬移到外部存储器中进行处理;
通过所述处理器调用所述外部存储器中存储的结果数据进行处理,确定卫星定位导航信息。
在上述实现过程中,通过处理器确定进行定位计算的目标任务,并调度设置有浮点运算单元阵列的矩阵运算加速器对当前目标任务进行执行,执行时可以基于浮点运算单元阵列对目标任务的目标矩阵进行流水计算,以得到相应的计算数据,并将计算数据和目标矩阵分别存储在不同的内部存储器中,并由矩阵运算加速器将内部处理器中存储的计算数据中的结果数据搬移至外部处理器中,以通过处理器调用外部存储器中存储的结果数据分析得到相应的卫星定位导航信息。无需设置复杂或较大的处理芯片进行矩阵运算,能够通过浮点计算降低矩阵运算的成本并提高矩阵运算时的效率,适用于对多种维度的矩阵运算任务进行处理,且将存储实体采用共享资源池模式进行调度,有效地节省了存储器的块数和容量需求,提升了矩阵运算加速器的性能,提高了定位计算时的效率,降低了定位计算的计算成本,从而提高卫星定位导航系统的工作效率。
第四方面,本申请实施例还提供了一种计算机可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述矩阵运算方法或卫星导航方法中任一实现方式中的步骤。
综上所述,本申请实施例提供了一种矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质,过在矩阵运算加速器中设置支持多种运算的浮点运算单元阵列,以基于浮点运算单元阵列对矩阵运算任务进行流水计算,并将各阶段的数据分别存储在对应的内部存储器中,能够降低矩阵运算的成本,提高矩阵运算的效率,从而提升定位计算的性能,提高卫星定位导航系统的工作效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种矩阵运算系统的结构示意图;
图2为本申请实施例提供的一种浮点运算单元阵列的架构示意图;
图3为本申请实施例提供的另一种矩阵运算系统的结构示意图;
图4为本申请实施例提供的一种矩阵运算方法的流程示意图;
图5为本申请实施例提供的一种卫星导航方法的流程示意图。
图标:110-矩阵运算加速器;120-总线;130-内部存储器;140-处理器;111-浮点运算单元阵列;131-第一类存储器;132-第二类存储器;133-第三类存储器;134-第四类存储器;150-外部存储器;112-状态机;113-管理模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请实施例的一部分实施例,而不是全部的实施例。基于本申请实施例的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
目前卫星定位导航系统的处理芯片中,通常采用通用处理器通过其总线访问专用的存储系统,由存储系统存放待处理的操作数矩阵,以及矩阵运算后的结果矩阵,由通用处理器运算完成矩阵运算中各步骤运算。但是,这种方式仅适用于简单计算的业务场景,对于大维度的矩阵运算,需占用较多CPU算力和总线带宽,矩阵运算性能较低,运算功耗以及芯片面积较大,从而导致目前的卫星定位导航系统进行定位计算时的效率较低且成本较高,无法满足多种定位和导航需求。
为了解决上述问题,本申请提供了一种矩阵运算系统,矩阵运算系统可以设置在卫星定位导航系统中。
请参阅图1,图1为本申请实施例提供的一种矩阵运算系统的结构示意图,系统可以包括:矩阵运算加速器110、总线120、处理器140和设置在矩阵运算加速器内部的内部存储器130。
其中,总线120连接矩阵运算加速器110和处理器140,矩阵运算加速器110中可以设置独立的总线接口,以通过总线120与处理器140进行数据交互。还可以采用不同的系统总线架构,经过拆分组合到多个端口,实现相同功能的系统级连接。因此,本申请中的处理器140能够进行任务调度,但不进行矩阵运算,与使用通用处理器进行矩阵运算的方式相比,有效地提升了系统的处理性能,节省通用算力成本,降低计算所需能耗,减小硬件面积和体积。
需要说明的是,矩阵运算加速器110中设置有多种算法对应的浮点运算单元阵列111。矩阵运算加速器110能够基于浮点运算单元阵列111对接收的目标任务的目标矩阵进行流水计算,得到计算数据,内部存储器130能够分别存储目标矩阵和计算数据。无需设置复杂或较大的处理芯片进行矩阵运算,能够通过浮点计算降低矩阵运算的成本并提高矩阵运算时的效率,适用于对多种维度的矩阵运算任务进行处理,且将存储实体采用共享资源池模式进行调度,有效地节省了存储器的块数和容量需求,提升了矩阵运算加速器110的性能,提高了定位计算时的效率,降低了定位计算的计算成本,从而提高卫星定位导航系统的工作效率。
可选地,矩阵运算加速器110中可以设置有一个或多个浮点运算单元阵列111,浮点运算单元阵列111与内部存储器130连接,浮点运算单元阵列111可以采用并行计算架构,可以在1cycle内完成n个浮点运算。每个浮点运算单元阵列111都可以支持单精度或双精度浮点运算,多个浮点运算单元阵列111支持并行运算和流水运算,可以连续多个cycle不间断运算。
需要说明的是,为了实现多种不同的计算功能,并适用于多种维度的矩阵计算,可以根据实际应用场景中矩阵运算的运算需求确定浮点运算单元阵列111的算子类型、并行度数量、流水级数量以及维度信息等一种或多种参数信息,从而设置相应的浮点运算单元阵列111。
可选地,算子类型、并行度数量、流水级数量以及维度信息等参数都可以根据实际的运算场景和需求进行设置和修改。示例地,算子类型可以包括以下5类算子:(1)Y=A*B;(2)Y=C+A*B;(3)Y=C-A*B;(4)Y=A*B*AT;(5)Y=1/A,其中,A、B、C分别可以为目标任务所对应的多个目标矩阵,Y为计算得到的结果数据,能够由卫星定位导航系统中上层的软件调度5类算子完成复杂矩阵的加速运算。并行度数量可以为执行某个算子类型时处理的浮点运算个数,流水级数量可以包括任务内流水和任务间流水的数量,任务内流水包括调用每个cycle进行浮点运算的过程,以使任务内矩阵按照维度拆分成的多个向量运算不断流,任务间流水包括多个矩阵运算任务间的计算的过程,以使多个矩阵运算不断流,从而提高任务的计算效率,维度信息可以为浮点运算单元阵列111单次计算时矩阵的维度数量。
因此,浮点运算单元阵列111的设置参数可以根据矩阵运算的运算需求确定;其中,设置参数包括:算子类型以及并行度数量、流水级数量和维度信息中的至少一种。能够在低成本的情况下设置运算性能较高的浮点运算单元阵列111进行计算,有效地提高了矩阵运算的效率,适用于对多种不同类型的矩阵运算任务进行处理。
由于计算的目标矩阵维度的不同,因此,其中,计算数据中可以包括中间数据和结果数据;矩阵运算加速器110具体的计算过程可以包括:获取当前执行的目标任务的目标矩阵;基于浮点运算单元阵列111对目标矩阵进行拆分,得到一个或多个拆分矩阵和/或一个或多个运算行列向量;基于浮点运算单元阵列111对一个或多个拆分矩阵和/或一个或多个运算行列向量进行流水计算,得到中间数据;基于浮点运算单元阵列111和对应的算子类型,调用所有中间数据进行组合运算,得到结果数据。在进行矩阵运算时,可以对大维度的目标矩阵进行拆分,以得到一个或多个小的拆分矩阵和/或一个或多个运算行列向量,从而基于浮点运算单元阵列111对一个或多个拆分矩阵和/或一个或多个运算行列向量进行流水计算,得到多个待用的中间数据,再根据浮点运算单元阵列111以及对应的算子类型对中间数据进行组合运算,得到对目标矩阵完成计算后的结果数据。能够将大维度的目标矩阵拆分为一个或多个小维度矩阵和/或一个或多个运算行列向量进行计算,并且使用流水计算以提高计算的效率,适用于多种维度的矩阵运算。
需要说明的是,浮点运算单元阵列111的乘加以及累加结构可以完成向量运算,向量运算的组合可以支持矩阵乘,矩阵加,矩阵求逆,矩阵乘加等矩阵运算类型。
示例地,请参阅图2,图2为本申请实施例提供的一种浮点运算单元阵列111的架构示意图,以1*4行向量和4*1列向量相乘为例,算子类型为Y=A*B,A的第一行*B的第一列的并行度为4的流水运算处理,得到的计算数据中包括多个中间数据:a11*b11、a12*b21、a13*b31、a14*b41,以及结果数据:a11*b11+a12*b21+a13*b31+a14*b41。对于其他维度的向量或矩阵,可以采用硬件逻辑控制,反复调用以上并行度为4的浮点运算单元阵列111进行流水计算,完成最终完整的矩阵运算。
请参阅图3,图3为本申请实施例提供的另一种矩阵运算系统的结构示意图,其中,内部存储器130可以包括:第一类存储器131、第二类存储器132和第三类存储器133。
可选地,矩阵运算加速器110能够完成不同矩阵运算类型的数据流控制,将不同维度不同矩阵运算类型解析成浮点行列向量运算,将多个浮点行列向量在浮点运算单元阵列111中完成并行流水浮点运算,并基于浮点向量运算的需求(按行/按列)完成运算阵列并行数据的读取和输出。矩阵运算加速器110中可以设置缓存管理模块对多个内部存储器130的存取进行控制。
由于在矩阵运算加速器110进行矩阵运算的过程中,需要调用原本的目标矩阵进行计算,且能够计算得到相应的中间数据和结果数据,因此,为了提高运算时每种数据的读取效率,可以对各阶段的数据进行分别存储,以保证访问的及时性,提高矩阵任务运算处理时的流水效率,例如:第一类存储器131用于存储目标矩阵;第二类存储器132用于存储中间数据;第三类存储器133用于存储结果数据。将多种类型的数据分别存入对应类型的内部存储器130中,从而在需要对数据进行读取时,无需进行预处理后再进行读取,能够直接在相应的内部存储器130中读取所需的数据,有效地提高了矩阵运算加速器110内部存储仲裁和访问的效率,从而提高了矩阵运算的效率。
可选地,由于具有多个矩阵运算任务,因此,可以设置与矩阵运算加速器和处理器连接的外部存储器150,以存储多个未启动任务的操作数矩阵或是已经完成的矩阵运算任务的结果数据,在任务启动后,矩阵运算加速器110能够从外部存储器150中将操作数矩阵移动至内部存储器130中并启动运算,运算完成后,矩阵运算加速器110还能够将结果数据从内部存储器130写入外部存储器150中以待处理。并且,由于每个矩阵运算任务都需要读取相应的数据进行计算,为了减少后续任务的等待时间和数据读取时间,内部存储器130中还可以包括:第四类存储器134,在矩阵运算加速器110对目标矩阵进行计算的情况下,矩阵运算加速器110能够从外部存储器150中提前预读取下一个或多个执行的后续任务的操作数矩阵,并将操作数矩阵存储在第四类存储器134中,操作数矩阵可以为后续任务的矩阵数据等相关数据,且矩阵运算加速器110还能够将第三类存储器133中存储的结果数据搬移到外部存储器150中进行处理,以保证矩阵运算任务之间高效的流水处理,提高矩阵运算任务的执行效率。
示例地,第一类存储器131、第二类存储器132、第三类存储器133以及第四类存储器134都可以为SRAM(Static Random-Access Memory,静态随机存取存储器),外部存储器150可以为SRAM、DDR(Double Data Rate,双倍速率同步动态随机存储器)、Flash(快闪存储器)等容量较大的存储介质。
需要说明的是,内部存储器130可以为资源池模式,因此,存储的数据类型可以切换,每个内部存储器130的类型不是固定的,是可变化的,相比存储数据类型相对固定的其他模式,资源池模式能够有效地节省存储资源且存储和读取的效率更高。为了实现多种数据的分类存储,矩阵运算加速器110中还可以设置状态机112和管理模块113,状态机112可以根据目标任务的实际情况向管理模块113申请存储需求,以进行存储请求,管理模块113可以根据存储需求,以及每个内部存储器130当前的存储状态和剩余存储空间决定每个内部存储器130的存储类型,即内部存储器130的类型是可变化的。因此,在实际的使用场景中,可以选择未存储数据的内部存储器130对目标矩阵、中间数据、结果数据、操作数矩阵等进行存储,还可以根据目标矩阵、中间数据、结果数据、操作数矩阵的数据大小,选择剩余存储空间大于数据大小的内部存储器130进行存储,以满足不同矩阵运算任务的实际计算需求,适用于多种计算场景。
可选地,状态机112还可以控制目标任务对应的目标矩阵进行拆分处理,以得到一个或多个拆分矩阵和/或一个或多个运算行列向量,状态机112还可以控制矩阵运算加速器110的AXI(Advanced eXtensible Interface,高级可扩展接口)的master口(多生成树域和总根相连的所有路径中最短路径上的端口),以实现矩阵运算加速器110与外部存储器150的数据交互。
需要说明的是,为了能够对数据进行完整、有效地存储,每种类型的内部存储器130都可以包括一个或者多个,内部存储器130的数量大于或等于4个,即每种类型的内部存储器至少有一个,并且,还对内部存储器130的容量进行了设置,每个内部存储器130的容量大于或等于矩阵运算的最大矩阵的矩阵容量,以使内部存储器130能够对矩阵数据进行完整地存储。
综上,本申请实施例提供的矩阵运算系统适用性强,可适应产品应用形态,不受固定架构限制,采用专用的矩阵运算加速器实现矩阵运算,支持向量乘加运算组合的任意矩阵运算类型,支持矩阵运算类型广泛,可以支持多种可以等价分解为向量乘加运算的矩阵运算,矩阵运算采用浮点运算单元阵列111实现,支持并行流水处理,有效地提升了矩阵运算系统的运算性能。
请参阅图4,图4为本申请实施例提供的一种矩阵运算方法的流程示意图,矩阵运算方法应用于矩阵运算系统,该方法可以包括步骤S210-S230。
步骤S210,通过处理器下发需要执行的目标任务以供矩阵运算加速器进行处理。
步骤S220,通过矩阵运算加速器基于浮点运算单元阵列对目标任务的目标矩阵进行流水计算,得到计算数据。
步骤S230,通过内部存储器分别存储目标矩阵和计算数据。
其中,通过处理器下发目标任务至矩阵运算加速器中进行执行,通过矩阵运算加速器中设置的支持多种运算的浮点运算单元阵列对接收的矩阵运算的目标任务的目标矩阵进行流水计算,并将各阶段的矩阵数据和计算得到的计算数据分别存储在对应的内部存储器中。
由于本申请实施例中的矩阵运算方法解决问题的原理与前述的矩阵运算系统的实施例相似,因此本实施例中的矩阵运算方法的实施可以参见上述矩阵运算系统的实施例中的描述,重复之处不再赘述。
请参阅图5,图5为本申请实施例提供的一种卫星导航方法的流程示意图,卫星导航方法应用于包含有矩阵运算系统的卫星定位导航系统,该方法可以包括步骤S310-S360。
步骤S310,通过处理器根据采集生成的卫星定位信息和/或传感信息确定进行定位计算的目标任务。
其中,处理器能够获取相应的卫星定位信息和/或传感信息,并基于卫星定位信息和/或传感信息确定进行定位计算时的一个或多个任务队列,每个任务队列中可以包括多个矩阵运算的目标任务。
可选地,卫星定位信息可以由卫星定位导航系统中的射频器件和基带器件采集并获取,例如,由射频器件接收卫星信号,转化为中频信号发送给基带器件,由基带器件对中频信号进行处理,以得到相应的卫星定位信息,并将卫星定位信息发送给处理器。传感信息可以包括卫星定位导航系统中的多种传感器采集的信息,例如,传感器可以包括惯性传感器、视觉传感器以及激光雷达等传感器,相应的,传感信息可以包括惯性运动信息、图像信息以及三维信息等多种类型的信息。
步骤S320,通过处理器下发需要执行的目标任务以供矩阵运算加速器进行处理。
其中,矩阵运算加速器中设置有多种算法对应的浮点运算单元阵列,处理器可以根据需求对多个目标任务进行调度,以控制矩阵运算加速器对当前对应的目标任务进行计算处理。
步骤S330,通过矩阵运算加速器基于浮点运算单元阵列对目标任务的目标矩阵进行流水计算,得到计算数据。
其中,矩阵运算加速器可以其中设置的基于浮点运算单元阵列对目标任务的目标矩阵进行流水计算,以得到相应的计算数据。
步骤S340,通过矩阵运算加速器内部的内部存储器分别存储目标矩阵和计算数据。
其中,不对步骤S330和步骤S340的执行顺序进行限定,为了实现不同类型数据的分别存储,内部存储器能够在矩阵运算加速器计算之前对目标矩阵进行存储,在矩阵运算加速器计算过程中对得到的计算数据进行存储,以实现不同类型数据的分别存储。
步骤S350,通过矩阵运算加速器将内部存储器中存储的计算数据中的结果数据搬移到外部存储器中进行处理。
其中,可以通过矩阵运算加速器基于中断上报的方式通知处理器任务的执行状态的变更情况,也可以通过处理器定时查询的方式获取任务执行状态的变更情况,在矩阵运算加速器对矩阵运算任务处理完成后,内部存储器能够将计算得到的处理数据写入外部存储器,以使处理器能够读取外部存储器中存储的处理数据进行处理,或者下发新的待调度任务以待处理。
步骤S360,通过处理器调用外部存储器中存储的结果数据进行处理,确定卫星定位导航信息。
其中,结果数据可以为结果矩阵等类型的数据,处理器能够根据处理得到的结果数据进行分析,以得到相应的卫星定位导航信息,从而将卫星定位导航信息发送给下游的服务器、个人电脑(Personal Computer,PC)、平板电脑、智能手机、个人数字助理(PersonalDigital Assistant,PDA)等具有逻辑计算功能的电子设备,以供电子设备实现相应的导航功能。
需要说明的是,由于矩阵运算系统设置在卫星定位导航系统中,图1-图4所示的实施例都可以在图5所示的实施例中基于类似实施例的实现方法实现,对重复的实施方式不再进行赘述。
本申请实施例还提供了一种计算机可读取存储介质,可读取存储介质中存储有计算机程序指令,计算机程序指令被一处理器读取并运行时,执行本实施例提供的矩阵运算方法或卫星导航方法中任一项方法中的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种矩阵运算系统,其特征在于,所述系统包括:矩阵运算加速器、总线、处理器和设置在所述矩阵运算加速器内部的内部存储器;
所述总线连接所述矩阵运算加速器和所述处理器;
所述矩阵运算加速器中设置有浮点运算单元阵列;
所述处理器用于下发需要执行的目标任务以供所述矩阵运算加速器进行处理;
所述矩阵运算加速器用于基于所述浮点运算单元阵列对所述目标任务的目标矩阵进行流水计算,得到计算数据;
所述内部存储器用于分别存储所述目标矩阵和所述计算数据。
2.根据权利要求1所述的系统,其特征在于,所述浮点运算单元阵列的设置参数根据矩阵运算的运算需求确定;其中,所述设置参数包括:算子类型以及并行度数量、流水级数量和维度信息中的至少一种。
3.根据权利要求1所述的系统,其特征在于,其中,所述计算数据包括:中间数据和结果数据;
所述矩阵运算加速器具体获取当前执行的所述目标任务的所述目标矩阵;基于所述浮点运算单元阵列对所述目标矩阵进行拆分,得到一个或多个拆分矩阵和/或一个或多个运算行列向量;基于所述浮点运算单元阵列对一个或多个所述拆分矩阵和/或一个或多个所述运算行列向量进行流水计算,得到所述中间数据;基于所述浮点运算单元阵列和对应的算子类型,调用所有所述中间数据进行组合运算,得到所述结果数据。
4.根据权利要求3所述的系统,其特征在于,其中,所述内部存储器中包括:第一类存储器、第二类存储器和第三类存储器;
所述第一类存储器用于存储所述目标矩阵;
所述第二类存储器用于存储所述中间数据;
所述第三类存储器用于存储所述结果数据。
5.根据权利要求4所述的系统,其特征在于,其中,所述系统还包括:外部存储器,所述内部存储器中还包括:第四类存储器;所述外部存储器通过总线与所述矩阵运算加速器和所述处理器连接;
所述外部存储器用于存储未启动任务的操作数矩阵;
在所述矩阵运算加速器对所述目标矩阵进行计算的情况下,所述第四类存储器用于存储所述矩阵运算加速器从所述外部存储器中预读取的下一个或多个执行的后续任务的所述操作数矩阵;
所述矩阵运算加速器用于将所述第三类存储器中存储的所述结果数据搬移到所述外部存储器中。
6.根据权利要求4或5所述的系统,其特征在于,其中,所述矩阵运算加速器中还设置有状态机和管理模块;所述状态机与所述管理模块连接,所述管理模块与每个所述内部存储器连接;
所述状态机用于根据所述目标任务向所述管理模块申请存储需求;
所述管理模块用于根据所述存储需求,以及每个所述内部存储器当前的存储状态和剩余存储空间,确定每个所述内部存储器的类型。
7.根据权利要求6所述的系统,其特征在于,其中,所述内部存储器的数量大于或等于4个,每个所述内部存储器的容量大于或等于矩阵运算的最大矩阵的矩阵容量。
8.一种矩阵运算方法,其特征在于,所述方法应用于矩阵运算系统,所述系统包括:矩阵运算加速器、总线、处理器和设置在所述矩阵运算加速器内部的内部存储器;所述总线连接所述矩阵运算加速器和所述处理器;矩阵运算加速器中设置有浮点运算单元阵列;
通过处理器下发需要执行的目标任务以供所述矩阵运算加速器进行处理;
通过矩阵运算加速器基于所述浮点运算单元阵列对所述目标任务的目标矩阵进行流水计算,得到计算数据;
通过内部存储器分别存储所述目标矩阵和所述计算数据。
9.一种卫星导航方法,其特征在于,所述方法包括:
通过处理器根据采集生成的卫星定位信息和/或传感信息确定进行定位计算的目标任务;
通过处理器下发需要执行的目标任务以供矩阵运算加速器进行处理;其中,所述矩阵运算加速器中设置有浮点运算单元阵列;
通过所述矩阵运算加速器基于所述浮点运算单元阵列对所述目标任务的目标矩阵进行流水计算,得到计算数据;
通过所述矩阵运算加速器内部的内部存储器分别存储所述目标矩阵和所述计算数据;
通过所述矩阵运算加速器将所述内部存储器中存储的所述计算数据中的结果数据搬移到外部存储器中进行处理;
通过所述处理器调用所述外部存储器中存储的结果数据进行处理,确定卫星定位导航信息。
10.一种计算机可读取存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求8或9中所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310925552.2A CN116931876A (zh) | 2023-07-25 | 2023-07-25 | 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 |
CN202411002457.6A CN118860337A (zh) | 2023-07-25 | 2024-07-25 | 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310925552.2A CN116931876A (zh) | 2023-07-25 | 2023-07-25 | 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116931876A true CN116931876A (zh) | 2023-10-24 |
Family
ID=88375214
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310925552.2A Pending CN116931876A (zh) | 2023-07-25 | 2023-07-25 | 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 |
CN202411002457.6A Pending CN118860337A (zh) | 2023-07-25 | 2024-07-25 | 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411002457.6A Pending CN118860337A (zh) | 2023-07-25 | 2024-07-25 | 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN116931876A (zh) |
-
2023
- 2023-07-25 CN CN202310925552.2A patent/CN116931876A/zh active Pending
-
2024
- 2024-07-25 CN CN202411002457.6A patent/CN118860337A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN118860337A (zh) | 2024-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7561916B2 (ja) | ニューラルネットワークプロセッサにおけるバッチ処理 | |
US11080049B2 (en) | Apparatus and methods for matrix multiplication | |
US10817260B1 (en) | Reducing dynamic power consumption in arrays | |
US11640316B2 (en) | Compiling and scheduling transactions in neural network processor | |
US11816446B2 (en) | Systolic array component combining multiple integer and floating-point data types | |
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
US11151442B2 (en) | Convolutional neural network processing method and device | |
US10691996B2 (en) | Hardware accelerator for compressed LSTM | |
US9870341B2 (en) | Memory reduction method for fixed point matrix multiply | |
US11562214B2 (en) | Methods for improving AI engine MAC utilization | |
CN110826708B (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
CN111767986A (zh) | 一种基于神经网络的运算方法及装置 | |
Motamedi et al. | Fast and energy-efficient CNN inference on IoT devices | |
US20220188073A1 (en) | Data-type-aware clock-gating | |
WO2020190524A1 (en) | Selectively controlling memory power for scheduled computations | |
KR20240013828A (ko) | 리그레인드 타일 실행을 위한 통합된 프로그래밍 인터페이스 | |
CN116611476A (zh) | 性能数据预测方法、性能数据预测装置、电子设备及介质 | |
CN116931876A (zh) | 矩阵运算系统、矩阵运算方法、卫星导航方法及存储介质 | |
CN117581245A (zh) | 用于机器学习的共享数据的加速处理设备和方法 | |
US11842169B1 (en) | Systolic multiply delayed accumulate processor architecture | |
Qiu et al. | An FPGA‐Based Convolutional Neural Network Coprocessor | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
WO2023102722A1 (en) | Interleaved data loading system to overlap computation and data storing for operations | |
WO2022220835A1 (en) | Shared register for vector register file and scalar register file | |
CN116909629A (zh) | 数据处理方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20231024 |