CN110704193B - 一种适合向量处理的多核软件架构的实现方法及装置 - Google Patents

一种适合向量处理的多核软件架构的实现方法及装置 Download PDF

Info

Publication number
CN110704193B
CN110704193B CN201910968775.0A CN201910968775A CN110704193B CN 110704193 B CN110704193 B CN 110704193B CN 201910968775 A CN201910968775 A CN 201910968775A CN 110704193 B CN110704193 B CN 110704193B
Authority
CN
China
Prior art keywords
function
vector
processing
core
vectors
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
Application number
CN201910968775.0A
Other languages
English (en)
Other versions
CN110704193A (zh
Inventor
方志红
郭怡冉
肖晶
竺红伟
顾庆远
梁之勇
邓海涛
陈凯
陈仁元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 38 Research Institute
Original Assignee
CETC 38 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 38 Research Institute filed Critical CETC 38 Research Institute
Priority to CN201910968775.0A priority Critical patent/CN110704193B/zh
Publication of CN110704193A publication Critical patent/CN110704193A/zh
Application granted granted Critical
Publication of CN110704193B publication Critical patent/CN110704193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种适合向量处理的多核软件架构的实现方法及装置,所述方法包括:将输入向量按照处理核的数量均分为若干个待处理子向量,每个处理核处理其中一个待处理子向量;对于具有相同形参,形参相同,处理核间交互方式相同,输出向量切分方式相同的函数运算归为同一函数类,建立一个函数模板,所有函数模板构成一个函数模板集;然后每个处理核对其对应的待处理子向量进行处理时,从函数模板集中调用待处理子向量对应的函数模板,再将函数模板中的函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算;本发明的优点在于:本发明提供的多核软件架构用户可自主实现,简单高效。

Description

一种适合向量处理的多核软件架构的实现方法及装置
技术领域
本发明涉及多核负载均衡领域,更具体涉及一种适合向量处理的多核软件架构的实现方法及装置。
背景技术
由于温度、制程、功耗等多方面约束,处理器单核频率提升日益困难。为了提高处理器性能,多核技术逐渐成为数字信号处理器更新迭代的主流趋势。多核技术的瓶颈在于应用优化。如何将应用任务分配到处理器内部各核,充分发挥各核处理性能成为多核软件优化的重点。
将任务均衡的分配到多个处理内核,是发挥多核处理器优势的关键,多核并行处理的研究具有十分重要的应用价值与广阔的应用前景。将串行处理转并行处理常用的方法有多线程操作系统(例如Linux的POSIX Thread)和并行开发环境(例和OPENMP开发环境)。多线程操作系统的一个进程中可包括多个线程,每个线程并行执行不同的任务;并行开发环境一般由用户在源码中对需要并行处理部分添加并行标识符,编译器根据标识符完成并行化操作。中国专利公开号CN101631139A,公开了基于多核平台的负载均衡软件架构及方法,其主要是采用多核平台和负载均衡设备作为架构元件,并为负载均衡设备上的每个网卡初始化一个内核线程,作为该网卡的软中断例程,各自处理所对应网卡的输入和输出,同时将所有内核线程独立化;为每两个网卡线程之间的信息交换建立一个独立的通道,每个通道中建立一组双向环形队列作为多核平台和负载均衡设备的联结器;环形队列维护一个写指针和一个读指针,分别由两个线程操作,使线程间消息交换无需加锁;在网卡输入的软中断例程中实现服务器负载均衡的选路策略,并在链路层执行应用层的所有工作。该发明的优点是实现了服务器的负载均衡,它能够显著地提高负载均衡设备的性能。但是该发明采用线程操作,需要操作系统支持,采用网卡进行输入输出控制,需要额外硬件支持。依赖于操作系统与并行开发环境的并行化处理一般由芯片厂商提供底层软件支持。如果芯片厂商实力不足以提供支持或得不到相关操作系统或开发环境的授权,用户很难自主实现。
发明内容
本发明所要解决的技术问题在于如何提供一种独立于操作系统与硬件之外的,用户能够自主实现的多核软件架构的实现方法及装置。
本发明通过以下技术手段实现解决上述技术问题的:一种适合向量处理的多核软件架构的实现方法,所述方法包括:将输入向量按照处理核的数量均分为若干个待处理子向量,每个处理核处理其中一个待处理子向量,当输入向量的长度无法被处理核的数量整除时,由指定的处理核处理余数部分对应的待处理子向量;
预先将形参相同,处理核间交互方式相同,输出向量切分方式相同的函数运算归为同一函数类,并建立针对所述函数类的函数模板,进而得到由函数模板构成的函数模板集,其中,所述函数运算为输入向量中包括的待处理子向量的运算;
然后每个处理核对其对应的待处理子向量进行处理时,从函数模板集中调用待处理子向量对应的函数模板,再将函数模板中的函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算。
本发明将向量型并行计算与多核芯片相结合,先进行向量任务分割,将向量均分,从而实现均衡负载,然后将具有相同处理流程的函数归为一类建立函数模板,众多函数模板再生成函数模板集,进行多核处理时,每个处理核只需要调用其对应的待处理子向量的函数模板,不需要重复编译处理流程相似的代码,减少重复性工作,提高效率,降低错误率,便于后期维护。且本发明的多核处理流程只要在C语言环境下运行函数模板集即可,不依赖于操作系统以及并行开发环境,独立于操作系统与硬件之外,可由用户自主实现。
优选的,每个所述函数模板中均包括cache优化操作。多核处理相关的cache维护,内存交互、合成优化等操作封装在函数模板中,顶层软件开发人员直接利用优化后的封装函数进行工程实现,不仅可以提高处理实时性,还有利于提升软件开发效率。
优选的,所述指定的处理核是若干个处理核中的任一个。
优选的,所述指定的处理核是若干个处理核中的物理地址处于最后一个的处理核。
本发明还提供一种适合向量处理的多核软件架构的实现装置,所述装置包括:
向量切分模块,用于将输入向量按照处理核的数量均分为若干个待处理子向量,每个处理核处理其中一个待处理子向量,当输入向量的长度无法被处理核的数量整除时,由指定的处理核处理余数部分对应的待处理子向量;
函数模板集构建模块,用于预先将形参相同,处理核间交互方式相同,输出向量切分方式相同的函数运算归为同一函数类,并建立针对所述函数类的函数模板,进而得到由函数模板构成的函数模板集,其中,函数运算为输入向量中包括的待处理子向量的运算;
处理模块,用于每个处理核对其对应的待处理子向量进行处理时,从函数模板集中调用待处理子向量对应的函数模板,再将函数模板中的函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算。
优选的,每个所述函数模板中均包括cache优化操作。
优选的,所述指定的处理核是若干个处理核中的任一个。
优选的,所述指定的处理核是若干个处理核中的物理地址处于最后一个的处理核。
本发明的优点在于:
(1)在雷达阵列信号处理、遥感图像、气象研究等领域,矩阵、傅里叶变换、滤波、偏微分方程等数学问题通常是以向量为基础进行求解,向量各元素上执行的运算操作一般是相互独立的,本发明将向量型并行计算与多核芯片相结合,提出一种适合向量处理的多核软件架构的实现方法,将具有相同处理流程的函数归为一类建立函数模板,众多函数模板再生成函数模板集,其多核处理流程只要在C语言环境下运行函数模板集即可,不依赖于操作系统以及并行开发环境,不需要多核芯片厂商提供底层软件支持,可由用户自主实现。
(2)本发明将向量型并行计算与多核芯片相结合,先进行向量任务分割,将向量均分,从而实现均衡负载,然后将具有相同处理流程的函数归为一类建立函数模板,众多函数模板再生成函数模板集,进行多核处理时,每个处理核只需要调用其对应的待处理子向量的函数模板,不需要重复编译处理流程相似的代码,减少重复性工作,提高效率,便于后期维护。
附图说明
图1为本发明实施例所公开的一种适合向量处理的多核软件架构的实现方法的多核并行处理示意图;
图2为本发明实施例所公开的一种适合向量处理的多核软件架构的实现方法中函数模板集的构建示意图;
图3为本发明实施例所公开的一种适合向量处理的多核软件架构的实现方法中基于多核函数模板将单核函数扩展为多核函数的过程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种适合向量处理的多核软件架构的实现方法,所述方法包括:将输入向量按照处理核的数量均分为N个待处理子向量,即图1所示的向量分量0至向量分量N-1,每个处理核处理其中一个待处理子向量,即图1所示的,核0处理向量分量0,核N-1处理向量分量N-1,每个处理核都有一个物理地址,待处理子向量分配给每个处理核实质上是物理地址的分配,当输入向量的长度无法被处理核的数量整除时,由指定的处理核处理余数部分对应的待处理子向量;其中,所述指定的处理核是若干个处理核中的任一个。在本发明实施例中所述指定的处理核是若干个处理核中的物理地址处于最后一个的处理核,也即图1所示的核N-1。
以上阐述的是一个输入向量的情况,对于若干个输入向量的情况,各输入向量按上述同样方法划分为对应的N个待处理子向量。每个处理核处理每个输入向量对应的某一待处理子向量,共若干个待处理子向量。若干个待处理子向量之间需要进行若干种函数运算,于是预先将形参相同,处理核间交互方式相同,输出向量切分方式相同的函数运算归为同一函数类,并建立针对所述函数类的函数模板,进而得到由函数模板构成的函数模板集,其中,所述函数运算为输入向量中包括的待处理子向量的运算;例如向量a加向量b的函数运算与向量a乘以向量b的函数运算,具有相同形参,且形参个数和类型相同,处理流程相同即处理核间交互方式相同,输出向量切分方式相同,所以向量a加向量b的函数运算与向量a乘以向量b的函数运算归为同一函数类,建立函数模板。需要注意的是,形参相同在本发明中是指形参个数和形参类型相同。
然后每个处理核对其对应的待处理子向量进行处理时,根据待处理子向量的输入、输出、形参个数和类型,处理核间交互方式,输出向量切分方式、函数运算等从函数模板集中调用待处理子向量对应的函数模板,然后再将函数模板中的函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算,函数模板中包含同一函数类的多种函数运算,将函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算以在运算时利用此函数指针调用对应的函数运算,代码调用函数指针对应函数时就完成了待处理子向量之间需要进行的多种函数运算,这种调用方式,简化了多核实现代码,减少运行时间,提高处理速度,避免同一函数类的多种函数运算的代码重复执行多次,避免同一函数类的多种函数需要一一对应的多个多核实现版本。如图2所示,本发明的运行环境为C语言编译系统,多种函数运算以多段代码的形式存储在执行代码中,同一函数类的函数运算构建一个函数模板,多个函数模板组成函数模板集。以复数向量取模后乘以常数的单核函数bw_cvabsmuls、复数向量归一化后乘以常数的单核函数bw_cvnormmuls、浮点型向量乘以常数后求余弦的单核函数bw_vmulscos为例,这三个函数均可归入到同一函数类VSOV。该函数类对应多核函数模板为vw_vsov。将各单核函数作为函数指针代入多核函数模板后即得到对应多核函数版本vw_cvabsmuls、vw_cvnormmuls及vw_vmulscos,如图3所示,为了便于理解,图3以代码的形式展现基于多核函数模板将单核函数扩展为多核函数的过程,其中各段代码属于本领域常规语言描述,本领域技术人员能够毫无疑义的理解该过程,在此不做赘述。
目前的处理芯片,其内核的主频非常的高,但是外存要做到较高的主频就需要付出很大的代价。为了达到高费效比,现代的芯片一般的来说是在处理核内设置一个容量很小的速度很快的存储区,这段区域称为cache,由于外存较大且速度比较慢,如果在处理中能够及时的把需要处理的数据从外存搬移到内部的cache中,那么性能将会大大提升。所以本发明还涉及cache优化操作,如图1所示,每个所述函数模板中均包括cache优化操作。本发明cache优化操作的优点在于它不用再针对每个单个的函数进行所有的这种优化操作,而是由于一个函数模板就对应了多个处理函数即多种函数运算,所以多个处理函数的cache优化操作可以一个函数模板内完成,简化优化操作的工作量。多核处理相关的cache维护,多核之间的内存交互、合成优化、运算处理等操作封装在函数模板中,顶层软件开发人员直接利用优化后的封装函数进行工程实现,不仅可以提高处理实时性,还有利于提升软件开发效率。
最后经过每个处理核处理的待处理子向量均输出,形成输出向量,至此向量的多核处理完成。
本发明的工作过程为:以单精度浮点向量加法为例,a、b为长度为N的输入向量,c为长度为N的输出向量,实现向量a加向量b等于向量c,在多核芯片上完成这一任务时,假设有M个核,每个核具有一个ID作为标记(ID号从0到M-1),将向量a和向量b均分为M等份以后,考虑到向量长度有可能不能被M整除,最后一个核(ID号为M-1)负责处理的最后一个待处理子向量可能会多出几个子向量,除最后一个核以外的核处理平均数长度的待处理子向量,然后调用vaddv函数完成向量a的子向量与向量b的子向量相加的处理,多核处理过程中,向量a与向量b的相加转化为每个核处理一部分长度的向量a与一部分长度的向量b的相加,由于向量处理的运算量与向量长度成正比,这样原来的向量处理任务就均分到了多个核,为了能够充分发挥芯片性能,实际程序中往往还要加上cache操作等函数。
如果采用这种从单核到多核的实现方法,那么每一个单核函数均要编写对应的多核版本函数,软件开发工作量非常大。比较单精度浮点向量相乘与单精度浮点向量相加的多核版本函数,单精度浮点向量相乘调用乘法函数vmulv,单精度浮点向量相加调用加法函数vsubv,可以发现除了调用的处理函数不同外两个函数架构完全相同,如果我们能够将调用的处理函数vmulv和vsubv作为一个参数调入的话,这两个多核函数就可以统一由一个函数完成。于是得到了函数模板的初步概念。同一函数类的函数归为一个函数模板,同一函数类的函数具有相同形参、相同输入、相同输出、形参个数和类型相同,处理核间交互方式相同,输出向量切分方式相同,所以vsubv、vmulv等函数可以归为同一函数类即归为一个函数模板。将处理函数作为参数调入采用函数指针最为方便可靠,于是将上述函数模板中的函数指针的输入参数赋值到vsubv、vmulv等函数,实现两个多核函数统一由一个函数完成,这里只是以两个多核函数为例,实际中可以不止两个多核函数统一由一个函数完成,即实际中可以不止两个多核函数归为同一函数模板,最终在处理过程中的众多函数模板组成一个函数模板集,下一次进行多核处理时,只需要根据输入输出形参等信息来调用待处理子向量对应的函数模板即可。
通过以上技术方案,本发明提供一种适合向量处理的多核软件架构的实现方法将向量型并行计算与多核芯片相结合,先进行向量任务分割,将向量均分,从而实现均衡负载,然后将具有相同处理流程的函数归为一类建立函数模板,众多函数模板再生成函数模板集,进行多核处理时,每个处理核只需要调用其对应的待处理子向量的函数模板,不需要重复编译处理流程相似的代码,减少重复性工作,提高效率,降低错误率,便于后期维护。且本发明的多核处理流程只要在C语言环境下运行函数模板集即可,不依赖于操作系统以及并行开发环境,可由用户自主实现。
实施例2
与本发明实施例1相对应,本发明实施例2还提供一种适合向量处理的多核软件架构的实现装置,所述装置包括:
向量切分模块,用于将输入向量按照处理核的数量均分为若干个待处理子向量,每个处理核处理其中一个待处理子向量,当输入向量的长度无法被处理核的数量整除时,由指定的处理核处理余数部分对应的待处理子向量;
函数模板集构建模块,用于预先将形参相同,处理核间交互方式相同,输出向量切分方式相同的函数运算归为同一函数类,并建立针对所述函数类的函数模板,进而得到由函数模板构成的函数模板集,其中,所述函数运算为输入向量中包括的待处理子向量的运算;
处理模块,用于每个处理核对其对应的待处理子向量进行处理时,从函数模板集中调用待处理子向量对应的函数模板,再将函数模板中的函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算。
具体的,每个所述函数模板中均包括cache优化操作。
具体的,所述指定的处理核是若干个处理核中的任一个。
具体的,所述指定的处理核是若干个处理核中的物理地址处于最后一个的处理核。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种适合向量处理的多核软件架构的实现方法,其特征在于,所述方法包括:将输入向量按照处理核的数量均分为若干个待处理子向量,每个处理核处理其中一个待处理子向量,当输入向量的长度无法被处理核的数量整除时,由指定的处理核处理余数部分对应的待处理子向量;
预先将形参相同,处理核间交互方式相同,输出向量切分方式相同的函数运算归为同一函数类,并建立针对所述函数类的函数模板,进而得到由函数模板构成的函数模板集,其中,所述函数运算为输入向量中包括的待处理子向量的运算;
然后每个处理核对其对应的待处理子向量进行处理时,从函数模板集中调用待处理子向量对应的函数模板,再将函数模板中的函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算。
2.根据权利要求1所述的一种适合向量处理的多核软件架构的实现方法,其特征在于,每个所述函数模板中均包括cache优化操作。
3.根据权利要求1所述的一种适合向量处理的多核软件架构的实现方法,其特征在于,所述指定的处理核是若干个处理核中的任一个。
4.根据权利要求1所述的一种适合向量处理的多核软件架构的实现方法,其特征在于,所述指定的处理核是若干个处理核中的物理地址处于最后一个的处理核。
5.一种适合向量处理的多核软件架构的实现装置,其特征在于,所述装置包括:
向量切分模块,用于将输入向量按照处理核的数量均分为若干个待处理子向量,每个处理核处理其中一个待处理子向量,当输入向量的长度无法被处理核的数量整除时,由指定的处理核处理余数部分对应的待处理子向量;
函数模板集构建模块,用于预先将形参相同,处理核间交互方式相同,输出向量切分方式相同的函数运算归为同一函数类,并建立针对所述函数类的函数模板,进而得到由函数模板构成的函数模板集,其中,所述函数运算为输入向量中包括的待处理子向量的运算;
处理模块,用于每个处理核对其对应的待处理子向量进行处理时,从函数模板集中调用待处理子向量对应的函数模板,再将函数模板中的函数指针的输入参数赋值到该待处理子向量的子向量之间需要进行的函数运算。
6.根据权利要求5所述的一种适合向量处理的多核软件架构的实现装置,其特征在于,每个所述函数模板中均包括cache优化操作。
7.根据权利要求5所述的一种适合向量处理的多核软件架构的实现装置,其特征在于,所述指定的处理核是若干个处理核中的任一个。
8.根据权利要求5所述的一种适合向量处理的多核软件架构的实现装置,其特征在于,所述指定的处理核是若干个处理核中的物理地址处于最后一个的处理核。
CN201910968775.0A 2019-10-12 2019-10-12 一种适合向量处理的多核软件架构的实现方法及装置 Active CN110704193B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910968775.0A CN110704193B (zh) 2019-10-12 2019-10-12 一种适合向量处理的多核软件架构的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910968775.0A CN110704193B (zh) 2019-10-12 2019-10-12 一种适合向量处理的多核软件架构的实现方法及装置

Publications (2)

Publication Number Publication Date
CN110704193A CN110704193A (zh) 2020-01-17
CN110704193B true CN110704193B (zh) 2022-12-16

Family

ID=69198716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910968775.0A Active CN110704193B (zh) 2019-10-12 2019-10-12 一种适合向量处理的多核软件架构的实现方法及装置

Country Status (1)

Country Link
CN (1) CN110704193B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023010232A1 (zh) * 2021-07-31 2023-02-09 华为技术有限公司 一种处理器及通信方法
CN113791742B (zh) * 2021-11-18 2022-03-25 南湖实验室 一种高性能的数据湖系统及数据存储方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049245A (zh) * 2012-10-25 2013-04-17 浪潮电子信息产业股份有限公司 一种基于cpu多核平台的软件性能优化方法
EP2624134A1 (en) * 2012-01-31 2013-08-07 MIMOON GmbH Method and apparatus for mapping a communication system on a multicore processor
CN108845795A (zh) * 2018-05-29 2018-11-20 中国人民解放军国防科技大学 基于gpdsp的稠密矩阵乘法向量化汇编代码生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063779B2 (en) * 2010-01-06 2015-06-23 Mindspeed Technologies, Inc. Task list generation, parallelism templates, and memory management for multi-core systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2624134A1 (en) * 2012-01-31 2013-08-07 MIMOON GmbH Method and apparatus for mapping a communication system on a multicore processor
CN103049245A (zh) * 2012-10-25 2013-04-17 浪潮电子信息产业股份有限公司 一种基于cpu多核平台的软件性能优化方法
CN108845795A (zh) * 2018-05-29 2018-11-20 中国人民解放军国防科技大学 基于gpdsp的稠密矩阵乘法向量化汇编代码生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Design, Implementation and Evaluation of Built-in Functions on Parallel Programming Model in SMYLE OpenCL";Noriko Etani等;《2013 IEEE 7th International Symposium on Embedded Multicore Socs》;20131111;第113-118页 *
"多核DSP信号处理并行设计";夏际金等;《雷达科学与技术》;20131231;第11卷(第6期);第617-620页 *

Also Published As

Publication number Publication date
CN110704193A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
US8782645B2 (en) Automatic load balancing for heterogeneous cores
US20190102671A1 (en) Inner product convolutional neural network accelerator
US20120331278A1 (en) Branch removal by data shuffling
EP2796991A2 (en) Processor for batch thread processing, batch thread processing method using the same, and code generation apparatus for batch thread processing
US6934938B2 (en) Method of programming linear graphs for streaming vector computation
CN110704193B (zh) 一种适合向量处理的多核软件架构的实现方法及装置
Behrens et al. Efficient SIMD Vectorization for Hashing in OpenCL.
CN112559053A (zh) 可重构处理器数据同步处理方法及装置
Moustafa et al. 3D cartesian transport sweep for massively parallel architectures with PARSEC
EP3779778A1 (en) Methods and apparatus to enable dynamic processing of a predefined workload
TWI587137B (zh) 經改良之單一指令多重資料(simd)的k最近鄰居法之實施技術
Gan et al. Customizing the HPL for China accelerator
JP7042870B2 (ja) コンピューティングデバイスによって実行される方法、装置、機器及びコンピュータ読み取り可能な記憶媒体
Yamamoto et al. Direct estimation of deformable motion parameters from range image sequence
Cao et al. Evaluating data redistribution in parsec
Qin et al. A CNN hardware accelerator designed for YOLO algorithm based on RISC-V SoC
Chandrashekhar et al. Performance analysis of sequential and parallel programming paradigms on CPU-GPUs cluster
Shao et al. Map-reduce inspired loop parallelization on CGRA
Kim et al. Performance evaluation of multithreaded computations for cpu bounded task
Lu et al. A large-scale heterogeneous computing framework for non-uniform sampling two-dimensional convolution applications
Reznikova Smart Tiling for Program Optimization and Parallelization [C]
WO2023108801A1 (zh) 基于cpu-gpu异构架构的数据处理方法、设备以及存储介质
US20210318908A1 (en) Graph partitioning to exploit batch-level parallelism
Mohamed et al. Reconfigurable and Heterogeneous Computing
Bordoloi et al. Customizing instruction set extensible reconfigurable processors using GPUs

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