CN116126526B - 计算超越函数的方法、装置、电子设备和存储介质 - Google Patents
计算超越函数的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116126526B CN116126526B CN202211710810.7A CN202211710810A CN116126526B CN 116126526 B CN116126526 B CN 116126526B CN 202211710810 A CN202211710810 A CN 202211710810A CN 116126526 B CN116126526 B CN 116126526B
- Authority
- CN
- China
- Prior art keywords
- operator
- thread
- data
- calculated
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000006870 function Effects 0.000 claims abstract description 100
- 238000004364 calculation method Methods 0.000 claims abstract description 64
- 230000015654 memory Effects 0.000 claims abstract description 12
- 238000012544 monitoring process Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012884 algebraic function Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供一种计算超越函数的方法、装置、电子设备和存储介质,该方法包括:判断每个线程的写入缓存中是否有待计算数据,若任意一个线程的写入缓存中有待计算数据,则从每个线程中确定目标线程;将目标线程的写入缓存中的待计算数据发送给算子;利用算子对待计算数据进行迭代计算;监控算子进行迭代的次数,若确定算子进行迭代计算的次数达到预定次数,则将迭代计算的计算结果写入目标线程的读取缓存。采用本申请实施例中提供的计算超越函数的方法,与支持多线程的处理器配合使用时,能够从多个线程中选取适用于使用算子计算超越函数的线程,因而能协调多个线程执行超越函数的计算,支持配合多线程处理器更高效地计算超越函数。
Description
技术领域
本申请涉及计算机领域,特别涉及计算超越函数的方法、装置、电子设备和存储介质。
背景技术
超越函数是“超出”代数函数范围的函数,也就是说函数不能表示为有限次的加、减、乘、除、乘方和开方的运算。实际利用处理器进行计算时,只能通过代数函数进行无限逼近的方式来计算超越函数。超越函数计算在是工业控制算法中得到广泛的应用。如何利用更少的资源,实现更高精度地计算超越函数,是工业控制领域重要的课题之一。
超越函数的计算可以由软件实现,也可以由硬件实现。随着工业控制系统复杂度的提升,通过软件逼近算法计算超越函数会占用大量的处理器周期,压缩实时控制算法的计算资源,降低闭环控制的精度。通过硬件实现超越函数的计算,能够节省处理器资源,相对软件实现效果更好。
目前,通过硬件实现超越函数的计算的方案主要有:
(1)TI公司的C2000系列产品的TMU(Trigonometric Math Unit,三角数学单元)
TI公司的TMU是将计算超越函数的硬件集成在处理器中,缺点是该处理器的指令集不对其他厂商授权,无法形成通用的方案。
(2)采用ARM核心的MCU(Microcontroller Unit,微控制单元)架构的方案
通常是采购ARM处理器授权,再将加速器集成到总线上的方案,比如ST公司H7系列MCU。该方案的优点是通用性较强。ST公司的方案的缺点是多个线程之间互相确认超越函数计算状态,损失部分CPU周期、消耗更长的时间,挤占闭环实时控制算法的资源。
如何实现更高效地计算超越函数是本领域的待解决的技术问题之一。
发明内容
为了解决上述技术缺陷之一,本申请实施例中提供了计算超越函数的方法、装置、电子设备和存储介质。
根据本申请实施例的第一个方面,提供了一种计算超越函数的方法,包括:
判断每个线程的写入缓存中是否有待计算数据,若任意一个线程的写入缓存中有待计算数据,则从每个线程中确定目标线程;
将目标线程的写入缓存中的待计算数据发送给算子;
利用算子对待计算数据进行迭代计算;
监控算子进行迭代的次数,若确定算子进行迭代计算的次数达到预定次数,则将迭代计算的计算结果写入目标线程的读取缓存。
根据本申请实施例的第二个方面,提供了一种计算超越函数的装置,包括:
判断模块,用于判断每个线程的写入缓存中是否有待计算数据,若任意一个线程的写入缓存中有待计算数据,则从每个线程中确定目标线程;
发送模块,用于将目标线程的写入缓存中的待计算数据发送给算子;
计算模块,用于利用算子对待计算数据进行迭代计算;
监控模块,用于监控算子进行迭代的次数,若确定算子进行迭代计算的次数达到预定次数,则将迭代计算的计算结果写入目标线程的读取缓存。
根据本申请实施例的第三个方面,提供了一种电子设备,包括:存储器;处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现上述任一项的方法。
根据本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现上述任一项的方法。
采用本申请实施例中提供的计算超越函数的方法,与支持多线程的处理器配合使用时,能够从多个线程中选取适用于使用算子计算超越函数的线程,因而能协调多个线程执行超越函数的计算,支持配合多线程处理器更高效地计算超越函数。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种计算超越函数的方法流程图;
图2(a)为TFU CORDIC算子原理图;
图2(b)为TFU LOGEXP算子原理图;
图3为本申请实施例提供的一种双通道的TFU结构框图;
图4为本申请实施例提供的一种计算超越函数的装置原理框图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在实现本申请的过程中,发明人发现,超越函数的计算可以采用硬件加速器实现的方案降低运算周期,计算的方法主要包含查表法、多项式拟合法和迭代法。
单一查表法是通过映射输入数据和存储地址之间的关系,直接输出计算结果的一种方式,消耗芯片资源最少。但随着精度的提升和定义域的拓宽,表点的数量会呈现指数上升,因此只适用于低精度和小范围的计算,局限性比较大。
多项式拟合法通过构造特定形式的多项式,实现区间内的函数计算,主要包含泰勒级数展开、插值法等。多项式拟合法对于特定的函数区间具有很好的拟合精度,因此有些超越函数在较宽的输入区间会采用查表分段和拟合的方式进行组合处理,进而减少了表点的数量。但是这种组合的方式对于实现高精度的正弦/余弦计算的乘法器、加法器和表来说,芯片资源消耗仍然相当可观。
迭代法是一种兼顾精度和资源消耗的计算超越函数的方法。随着处理器芯片的发展,多线程技术成为主流,能够更充分地利用处理器芯片的各种资源,但目前没有支持多线程技术的利用硬件并通过迭代法计算超越函数的方法。
针对上述问题,如图1所示,本申请实施例中提供了一种计算超越函数的方法,包括:
步骤S101,判断每个线程的写入缓存中是否有待计算数据,若任意一个线程的写入缓存中有待计算数据,则从每个线程中确定目标线程;
步骤S102,将目标线程的写入缓存中的待计算数据发送给算子;
步骤S103,利用算子对待计算数据进行迭代计算;
步骤S104,监控算子进行迭代的次数,若确定算子进行迭代计算的次数达到预定次数,则将迭代计算的计算结果写入目标线程的读取缓存。
本申请实施例的方法的应用场景是作为处理器(可以是具有较强的多线程运算性能ARM-M系列处理器)的专门用于计算超越函数的硬件外设TFU(Transcendental FunctionUnit,超越函数单元),与处理器构成MCU。
该TFU可以为每个线程分配一个CSR(Control/Status Register,配置寄存器),用于存储待计算数据的写入缓存和用于读取超越函数计算结果的读取缓存。其中,CSR的作用是存储与超越函数计算的各种参数。例如,线程对应的函数类型,输入输出的个数,利用算子进行迭代计算的次数,待计算的数据的长度等。
用于存储待计算数据的写入缓存WDATA和用于读取超越函数计算结果的读取缓存RDATA可以用FIFO(First Input First Output,先入先出)存储器实现。WDATA用于存储待计算的数据,算子在完成CSR中配置的迭代计算次数后,把计算结果发送给RDATA。每个线程对应的CSR,WDATA和RDATA,都可以有独立的地址,以便处理器通过指令向上述存储空间写入数据或从上述存储空间读取数据。
处理器可以通过AHB(Advanced High Performance Bus,高级高性能总线)总线向线程的写入缓存写入数据,向线程的写入缓存写入待计算的数据,或从读取缓存读取计算结果,从CSR读取超越函数的参数数据或向CSR写入超越函数的参数数据。步骤S101可以利用AHB总线的ARB(Arbiter)仲裁器模块实现。类似地,处理器与TFU通讯也可以选用AMBA总线系列中的APB,高级外围总线)、AXI,或者其他总线类型比如wishbone、OBI、tilelink等等。
优选地,若判断一个线程的写入缓存中有待计算数据,从每个线程中确定目标线程,包括:将写入缓存中有待计算数据确定为目标线程;若判断至少两个线程的写入缓存中有待计算数据,从每个线程中确定目标线程,包括:按照顺序优先级从所有写入缓存中有待计算数据的线程中确定目标线程。
实际应用中,可能出现多个线程都需要进行超越函数计算的情况,算子不能同时执行所有线程的超越函数计算,这时需要进行选择,由哪个线程先使用算子进行计算,其余的线程随后使用算子进行计算。
具体地,以写入缓存为FIFO为例。若FIFO非空,FIFO包括FIFO中有数据的状态位,可以每隔固定时间读取该信息,以确定FIFO中是否有数据。可以有一个线程的FIFO是有数据的,也可能出现同时有多个线程的FIFO是有数据的情况。若只有一个线程的FIFO是有数据的,则可以直接将该线程确定为目标线程。若有线程1,线程3,线程5的FIFO是有数据的,则可以按照线程号由小到大的顺序依次使用算子进行计算,先将线程1确定目标算子,然后线程3,之后线程5。
本申请实施例提供了一种能够在有多个线程需要计算超越函数时,从中选择一个线程利用算子计算超越函数的方法,因而多个线程需要计算超越函数时,不会产生冲突。
本申请实施例中的算子可以是用于迭代计算的算子,可以是CORDIC(CoordinateRotation Digital Computer,坐标旋转数字计算方法)算子,也可以是LOGEXP对数指数算子。图2(a)和图(b)为这两种算子的原理图。
算子与计算的超越函数有对应关系,如下表所示:
表1TFU算子输入输出关系
不同类型函数可以使用不同的算子进行计算。例如,SIN函数,COS函数ATAN2函数,MOD函数,ATAN函数可以利用CORDIC算子进行迭代计算来逼近函数计算值。LOG函数和EXP函数可以用LOGEXP算子来获得近似计算结果。并且,不同函数类型还对算子的输入数据以及输出数据做了规定,例如SIN函数规定在CORDIC算子的X分量输入处输入常数K,Y分量输入处输入0,Z分量输入角度θ对应图2(a)的输入X0,Y0,Z0。同样,对算子的输出分量进行了规定。算子完成计算后能够从算子寄存器的相应为止读取各个分量。
优选地,每个线程的CSR中包含该线程对应的函数类型信息,将所述目标线程的写入缓存中的待计算数据发送给算子,包括:根据目标线程的函数类型信息和待计算数据,配置算子的输入寄存器。
具体地,如上文所述,配置算子的输入寄存器,可以是根据不同的函数类型,可以将写入缓存中的数据写入到算子的输入寄存器对应分量的位置,根据函数类型,还可以在输入寄存器对应一个或多个分量的地址写入常量。例如,计算ATAN函数,需要在输入寄存器对应Y输入的位置写入1,Z输入的位置写入0。
本申请实施例能够根据要线程对应的函数类型,对算子的输入进行配置,因而能够支持多线程的更多种类超越函数的计算。
本申请实施例的TFU可以包括一个算子,也可以包括多个算子。
优选的,算子包括至少两种类型,将目标线程的写入缓存中的待计算数据发送给算子,包括:根据目标线程的类型,确定目标线程对应的目标类型;将目标线程的写入缓存中的待计算数据发送给目标类型的算子。
本申请实施例可以线程根据自身需要计算的函数类型,从多个类型的算子中选择合适的算子类型(目标类型)用于计算超越函数。每个线程的CSR可以配置该线程对应的函数类型,作为选择目标类型的一句。例如,TFU包括一个CORDIC算子和一个LOGEXP算子,一个线程对应的函数类型为SIN函数对应使用CORDIC算子,另一个线程对应的函数类型为LOG函数,对应使用LOGEXP算子。
另外,多核心的处理器,每个核心对应一组线程,每组线程可以对应一组算子,每组算子包括的算子类型可以是相同的。
本申请实施例每个线程根据函数类型选用多种类型的算子,能够更灵活地控制各个线程计算多种超越函数。
本申请实施例当一个线程使用算子进行计算时,可能需要进行多次迭代计算,在进行迭代计算的过程中算子是被占用的状态。若在迭代计算的过程中,有另外一个线程需要使用相同的算子,并给算子发送其他待计算的数据,可能会导致迭代计算只完成一部分后,变换了输入数据,产生错误。
因此,需要确定算子的计算状态,若算子处于正在计算的状态时,不能将数据发送给算子用于计算。因此,需要确定算子是否是正在计算的状态。算子被占用时,若判断其他线程的写入寄存器中有待计算的数据,不会马上处理,而是等待算子完成当前线程的数据的计算。
优选地,将目标线程的写入缓存中的待计算数据发送给算子,包括:判断算子是否处于占用状态,若处于占用状态,则等待直到算子变为空闲状态,再将目标线程的写入缓存中的待计算数据发送给算子。
算子在迭代计算的过程中,处于占用状态,即算子还未达到预定的迭代次数时,是占用状态。达到迭代次数即完成计算,变为为空闲状态。
具体地,处理器可以通过配置线程的CSR中的迭代次数,来预先设定线程的待计算数据使用算子进行计算的预定迭代次数。并且对算子进行迭代计算的次数进行计数,等待算子的迭代次数达到预定迭代次数,则取消算子的占用状态,变为空闲状态,此时算子可以再次被用于计算其他超越函数。
本申请实施例能够在算子处于迭代计算状态时,等待算子完成计算,才进行别的超越函数的计算,在连续利用算子计算多个超越函数时,能够更有效地防止迭代计算出错。
优选的,将目标线程的写入缓存中的待计算数据发送给算子,包括:判断目标类型的算子是否处于占用状态,若处于占用状态,则等待直到目标类型的算子变为空闲状态,再将目标线程的写入缓存中的待计算数据发送给目标类型的算子。
实际应用中,一种算子在进行计算时,其他类型的算子可能处于空闲状态。若有函数类型与其他类型算子对应的线程需要计算超越函数,则可以利用其他算子进行计算。
以包括两种算子为例。若其中算子1正在进行计算,算子2是可用的。为了更好的充分利用算子资源,算子1正在进行计算时,若判定一个函数类型适用于适用算子2的线程中包含有效的待计算数据,可以将该待计算数据发送给算子2进行计算的,反之亦然。因此,这种包含多种算子的TFU,判断目标线程对应的算子是否是占用状态即可,只要目标线程对应的算子是空闲状态,就可以将目标线程中的数据发送过去,利用该算子进行迭代计算。
本申请实施例的方法包括多种算子,能够在利用一种算子计算超越函数的同时,利用其他类型的算子计算超越函数,能够更有效地利用多个算子,计算超越函数的效率更高。
图3为本申请实施例提供的一种双通道的TFU结构框图。图3中的TFU可以用于作为工控领域中常用的ARM-M系列处理器的外设,ARM-M系列处理器具有较强的多线程运算性能,为了减少线程之间共用外设和总线资源产生的运算能力下降,图3的TFU支持双通道计算,每个通道最高支持四线程数据读写,所有通道公用AHB slave接口。
图3中,0代表AHB总线,处理器使用0向TFU写入数据或从TFU读取数据。1~8代表两个通道的8个线程,1~4线程属于第一个通道,5~8线程属于第二个通道。每个线程有属于自己的WDATA、CSR和RDATA。101~103,…,801~803分别为线程1~8的上述三种寄存器。WDATA和RDATA都可以由2级的FIFO实现。每个通道四个线程的数据通过AHB总线写入后,由ARB模块进行仲裁,决定运算优先级,仲裁的方式可以配置为round-robin或者固定优先级顺序(例如不同函数类型的优先级,不同线程编号的优先级)。9和10分别为两个通道的仲裁器,用于执行步骤S101的选择目标线程和步骤S102的一部分,将待计算的数据传递分别给11和12,11和12分别为两个通道的状态机。以11为例,用于完成步骤102向算子发送数据,根据线程的CSR的函数类型在算子13、14中做出选择,向选择的算子提供符合线程的函数类型的输入,还用于完成步骤103和104,控制算子完成CSR中要求的迭代次数的迭代计算,最终将计算得到的结果发送到RDATA,以便处理器能够通过AHB总线获取计算结果。
综上所述,采用本申请实施例中提供的计算超越函数的方法,与支持多线程的处理器配合使用时,能够从多个线程中选取适用于使用算子计算超越函数的线程,因而能协调多个线程执行超越函数的计算,支持配合多线程处理器更高效地计算超越函数。
如图4所示,本申请实施例提供一种计算超越函数的装置,包括判断模块1、发送模块2、计算模块3和监控模块4;
判断模块1,用于判断每个线程的写入缓存中是否有待计算数据,若任意一个线程的写入缓存中有待计算数据,则从每个线程中确定目标线程;
发送模块2,用于将目标线程的写入缓存中的待计算数据发送给算子;
计算模块3,用于利用算子对待计算数据进行迭代计算;
监控模块4,用于监控算子进行迭代的次数,若确定算子进行迭代计算的次数达到预定次数,则将迭代计算的计算结果写入目标线程的读取缓存。
优选地,算子包括至少两种类型,发送模块,具体用于:
根据目标线程的类型,确定目标线程对应的目标类型;
将目标线程的写入缓存中的待计算数据发送给目标类型的算子。
本申请实施例提供了一种电子设备,包括:存储器;处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现上述任一项的方法。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现上述任一项的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,C语言、VHDL语言、Verilog语言、面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (6)
1.一种计算超越函数的方法,其特征在于,包括:
判断每个线程的写入缓存中是否有待计算数据,若任意一个线程的写入缓存中有待计算数据,则从所述每个线程中确定目标线程;
将所述目标线程的写入缓存中的待计算数据发送给算子;
利用所述算子对所述待计算数据进行迭代计算;
监控所述算子进行迭代的次数,若确定所述算子进行迭代计算的次数达到预定次数,则将迭代计算的计算结果写入所述目标线程的读取缓存;
将所述目标线程的写入缓存中的待计算数据发送给算子,包括:
判断所述算子是否处于占用状态,若处于占用状态,则等待直到所述算子变为空闲状态,再将所述目标线程的写入缓存中的待计算数据发送给算子;
每个线程的CSR中包含该线程对应的函数类型信息,所述算子包括至少两种类型,将所述目标线程的写入缓存中的待计算数据发送给算子,包括:根据所述目标线程的类型,确定所述目标线程对应的目标类型的算子;根据所述目标线程的函数类型信息和待计算数据,配置所述目标类型的算子的输入寄存器;将所述目标线程的写入缓存中的待计算数据发送给所述目标类型的算子。
2.根据权利要求1所述的方法,其特征在于,若判断一个线程的所述写入缓存中有待计算数据,所述从所述每个线程中确定目标线程,包括:
将所述写入缓存中有待计算数据确定为所述目标线程;
若判断至少两个线程的所述写入缓存中有待计算数据,所述从所述每个线程中确定目标线程,包括:
按照顺序优先级从所有所述写入缓存中有待计算数据的线程中确定所述目标线程。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标线程的写入缓存中的待计算数据发送给算子,包括:
判断所述目标类型的算子是否处于占用状态,若处于占用状态,则等待直到所述目标类型的算子变为空闲状态,再将所述目标线程的写入缓存中的待计算数据发送给所述目标类型的算子。
4.一种计算超越函数的装置,其特征在于,包括:
判断模块,用于判断每个线程的写入缓存中是否有待计算数据,若任意一个线程的写入缓存中有待计算数据,则从所述每个线程中确定目标线程;
发送模块,用于将所述目标线程的写入缓存中的待计算数据发送给算子;具体用于判断所述算子是否处于占用状态,若处于占用状态,则等待直到所述算子变为空闲状态,再将所述目标线程的写入缓存中的待计算数据发送给算子;每个线程的CSR中包含该线程对应的函数类型信息,所述算子包括至少两种类型,所述发送模块将目标线程的写入缓存中的待计算数据发送给算子具体包括:根据所述目标线程的类型,确定所述目标线程对应的目标类型的算子;根据所述目标线程的函数类型信息和待计算数据,配置所述目标类型的算子的输入寄存器;将所述目标线程的写入缓存中的待计算数据发送给所述目标类型的算子;
计算模块,用于利用所述算子对所述待计算数据进行迭代计算;
监控模块,用于监控所述算子进行迭代的次数,若确定所述算子进行迭代计算的次数达到预定次数,则将迭代计算的计算结果写入所述目标线程的读取缓存。
5.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-3任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211710810.7A CN116126526B (zh) | 2022-12-29 | 2022-12-29 | 计算超越函数的方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211710810.7A CN116126526B (zh) | 2022-12-29 | 2022-12-29 | 计算超越函数的方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116126526A CN116126526A (zh) | 2023-05-16 |
CN116126526B true CN116126526B (zh) | 2024-04-19 |
Family
ID=86302133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211710810.7A Active CN116126526B (zh) | 2022-12-29 | 2022-12-29 | 计算超越函数的方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126526B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6640299B1 (en) * | 2000-04-21 | 2003-10-28 | Ati International Srl | Method and apparatus for arbitrating access to a computational engine for use in a video graphics controller |
CN101313286A (zh) * | 2005-12-22 | 2008-11-26 | 英特尔公司 | 多线程处理器中的性能优先化 |
CN101739242A (zh) * | 2009-11-27 | 2010-06-16 | 宇盛通信科技(深圳)有限公司 | 一种流数据处理方法及流处理器 |
CN107491355A (zh) * | 2017-08-17 | 2017-12-19 | 山东浪潮商用系统有限公司 | 一种基于共享内存的进程间功能调用方法及装置 |
CN109271134A (zh) * | 2018-12-13 | 2019-01-25 | 上海燧原科技有限公司 | 超越函数运算方法及装置、存储介质及电子设备 |
-
2022
- 2022-12-29 CN CN202211710810.7A patent/CN116126526B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6640299B1 (en) * | 2000-04-21 | 2003-10-28 | Ati International Srl | Method and apparatus for arbitrating access to a computational engine for use in a video graphics controller |
CN101313286A (zh) * | 2005-12-22 | 2008-11-26 | 英特尔公司 | 多线程处理器中的性能优先化 |
CN101739242A (zh) * | 2009-11-27 | 2010-06-16 | 宇盛通信科技(深圳)有限公司 | 一种流数据处理方法及流处理器 |
CN107491355A (zh) * | 2017-08-17 | 2017-12-19 | 山东浪潮商用系统有限公司 | 一种基于共享内存的进程间功能调用方法及装置 |
CN109271134A (zh) * | 2018-12-13 | 2019-01-25 | 上海燧原科技有限公司 | 超越函数运算方法及装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116126526A (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5422614B2 (ja) | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート | |
US9466091B2 (en) | Atomic memory update unit and methods | |
CN102640131B (zh) | 并行线程处理器中的一致分支指令 | |
CN102375800B (zh) | 用于机器视觉算法的多处理器片上系统 | |
US11748174B2 (en) | Method for arbitration and access to hardware request ring structures in a concurrent environment | |
US11093388B2 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
US11880925B2 (en) | Atomic memory update unit and methods | |
CN114356223A (zh) | 存储器的访问方法及装置、芯片、电子设备 | |
CN113254073B (zh) | 数据处理方法及装置 | |
US11494326B1 (en) | Programmable computations in direct memory access engine | |
US8560782B2 (en) | Method and apparatus for determining access permissions in a partitioned data processing system | |
US20240220164A1 (en) | Process isolation for a processor-in-memory ("pim") device | |
EP3516515B1 (en) | Scheduling of tasks in a multiprocessor device | |
US20130055284A1 (en) | Managing shared computer resources | |
TW202109286A (zh) | 純函數語言神經網路加速器系統及結構 | |
CN116126526B (zh) | 计算超越函数的方法、装置、电子设备和存储介质 | |
US20120124260A1 (en) | CLOSED LOOP DYNAMIC INTERCONNECT BUS ALLOCATION METHOD AND ARCHITECTURE FOR A MULTI LAYER SoC | |
CN110515872A (zh) | 直接内存存取方法、装置、专用计算芯片及异构计算系统 | |
JPH0689259A (ja) | 分散プログラム方式優先順位アービトレーション方法およびシステム | |
CN109271333B (zh) | 一种sram控制方法及控制器、控制系统 | |
Sousa et al. | Runtime reconfigurable bus arbitration for concurrent applications on heterogeneous MPSoC architectures | |
CN115878517A (zh) | 存储器装置、存储器装置的操作方法和电子装置 | |
Kim et al. | System-level communication performance estimation for DMA-controlled accelerators | |
US11520713B2 (en) | Distributed bus arbiter for one-cycle channel selection using inter-channel ordering constraints in a disaggregated memory system | |
CN106708848A (zh) | 一种基于请求处理服务的hdf5文件多线程访问方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |