CN107608784A - 一种在多核dsp下的海量数据流多模态调度方法 - Google Patents
一种在多核dsp下的海量数据流多模态调度方法 Download PDFInfo
- Publication number
- CN107608784A CN107608784A CN201710509588.7A CN201710509588A CN107608784A CN 107608784 A CN107608784 A CN 107608784A CN 201710509588 A CN201710509588 A CN 201710509588A CN 107608784 A CN107608784 A CN 107608784A
- Authority
- CN
- China
- Prior art keywords
- data block
- core
- scheduling
- current
- jump
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在多核DSP下的海量数据流多模态调度方法,包括主控核和加速核,主控核和加速核之间通过请求包队列传输请求,基于数据维度和数据优先顺序,确定连续选择、随机选择和螺旋选择三种数据块选择方法,根据负载均衡确定循环调度和负载均衡调度两种数据块多核分配方法,对通过数据块分组方法根据分配粒度选定的数据块加载多个计算核中进行处理。采用多层次的数据块调度方式,满足了数据块调度时的***负载、数据相关性、处理粒度、数据维度和顺序的需求,具有良好的通用性和移植性;从多个层面扩展了数据块调度的模式和形态,具有更强的适用范围,用户只需配置数据块调度方式和分配粒度,***自动完成数据调度,提高了并行开发的效率。
Description
技术领域
本发明属于多核并行计算领域,具体涉及一种在多核DSP下的海量数据流多模态调度方法。
背景技术
随着高性能多核DSP处理器在武器装备***中的广泛应用,武器装备逐渐朝着高性能、智能化、小型化方向发展,这需要充分利用多核DSP并行计算的能力,而目前在多核DSP上主要提供了两种并行计算模型:针对共享存储的OpenMP模型和针对分布式存储的OpenEM模型。
其中OpenMP模型的数据计算和传输主要使用共享内存完成,不存在数据流调度问题。而OpenEM模型中数据计算需要将数据传输至局部存储,因此需要完成数据流调度,其调度方式为动态负载均衡,该方法主要利用了多核DSP的多核导航器硬件,实现了数据块的硬件排队,达到了较为理想的负载均衡效果,但OpenEM并未针对数据块的调度粒度、处理顺序和数据维度等特性考虑数据块调度问题。这已不适用于目前流行的高级图像算法和机器学习等算法,如地形跟踪/回避、多模地形/电磁/景象匹配定位导航、模式识别(目标检测、识别和跟踪)、深度学习(聚类、分类、SVM和图结构计算等)等。
目前,针对数据块的调度粒度、处理顺序和维度的调度方法主要和具体的应用结合,并未从编程模型的角度整体考虑,没有形成较为通用的调度方法。如在专利CN104849698A中,提出了一种基于异构多核***的雷达信号并行处理方法,该方法中考虑了数据块的维度问题,但只是针对雷达信息处理领域,并不具有通用性,同时该***也并未考虑负载均衡、处理顺序和调度粒度问题。在专利CN104504205A中,提出了一种对称FIR算法的并行化二维分割方法及其硬件结构,考虑了数据的粒度和维度问题,但也是针对特定的算法设计,且并未考虑数据负载均衡和数据处理顺序问题。而在专利CN104794494A中,提出了一种可扩展快速的轨迹聚类方法,也是针对特定问题只考虑了数据的粒度问题。在专利CN1608379中,提出了确定相邻数据块内的模式的方法和设备,详细考虑了相邻数据块在横向、纵向、斜向和旋转的比对问题,,但并未考虑海量数据流的分割及多核负载均衡的多模态调度等问题。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种在多核DSP下的海量数据流多模态调度方法,从负载均衡、分配粒度、数据维度和处理顺序四个角度整体考虑数据块调度问题,提出了三种数据块选择方法、两种数据分配方法和一种数据块分组方法,并设计了灵活的组合及使用方式,使得数据块调度可同时满足均衡性、多粒度、多维度和多序的特性,为复杂智能算法的实现提供了有力支撑。
本发明采用以下技术方案:
一种在多核DSP下的海量数据流多模态调度方法,包括主控核和加速核,所述主控核和加速核之间通过请求包队列传输请求,基于数据维度和数据优先顺序,确定连续选择、随机选择和螺旋选择三种数据块选择方法,根据负载均衡确定数据库循环调度和数据库负载均衡调度两种数据块多核分配方法,对通过数据块分组方法根据分配粒度选定的数据块加载多个计算核中进行处理。
进一步的,所述在多核DSP下的海量数据流多模态调度方法主要在所述主控核实现,具体流程如下:
S101、用户根据需求设置数据块的调度组合方式和分配粒度;
S102、用户在分割数据块时,根据调度方式将数据块分配至不同的队列;
S103、当数据块分割完成后,若***设置了数据块选择方式,则根据选择的调度方式调整数据块的顺序,并根据不同的数据块分配方式加入相应的调度队列中;
S104、在数据块开始调度后,根据不同的数据块分配和分组方式,从不同的调度队列中取出数据块并分配至加速核处理。
进一步的,所述连续选择方法为数据块连续调度顺序调整主要针对每个核上处理的数据块顺序,即每个核的数据块号是连续的,具体的调整步骤为:
S201、按照任务设定的数据块分组大小,计算数据块的组数,判断数据块分组是否合理;
S202、计算每个核均匀分配的数据块个数和剩余数据块个数;
S203、判断数据块的绑定个数是否大于1,若小于1跳转至S205;
S204、根据绑定大小,修正每个核均匀分配的数据块个数和剩余数据块个数;
S205、判断临时数据块队列中是否还有剩余的数据块,若有跳转至S206;否则结束调整;
S206、从临时数据块队列中取出数据块;
S207、判断数据块的分配类型,若为循环分配类型,调整至S208;若为负载均衡分配类型调整至S213;
S208、判断剩余的数据块个数是否大于零,且当前数据块个数是否等于每个核均匀分配的数据块个数加上绑定大小,若满足,则跳转至S209;
S209、当前核数据块分配完毕,将核号修改为下一个核号,修改剩余数据块的大小,同时将当前数据个数块置零;
S210、判断剩余的数据块个数是否小于等于0,且当前数据块个数是否等于每个核均匀分配的数据块个数,若满足,则跳转至S211;
S211、当前核数据块分配完毕,将核号修改为下一个核号,同时将当前数据块个数置为零;
S212、将数据块添加至当前核的加速核调度队列,并增加当前数据块个数,跳转至S205;
S213、将数据块直接添加至全局的数据块调度队列,跳转至S205。
进一步的,所述随机选择方法为数据块随机调度顺序调整主要针对整体的调度顺序,首先按照随机的顺序从临时调度队列中取出数据块,然后再将其***相应的调度队列中,具体的调整步骤为:
S301、按照任务设定的数据块分组大小,计算数据块的组数,判断数据块分组是否合理
S302、设置随机阈值,计算每个核均匀分配的数据块个数和剩余数据块个数;
S303、判断数据块的绑定个数是否大于1,若大于1调整至S304;
S304、根据绑定大小,重新设置随机阈值,计算每个核均匀分配的绑定个数和剩余绑定个数;
S305、判断临时数据块队列中是否还有剩余的数据块,若由调整至S306;否则结束调整
S306、根据随机阈值,获取一个随机的数据块索引;
S307、判断当前绑定个数是否大于1,若大于则跳转至S308;否则跳转至S317;
S308、根据绑定大小计算当前的数据块的索引号,从临时数据块队列中取出所有的绑定数据块;
S309、判断数据块的分配类型,若为循环分配类型,调整至S310;若为负载均衡分配类型调整至S315;
S310、判断剩余的绑定个数是否大于零,且当前绑定个数是否等于每个核均匀分配的绑定个数加上1,若满足,则跳转至S311;
S311、当前核数据块分配完毕,将核号修改为下一个核号,修改剩余绑定大小,同时将当前绑定个数块置零;
S312、判断当前绑定个数是否小于等于0,且当前绑定个数是否等于每个核均匀分配的绑定个数,若满足,则跳转至S311;
S313、当前核数据块分配完毕,将核号修改为下一个核号,同时将当前绑定个数置为零;
S314、将数据块添加至当前核的加速核调度队列,跳转至S316;
S315、将数据块直接添加至全局的数据块调度队列;
S316、从临时队列中删除所有绑定的数据块,修改随机阈值,跳转至S305;
S317、直接从临时队列中取出数据块;
S318、判断数据块的分配类型,若为循环分配类型,调整至S319、;若为负载均衡分配类型调整至S323;
S319、判断剩余的数据块个数是否大于零,且当前数据块个数是否等于每个核均匀分配的数据块个数加上1,若满足,则跳转至S320;
S320、当前核数据块分配完毕,将核号修改为下一个核号,修改剩余数据块的大小,同时将当前数据个数块置零;
S321、判断当前数据块个数是否小于等于0,且当前数据块个数是否等于每个核均匀分配的数据块个数,若满足,则跳转至S322;
S322、当前核数据块分配完毕,将核号修改为下一个核号,同时将当前数据块个数置为零;
S323、将数据块添加至当前核的加速核调度队列,并增加当前数据块个数;
S324、将数据块直接添加至全局的数据块调度队列;
S325、从临时数据块队列中删除数据块,修改随机阈值,跳转至S305。
进一步的,所述数据块分组方法具体为:从分配粒度方面设计了组调度,所述组调度数据块分配时以组为单位,其主要过程为:在创建任务时,通过指定任务中数据块绑定的大小,决定数据块的调度粒度,在调度时,一组中的数据块一定会被调度到同一加速单元上,数据块的组调度主要被用于当某一运算的数据量过大,超过了加速单元的本地存储,必须被切分成多个较小的数据块的情况下。
进一步的,所述螺旋选择方法为数据块螺旋调度顺序调整主要针对整体的调度顺序和数据维度特性,首先若选择螺旋调度,用户必须调用接口设置螺旋调度的起始块,然后从起始块开始按照螺旋的顺序依次从临时调度队列中取出数据块,然后再将其***相应的调度队列中,具体的调整步骤为:
S401、根据用户设置的起始调度块的信息,计算起始调度块的索引号,同时标识该块已经被访问,并记录前一个数据块访问索引为当前索引号;
S402、根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
S403、判断临时数据块队列中的数据块是否处理完成,未处理完成跳转S404;否则结束调整;
S404、根据螺旋数据块的移动规律,首先螺旋向右或向左移动,判断数据块移动次数,若为奇数次移动则向右移动,跳转至S405,若为偶数次移动则向左移动,跳转至S410;
S405、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引加1;
S406、判断索引号是否超过数据块总个数,若超过结束向右调整,跳转至S417,否则跳转至S407;
S407、判断该索引的数据块是否被访问,若访问过则跳转至S408;否则跳转至S409;
S408、前一个数据块访问索引号加1,跳转至S416;
S409、前一个数据块访问索引号为当前索引号,跳转至S415;
S410、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引减1;
S411、判断索引号是否小于零,若小于结束向左调整,跳转至S417;否则跳转至S412;
S412、判断该索引数据块是否被访问,若访问过则跳转至S413;否则跳转至S414;
S413、前一个数据块访问索引号减1,跳转至S416;
S414、前一个数据块访问索引号为当前索引号;
S415、根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
S416、判断当前数据块向右或向左是否移动完成,完成跳转至S417,否则跳转至S404;
S417、根据螺旋数据块的移动规律,螺旋开始向下或向上移动,判断数据块移动次数,若为奇数次移动则向下移动,跳转至S418,若为偶数次移动则向上移动,跳转至S423;
S418、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引号加上每行的数据块个数;
S419、判断当前索引号是否超过数据块总个数,若超过结束向下调整,跳转至S429,否则跳转至S420;
S420、判断该索引数据块是否被访问,若访问过则跳转至S421;否则跳转至S422;
S421、前一个数据块访问索引号更新为加上每行的数据块个数,跳转至S429;
S422、前一个数据块访问索引号为当前索引号,跳转至S428;
S423、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引号减去每行的数据块个数;
S424、判断当前索引号是否小于零,若超过结束向下调整,跳转至S429;否则跳转至S425;
S425、判断该索引的数据块是否被访问,若访问过则跳转至S426;否则跳转至S427;
S426、前一个数据块访问索引号更新为减轻每行的数据块个数,跳转至S429;
S427、前一个数据块访问索引号为当前索引号;
S428、根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
S429、判断当前数据块向下或向上是否移动完成,完成跳转至S403;否则跳转至S417。
进一步的,所述数据库循环调度方法主要从数据块前后处理的相关性进行考虑,利用静态分配完成数据块调度,主要使用了每个核的加速核调度队列,即提前将调度的数据块按组分配至加速核调度队列中,分配至循环从队列中取出并将其传送给加速核处理,具体的调整步骤为:
S501、初始化当前任务的核号;
S502、判断任务的核号是否大于分配的核数,若大于结束调度,否则跳转至S503;
S503、判断当前加速核调度队列是否为空,若为空跳转至S506,否则跳转至S504;
S504、判断当前加速核处理个数是否超过六个,若为超过跳转至S505,否则跳转至S506;
S505、将当前数据块分配至当前核进行处理;
S506、结束当前核调度,将当前任务的核号加1,跳转至S502。
进一步的,所述数据库负载均衡调度方法从负载均衡角度进行考虑,利用全局的数据块调度队列统一完成数据块分配,即实时判断当前核的负载,若负载较重分配跳过当前核,否则直接分配给当前核,具体的调整步骤为:
S601、初始化当前任务的访问核数为0,已处理的数据块个数为0;
S602、判断当前任务的绑定个数是否等于1,若等于跳转至S603,否则跳转至S610;
S603、判断当前全局调度队列是否为空,若为空结束调度;否则跳转至S604;
S604、判断当前访问核数是否超过任务分配的核数,若超过跳转至S605;否则跳转至S607;
S605、判断当前压入数据块个数是否为0,若为零表示所有核负载较重,结束本次数据块调度,否则跳转至S606;
S606、将访问核数和当前已处理的数据块个数置零;
S607、判断当前加速核处理个数是否超过六个,若为超过表示负载较重,跳转至S608;否则跳转至S609;
S608、将当前数据块分配至当前核处理,统计当前已处理的数据块个数;
S609、计算下一个核的核号,统计当前访问的核数,跳转至S603;
S610、判断当前全局调度队列是否为空,若为空结束调度;否则跳转至S611;
S611、判断当前访问核数是否超过任务分配的核数,若超过跳转至S612;否则跳转至S614;
S612、判断当前压入数据块个数是否为0,若为零表示所有核负载较重,结束本次数据块调度;否则跳转至S613;
S613、将访问核数和当前压入的数据块个数置零;
S614、判断当前组的数据块调度是否完成,若未完成跳转至S615;若已完成跳转至S619;
S615、从当前组调度队列中取出未调度的数据块;
S616、判断当前核负载是否较重,若当前核处理个数超过六个,则当前核负载较重,跳转至S618,否则跳转至S617;
S617、将当前数据块分配至当前核处理;
S618、将当前数据块加入至当前核的组调度队列中,记录当前组调度个数;
S619、判断当前核负载是否较重,若当前核处理个数超过六个,则当前核负载较重,跳转至S620,否则跳转至S621;
S620、将数据块加入至当前核的组调度队列中,统计当前组调度个数;
S621、直接将数据块分配给当前核处理,统计已处理的数据块个数和组调度个数;
S622、判断当前处理的组调度个数是否大于绑定大小,若大于跳转至S623,否则跳转至S610;
S623、统计已访问的访问核数,并计算下一个和的核号,同时将组调度个数置零,跳转至S610。
进一步的,六种方法的组合方式为:可选一种所述数据块选择方法、必选一种所述数据块多核分配方法和可选一种所述数据块分组方法,***默认的数据块选择方式为间隔式顺序,默认的数据块分组方式为1。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种在多核DSP下的海量数据流多模态调度方法,在主控核和加速核之间通过请求包队列传输请求,基于数据维度和数据优先顺序,确定连续选择、随机选择和螺旋选择三种数据块选择方法,根据负载均衡确定循环调度和负载均衡调度两种数据块多核分配方法,对通过数据块分组方法根据分配粒度选定的数据块加载多个计算核中进行处理,采用多层次的数据块调度方式,满足了数据块调度时的***负载、数据相关性、处理粒度、数据维度和顺序的需求,使得***具有良好的通用性和移植性;灵活的数据块调度组合方式,从多个层面扩展了数据块调度的模式和形态,使得***具有更强的适用范围,采用简单的数据块调度使用方法,用户只需配置数据块调度方式和分配粒度,***自动完成数据调度,提高了并行开发的效率。
进一步的,主控核调度可充分发挥主控核逻辑计算能力,解放加速核的数据调度负担,充分利用加速核的计算资源,提升加速核的计算效率,从而提高***整体加速比。
进一步的,连续选择方法充分考虑了连续数据块前后相关的特性,保证了相关数据的调度正确性,提高了***的适应能力。
进一步的,随机选择方法充分考虑了随机算法随机取数的特性,保证了随机算法的正确性,同时提升了随机算法的效率,扩展了***的计算能力。
进一步的,数据块分组方法充分考虑了数据块的调度粒度,提升了数据块单次调度的计算能力,有效的减少了主控核的调度次数,提升了调度效率。
进一步的,螺旋选择方法充分考虑了算法在不同维度下的计算效率,为高纬度的数据算法提供了支持,扩展了***的使用范围,提升了***的适应能力。
进一步的,数据循环调度调度方法保证了单位数据块在计算时间相差不大的情况下,提升主控核的调度效率,从而提升***整体的加速比。
进一步的,数据块负载均衡调度方法充分考虑的不同加速的计算效率,根据计算资源和计算时间动态分配数据块,可充分发挥多核的计算能力,从而提升***整体的加速比。
进一步的,六种方法采用灵活的数据块调度组合方式,可以满足***负载、数据相关性、处理粒度、数据维度和顺序的需求,从多次层面扩展了数据块调度的模式和形态,使得***具有更强的适用范围。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明连续调度方式示意图;
图2为本发明随机调度方式示意图;
图3为本发明螺旋调度方式示意图;
图4为本发明循环调度方式示意图;
图5为本发明负载均衡调度方式示意图;
图6为本发明组调度方式示意图;
图7为本发明海量数据并行框架整体结构示意图;
图8为本发明海量数据块流多模态调度整体流程图;
图9为本发明数据块连续调度顺序调整流程图;
图10为本发明数据块随机调度顺序调整流程图;
图11为本发明数据块螺旋调度顺序调整流程图;
图12为本发明数据块循环调度流程图;
图13为本发明数据块负载均衡调度流程图。
具体实施方式
本发明提供了一种在多核DSP下的海量数据流多模态调度方法,从负载均衡、分配粒度、数据维度和处理顺序四个角度出发,策划数据块调度方法,研究提出来了三种数据块选择方法、两种数据分配方法和一种数据块分组方法,并设计了灵活的组合方式和简易使用方法。
请参阅图7,本发明是多核DSP海量数据流并行框架的一部分,主要用于海量数据流的数据块调度,分为主控核并行中间件和加速核并行支撑***,主控核负责创建海量数据并行调度环境、任务和数据块,完成任务和数据块的调度分配;加速核负责处理具体的任务和数据块。主控核和加速核之间通过请求包队列传输请求。
请参阅图8,多核DSP下的海量数据流多模态调度方法主要在主控核实现,具体的流程如下:
(1)用户根据需求设置数据块的调度组合方式和分配粒度;
(2)用户在分割数据块时,根据调度方式将数据块分配至不同的队列;
(3)当数据块分割完成后,若***设置了数据块选择方式,则根据选择的调度方式调整数据块的顺序,并根据不同的数据块分配方式加入相应的调度队列中(在调整过程中,需要考虑数据块的分组方式);
(4)在数据块开始调度后,根据不同的数据块分配和分组方式,从不同的调度队列中取出数据块并分配至加速核处理。
根据上述步骤所示,数据块调度的核心为按组的数据块顺序调整和按组的数据块分配,通过这种实现方式,有效地将数据块选择、数据块分配和数据块分组方式进行了组合,使得整个数据块调度更加易于扩展和实现。
本发明基于数据维度和数据优先顺序,设计了连续选择、随机选择和螺旋选择三种数据块选择方法。
请参阅图1,连续数据流选择方法适用于任何维度的数据流,它首先先将数据流均匀分割成与加速核个数相同的大数据块,然后再把大数据块分割成均匀的小数据块,最后再按序加载到加速核上执行。
请参阅图9,数据块连续调度顺序调整主要针对每个核上处理的数据块顺序,即每个核的数据块号是连续的,具体的调整步骤为:
(1)按照任务设定的数据块分组大小,计算数据块的组数,判断数据块分组是否合理;
(2)计算每个核均匀分配的数据块个数和剩余数据块个数;
(3)判断数据块的绑定个数是否大于1,若小于1跳转至(5);
(4)根据绑定大小,修正每个核均匀分配的数据块个数和剩余数据块个数;
(5)判断临时数据块队列中是否还有剩余的数据块,若有跳转至(6);否则结束调整;
(6)从临时数据块队列中取出数据块;
(7)判断数据块的分配类型,若为循环分配类型,调整至(8);若为负载均衡分配类型调整至(13);
(8)判断剩余的数据块个数是否大于零,且当前数据块个数是否等于每个核均匀分配的数据块个数加上绑定大小,若满足,则跳转至(9);
(9)当前核数据块分配完毕,将核号修改为下一个核号,修改剩余数据块的大小,同时将当前数据个数块置零;
(10)判断剩余的数据块个数是否小于等于0,且当前数据块个数是否等于每个核均匀分配的数据块个数,若满足,则跳转至(11);
(11)当前核数据块分配完毕,将核号修改为下一个核号,同时将当前数据块个数置为零;
(12)将数据块添加至当前核的加速核调度队列,并增加当前数据块个数,跳转至(5);
(13)将数据块直接添加至全局的数据块调度队列,跳转至(5)。
请参阅图2,随机数据流调度同样针对数据块处理顺序,适用于任何维度数据,它首先将数据分割成若干数据块,然后从任意的数据块开始调度,按照随机的顺序将数据块加载到加速核上执行,通过这种随机调度的方法,提高随机类和统计类算法的效率。
请参阅图10,数据块随机调度顺序调整主要针对整体的调度顺序,主要体现取出数据块的随机性,它首先按照随机的顺序从临时调度队列中取出数据块,然后再将其***相应的调度队列中,具体的调整步骤为:
(1)按照任务设定的数据块分组大小,计算数据块的组数,判断数据块分组是否合理;
(2)设置随机阈值,计算每个核均匀分配的数据块个数和剩余数据块个数;
(3)判断数据块的绑定个数是否大于1,若大于1调整至(4);
(4)根据绑定大小,重新设置随机阈值,计算每个核均匀分配的绑定个数和剩余绑定个数;
(5)判断临时数据块队列中是否还有剩余的数据块,若由调整至(6);否则结束调整;
(6)根据随机阈值,获取一个随机的数据块索引;
(7)判断当前绑定个数是否大于1,若大于则跳转至(8);否则跳转至(17);
(8)根据绑定大小计算当前的数据块的索引号,从临时数据块队列中取出所有的绑定数据块;
(9)判断数据块的分配类型,若为循环分配类型,调整至(10);若为负载均衡分配类型调整至(15);
(10)判断剩余的绑定个数是否大于零,且当前绑定个数是否等于每个核均匀分配的绑定个数加上1,若满足,则跳转至(11);
(11)当前核数据块分配完毕,将核号修改为下一个核号,修改剩余绑定大小,同时将当前绑定个数块置零;
(12)判断当前绑定个数是否小于等于0,且当前绑定个数是否等于每个核均匀分配的绑定个数,若满足,则跳转至(13);
(13)当前核数据块分配完毕,将核号修改为下一个核号,同时将当前绑定个数置为零;
(14)将数据块添加至当前核的加速核调度队列,跳转至(16);
(15)将数据块直接添加至全局的数据块调度队列;
(16)从临时队列中删除所有绑定的数据块,修改随机阈值,跳转至(5);
(17)直接从临时队列中取出数据块;
(18)判断数据块的分配类型,若为循环分配类型,调整至(19);若为负载均衡分配类型调整至(23);
(19)判断剩余的数据块个数是否大于零,且当前数据块个数是否等于每个核均匀分配的数据块个数加上1,若满足,则跳转至(20);
(20)当前核数据块分配完毕,将核号修改为下一个核号,修改剩余数据块的大小,同时将当前数据个数块置零;
(21)判断当前数据块个数是否小于等于0,且当前数据块个数是否等于每个核均匀分配的数据块个数,若满足,则跳转至(22);
(22)当前核数据块分配完毕,将核号修改为下一个核号,同时将当前数据块个数置为零;
(23)将数据块添加至当前核的加速核调度队列,并增加当前数据块个数;
(24)将数据块直接添加至全局的数据块调度队列;
(25)从临时数据块队列中删除数据块,修改随机阈值,跳转至(5)。
请参阅图6,数据块分组方法主要从分配粒度方面进行考虑,主要设计了组调度。组调度主要是指数据块分配时以组为单位,而不是以单个数据块为单位。其主要过程为,在创建任务时,通过指定任务中数据块绑定的大小,决定数据块的调度粒度,在调度时,一组中的数据块一定会被调度到同一加速单元上。数据块的组调度主要被用于当某一运算的数据量过大,超过了加速单元的本地存储,必须被切分成多个较小的数据块的情况下。
请参阅图3,螺旋数据流调度方式主要针对二维数据和数据处理顺序,它首先将二维数据分割成若干数据块,并通过外部接口设置螺旋调度中心数据块,然后***将从中心点开始以螺旋方式依次将数据块加载到各个加速核上执行。该调度方式适用于图像追踪和识别等复杂图像算法。
请参阅图11,数据块螺旋调度顺序调整主要针对整体的调度顺序和数据维度特性,首先若选择螺旋调度,用户必须调用接口设置螺旋调度的起始块,然后从起始块开始按照螺旋的顺序依次从临时调度队列中取出数据块,然后再将其***相应的调度队列中,具体的调整步骤为:
(1)根据用户设置的起始调度块的信息,计算起始调度块的索引号,同时标识该块已经被访问,并记录前一个数据块访问索引为当前索引号;
(2)根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
(3)判断临时数据块队列中的数据块是否处理完成,未处理完成跳转(4);否则结束调整;
(4)根据螺旋数据块的移动规律,首先螺旋向右或向左移动,判断数据块移动次数,若为奇数次移动则向右移动,跳转至(5);若为偶数次移动则向左移动,跳转至(10);
(5)根据前一个数据块访问索引,计算当前的数据块索引为前一个索引加1;
(6)判断索引号是否超过数据块总个数,若超过结束向右调整,跳转至(17);否则跳转至(7);
(7)判断该索引的数据块是否被访问,若访问过则跳转至(8);否则跳转至(9);
(8)前一个数据块访问索引号加1,跳转至(16);
(9)前一个数据块访问索引号为当前索引号,跳转至(15);
(10)根据前一个数据块访问索引,计算当前的数据块索引为前一个索引减1;
(11)判断索引号是否小于零,若小于结束向左调整,跳转至(17);否则跳转至(12);
(12)判断该索引数据块是否被访问,若访问过则跳转至(13);否则跳转至(14);
(13)前一个数据块访问索引号减1,跳转至(16);
(14)前一个数据块访问索引号为当前索引号;
(15)根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
(16)判断当前数据块向右或向左是否移动完成,完成跳转至(17);否则跳转至(4);
(17)根据螺旋数据块的移动规律,螺旋开始向下或向上移动,判断数据块移动次数,若为奇数次移动则向下移动,跳转至(18);若为偶数次移动则向上移动,跳转至(23);
(18)根据前一个数据块访问索引,计算当前的数据块索引为前一个索引号加上每行的数据块个数;
(19)判断当前索引号是否超过数据块总个数,若超过结束向下调整,跳转至(29);否则跳转至(20);
(20)判断该索引数据块是否被访问,若访问过则跳转至(21);否则跳转至(22);
(21)前一个数据块访问索引号更新为加上每行的数据块个数,跳转至(29);
(22)前一个数据块访问索引号为当前索引号,跳转至(28);
(23)根据前一个数据块访问索引,计算当前的数据块索引为前一个索引号减去每行的数据块个数;
(24)判断当前索引号是否小于零,若超过结束向下调整,跳转至(29);否则跳转至(25);
(25)判断该索引的数据块是否被访问,若访问过则跳转至(26);否则跳转至(27);
(26)前一个数据块访问索引号更新为减轻每行的数据块个数,跳转至(29);
(27)前一个数据块访问索引号为当前索引号;
(28)根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
(29)判断当前数据块向下或向上是否移动完成,完成跳转至(3);否则跳转至(17)。
两种数据块多核分配方法主要从负载均衡方面进行考虑,设计了循环调度和负载均衡调度策略将选定的数据块加载多个计算核中进行处理。
请参阅图4,循环调度主要是指数据块以循环的方式均匀地分配到所有参与计算的加速核上。其主要过程为,在数据分割完成后,均匀地将数据块添加至各个加速核队列;在调度时,依次从加速核队列中取出并分配至加速核处理。这种静态分配的方式可以控制在某一个加速核上前后数据的相关性,但并不能起到良好的负载自适应均衡效率。
请参阅图12,数据块循环调度主要从数据块前后处理的相关性进行考虑,利用静态分配完成数据块调度,主要使用了每个核的加速核调度队列,即提前将调度的数据块按组分配至加速核调度队列中,分配至循环从队列中取出并将其传送给加速核处理,具体的调整步骤为:
(1)初始化当前任务的核号;
(2)判断任务的核号是否大于分配的核数,若大于结束调度;否则跳转至(3);
(3)判断当前加速核调度队列是否为空,若为空跳转至(6);否则跳转至(4);
(4)判断当前加速核处理个数是否超过6个,若为超过跳转至(5);否则跳转至(6);
(5)将当前数据块分配至当前核进行处理;
(6)结束当前核调度,将当前任务的核号加1,跳转至(2)。
请参阅图5,负载均衡调度是指***根据当前加速核的负载情况,将队列中的数据块分配给最空闲的加速核,使得所有的加速核尽可能获得平衡的计算负载。其主要过程为,在数据分割完成后,按序将数据块调度至同一个调度队列;在调度时,从调度队列中取出数据块,然后计算当核的负载,若负载较重跳过当前核,若负载较轻分配至加速核进行处理。目前负载均衡指标主要根据当前请求包队列的处理情况而定,即当请求包队列上的处理数据块请求的个数超过6块时,当前加速核负载较大,否则视为负载较重。
请参阅图13,数据块负载均衡调度主要从负载均衡角度进行考虑,主要利用全局的数据块调度队列统一完成数据块分配,即实时判断当前核的负载,若负载较重分配跳过当前核,否则直接分配给当前核,具体的调整步骤为:
(1)初始化当前任务的访问核数为0,已处理的数据块个数为0;
(2)判断当前任务的绑定个数是否等于1,若等于跳转至(3);否则跳转至(10);
(3)判断当前全局调度队列是否为空,若为空结束调度;否则跳转至(4);
(4)判断当前访问核数是否超过任务分配的核数,若超过跳转至(5);否则跳转至(7);
(5)判断当前压入数据块个数是否为0,若为零表示所有核负载较重,结束本次数据块调度;否则跳转至(6);
(6)将访问核数和当前已处理的数据块个数置零;
(7)判断当前加速核处理个数是否超过6个,若为超过表示负载较重,跳转至(8);否则跳转至(9);
(8)将当前数据块分配至当前核处理,统计当前已处理的数据块个数;
(9)计算下一个核的核号,统计当前访问的核数,跳转至(3);
(10)判断当前全局调度队列是否为空,若为空结束调度;否则跳转至(11);
(11)判断当前访问核数是否超过任务分配的核数,若超过跳转至(12);否则跳转至(14);
(12)判断当前压入数据块个数是否为0,若为零表示所有核负载较重,结束本次数据块调度;否则跳转至(13);
(13)将访问核数和当前压入的数据块个数置零;
(14)判断当前组的数据块调度是否完成,若未完成跳转至(15);若已完成跳转至(19);
(15)从当前组调度队列中取出未调度的数据块;
(16)判断当前核负载是否较重,若当前核处理个数超过6个,则当前核负载较重,跳转至(18);否则跳转至(17);
(17)将当前数据块分配至当前核处理;
(18)将当前数据块加入至当前核的组调度队列中,记录当前组调度个数;
(19)判断当前核负载是否较重,若当前核处理个数超过6个,则当前核负载较重,跳转至(20);否则跳转至(21);
(20)将数据块加入至当前核的组调度队列中,统计当前组调度个数;
(21)直接将数据块分配给当前核处理,统计已处理的数据块个数和组调度个数;
(22)判断当前处理的组调度个数是否大于绑定大小,若大于跳转至(23);否则跳转至(10);
(23)统计已访问的访问核数,并计算下一个和的核号,同时将组调度个数置零,跳转至(10)。
在以上的六种调度模式的基础上,***还设计了灵活的组合方式,可形成一共14种数据调度方式,大大扩展了***的应用范围,其具体组合方式为:
一种数据块选择方式(可选)+一种数据块分配方式(必选)+一种数据块分组方式(可选)
由上述组合可知,***在设置数据块调度方式时,必须设置一种数据块分配方式,可以不设置数据块选择方式和数据块分组方式,***默认的数据块选择方式为间隔式顺序,默认的数据块分组方式为1。
在设计调度模式和组合方式后,***还为用户设计简单的使用方式,具体的使用方法为:在创建任务时设置数据的调度组合方式和数据块分组粒度。***则根据设置的调度方式和分组粒度,按要求完成数据块的调度。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (9)
1.一种在多核DSP下的海量数据流多模态调度方法,其特征在于,包括主控核和加速核,所述主控核和加速核之间通过请求包队列传输请求,基于数据维度和数据优先顺序,确定连续选择、随机选择和螺旋选择三种数据块选择方法,根据负载均衡确定数据库循环调度和数据库负载均衡调度两种数据块多核分配方法,对通过数据块分组方法根据分配粒度选定的数据块加载多个计算核中进行处理。
2.根据权利要求1所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,在多核DSP下的海量数据流多模态调度方法主要在主控核实现,具体流程如下:
S101、用户根据需求设置数据块的调度组合方式和分配粒度;
S102、用户在分割数据块时,根据调度方式将数据块分配至不同的队列;
S103、当数据块分割完成后,若***设置了数据块选择方式,则根据选择的调度方式调整数据块的顺序,并根据不同的数据块分配方式加入相应的调度队列中;
S104、在数据块开始调度后,根据不同的数据块分配和分组方式,从不同的调度队列中取出数据块并分配至加速核处理。
3.根据权利要求2所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,所述数据块连续选择方法为数据块连续调度顺序调整主要针对每个核上处理的数据块顺序,即每个核的数据块号是连续的,具体的调整步骤为:
S201、按照任务设定的数据块分组大小,计算数据块的组数,判断数据块分组是否合理;
S202、计算每个核均匀分配的数据块个数和剩余数据块个数;
S203、判断数据块的绑定个数是否大于1,若小于1跳转至S205;
S204、根据绑定大小,修正每个核均匀分配的数据块个数和剩余数据块个数;
S205、判断临时数据块队列中是否还有剩余的数据块,若有跳转至S206;否则结束调整;
S206、从临时数据块队列中取出数据块;
S207、判断数据块的分配类型,若为循环分配类型,调整至S208;若为负载均衡分配类型调整至S213;
S208、判断剩余的数据块个数是否大于零,且当前数据块个数是否等于每个核均匀分配的数据块个数加上绑定大小,若满足,则跳转至S209;
S209、当前核数据块分配完毕,将核号修改为下一个核号,修改剩余数据块的大小,同时将当前数据个数块置零;
S210、判断剩余的数据块个数是否小于等于0,且当前数据块个数是否等于每个核均匀分配的数据块个数,若满足,则跳转至S211;
S211、当前核数据块分配完毕,将核号修改为下一个核号,同时将当前数据块个数置为零;
S212、将数据块添加至当前核的加速核调度队列,并增加当前数据块个数,跳转至S205;
S213、将数据块直接添加至全局的数据块调度队列,跳转至S205。
4.根据权利要求2所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,所述数据块随机选择方法为数据块随机调度顺序调整主要针对整体的调度顺序,首先按照随机的顺序从临时调度队列中取出数据块,然后再将其***相应的调度队列中,具体的调整步骤为:
S301、按照任务设定的数据块分组大小,计算数据块的组数,判断数据块分组是否合理
S302、设置随机阈值,计算每个核均匀分配的数据块个数和剩余数据块个数;
S303、判断数据块的绑定个数是否大于1,若大于1调整至S304;
S304、根据绑定大小,重新设置随机阈值,计算每个核均匀分配的绑定个数和剩余绑定个数;
S305、判断临时数据块队列中是否还有剩余的数据块,若由调整至S306;否则结束调整
S306、根据随机阈值,获取一个随机的数据块索引;
S307、判断当前绑定个数是否大于1,若大于则跳转至S308;否则跳转至S317;
S308、根据绑定大小计算当前的数据块的索引号,从临时数据块队列中取出所有的绑定数据块;
S309、判断数据块的分配类型,若为循环分配类型,调整至S310;若为负载均衡分配类型调整至S315;
S310、判断剩余的绑定个数是否大于零,且当前绑定个数是否等于每个核均匀分配的绑定个数加上1,若满足,则跳转至S311;
S311、当前核数据块分配完毕,将核号修改为下一个核号,修改剩余绑定大小,同时将当前绑定个数块置零;
S312、判断当前绑定个数是否小于等于0,且当前绑定个数是否等于每个核均匀分配的绑定个数,若满足,则跳转至S311;
S313、当前核数据块分配完毕,将核号修改为下一个核号,同时将当前绑定个数置为零;
S314、将数据块添加至当前核的加速核调度队列,跳转至S316;
S315、将数据块直接添加至全局的数据块调度队列;
S316、从临时队列中删除所有绑定的数据块,修改随机阈值,跳转至S305;
S317、直接从临时队列中取出数据块;
S318、判断数据块的分配类型,若为循环分配类型,调整至S319、;若为负载均衡分配类型调整至S323;
S319、判断剩余的数据块个数是否大于零,且当前数据块个数是否等于每个核均匀分配的数据块个数加上1,若满足,则跳转至S320;
S320、当前核数据块分配完毕,将核号修改为下一个核号,修改剩余数据块的大小,同时将当前数据个数块置零;
S321、判断当前数据块个数是否小于等于0,且当前数据块个数是否等于每个核均匀分配的数据块个数,若满足,则跳转至S322;
S322、当前核数据块分配完毕,将核号修改为下一个核号,同时将当前数据块个数置为零;
S323、将数据块添加至当前核的加速核调度队列,并增加当前数据块个数;
S324、将数据块直接添加至全局的数据块调度队列;
S325、从临时数据块队列中删除数据块,修改随机阈值,跳转至S305。
5.根据权利要求3或4所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,所述数据块分组方法具体为:从分配粒度方面设计了组调度,所述组调度数据块分配时以组为单位,其主要过程为:在创建任务时,通过指定任务中数据块绑定的大小,决定数据块的调度粒度,在调度时,一组中的数据块一定会被调度到同一加速单元上,数据块的组调度主要被用于当某一运算的数据量过大,超过了加速单元的本地存储,必须被切分成多个较小的数据块的情况下。
6.根据权利要求2所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,所述数据块螺旋选择方法为数据块螺旋调度顺序调整主要针对整体的调度顺序和数据维度特性,首先若选择螺旋调度,用户必须调用接口设置螺旋调度的起始块,然后从起始块开始按照螺旋的顺序依次从临时调度队列中取出数据块,然后再将其***相应的调度队列中,具体的调整步骤为:
S401、根据用户设置的起始调度块的信息,计算起始调度块的索引号,同时标识该块已经被访问,并记录前一个数据块访问索引为当前索引号;
S402、根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
S403、判断临时数据块队列中的数据块是否处理完成,未处理完成跳转S404;否则结束调整;
S404、根据螺旋数据块的移动规律,首先螺旋向右或向左移动,判断数据块移动次数,若为奇数次移动则向右移动,跳转至S405,若为偶数次移动则向左移动,跳转至S410;
S405、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引加1;
S406、判断索引号是否超过数据块总个数,若超过结束向右调整,跳转至S417,否则跳转至S407;
S407、判断该索引的数据块是否被访问,若访问过则跳转至S408;否则跳转至S409;
S408、前一个数据块访问索引号加1,跳转至S416;
S409、前一个数据块访问索引号为当前索引号,跳转至S415;
S410、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引减1;
S411、判断索引号是否小于零,若小于结束向左调整,跳转至S417;否则跳转至S412;
S412、判断该索引数据块是否被访问,若访问过则跳转至S413;否则跳转至S414;
S413、前一个数据块访问索引号减1,跳转至S416;
S414、前一个数据块访问索引号为当前索引号;
S415、根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
S416、判断当前数据块向右或向左是否移动完成,完成跳转至S417,否则跳转至S404;
S417、根据螺旋数据块的移动规律,螺旋开始向下或向上移动,判断数据块移动次数,若为奇数次移动则向下移动,跳转至S418,若为偶数次移动则向上移动,跳转至S423;
S418、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引号加上每行的数据块个数;
S419、判断当前索引号是否超过数据块总个数,若超过结束向下调整,跳转至S429,否则跳转至S420;
S420、判断该索引数据块是否被访问,若访问过则跳转至S421;否则跳转至S422;
S421、前一个数据块访问索引号更新为加上每行的数据块个数,跳转至S429;
S422、前一个数据块访问索引号为当前索引号,跳转至S428;
S423、根据前一个数据块访问索引,计算当前的数据块索引为前一个索引号减去每行的数据块个数;
S424、判断当前索引号是否小于零,若超过结束向下调整,跳转至S429;否则跳转至S425;
S425、判断该索引的数据块是否被访问,若访问过则跳转至S426;否则跳转至S427;
S426、前一个数据块访问索引号更新为减轻每行的数据块个数,跳转至S429;
S427、前一个数据块访问索引号为当前索引号;
S428、根据索引从临时数据块队列中取出数据块,并根据数据块分配类型,将其加入相应的调度队列中;
S429、判断当前数据块向下或向上是否移动完成,完成跳转至S403;否则跳转至S417。
7.根据权利要求1所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,所述数据库循环调度方法主要从数据块前后处理的相关性进行考虑,利用静态分配完成数据块调度,主要使用了每个核的加速核调度队列,即提前将调度的数据块按组分配至加速核调度队列中,分配至循环从队列中取出并将其传送给加速核处理,具体的调整步骤为:
S501、初始化当前任务的核号;
S502、判断任务的核号是否大于分配的核数,若大于结束调度,否则跳转至S503;
S503、判断当前加速核调度队列是否为空,若为空跳转至S506,否则跳转至S504;
S504、判断当前加速核处理个数是否超过六个,若为超过跳转至S505,否则跳转至S506;
S505、将当前数据块分配至当前核进行处理;
S506、结束当前核调度,将当前任务的核号加1,跳转至S502。
8.根据权利要求1所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,所述数据库负载均衡调度方法从负载均衡角度进行考虑,利用全局的数据块调度队列统一完成数据块分配,即实时判断当前核的负载,若负载较重分配跳过当前核,否则直接分配给当前核,具体的调整步骤为:
S601、初始化当前任务的访问核数为0,已处理的数据块个数为0;
S602、判断当前任务的绑定个数是否等于1,若等于跳转至S603,否则跳转至S610;
S603、判断当前全局调度队列是否为空,若为空结束调度;否则跳转至S604;
S604、判断当前访问核数是否超过任务分配的核数,若超过跳转至S605;否则跳转至S607;
S605、判断当前压入数据块个数是否为0,若为零表示所有核负载较重,结束本次数据块调度,否则跳转至S606;
S606、将访问核数和当前已处理的数据块个数置零;
S607、判断当前加速核处理个数是否超过六个,若为超过表示负载较重,跳转至S608;否则跳转至S609;
S608、将当前数据块分配至当前核处理,统计当前已处理的数据块个数;
S609、计算下一个核的核号,统计当前访问的核数,跳转至S603;
S610、判断当前全局调度队列是否为空,若为空结束调度;否则跳转至S611;
S611、判断当前访问核数是否超过任务分配的核数,若超过跳转至S612;否则跳转至S614;
S612、判断当前压入数据块个数是否为0,若为零表示所有核负载较重,结束本次数据块调度;否则跳转至S613;
S613、将访问核数和当前压入的数据块个数置零;
S614、判断当前组的数据块调度是否完成,若未完成跳转至S615;若已完成跳转至S619;
S615、从当前组调度队列中取出未调度的数据块;
S616、判断当前核负载是否较重,若当前核处理个数超过六个,则当前核负载较重,跳转至S618,否则跳转至S617;
S617、将当前数据块分配至当前核处理;
S618、将当前数据块加入至当前核的组调度队列中,记录当前组调度个数;
S619、判断当前核负载是否较重,若当前核处理个数超过六个,则当前核负载较重,跳转至S620,否则跳转至S621;
S620、将数据块加入至当前核的组调度队列中,统计当前组调度个数;
S621、直接将数据块分配给当前核处理,统计已处理的数据块个数和组调度个数;
S622、判断当前处理的组调度个数是否大于绑定大小,若大于跳转至S623,否则跳转至S610;
S623、统计已访问的访问核数,并计算下一个和的核号,同时将组调度个数置零,跳转至S610。
9.根据权利要求1所述的一种在多核DSP下的海量数据流多模态调度方法,其特征在于,六种方法的组合方式为:可选一种所述数据块选择方法、必选一种所述数据块多核分配方法和可选一种所述数据块分组方法,***默认的数据块选择方式为间隔式顺序,默认的数据块分组方式为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509588.7A CN107608784B (zh) | 2017-06-28 | 2017-06-28 | 一种在多核dsp下的海量数据流多模态调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509588.7A CN107608784B (zh) | 2017-06-28 | 2017-06-28 | 一种在多核dsp下的海量数据流多模态调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107608784A true CN107608784A (zh) | 2018-01-19 |
CN107608784B CN107608784B (zh) | 2020-06-09 |
Family
ID=61059676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710509588.7A Active CN107608784B (zh) | 2017-06-28 | 2017-06-28 | 一种在多核dsp下的海量数据流多模态调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608784B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388609A (zh) * | 2018-09-30 | 2019-02-26 | 中科驭数(北京)科技有限公司 | 基于加速核的数据处理方法和装置 |
CN112666588A (zh) * | 2020-11-06 | 2021-04-16 | 南京航空航天大学 | 一种城市峡谷环境下基于景象匹配与机器学习的定位方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101466041A (zh) * | 2009-01-16 | 2009-06-24 | 清华大学 | 一种用于多核处理器的多视点视频编码的任务调度方法 |
CN103377032A (zh) * | 2012-04-11 | 2013-10-30 | 浙江大学 | 一种基于异构多核芯片的细粒度科学计算并行处理装置 |
CN103412790A (zh) * | 2013-08-07 | 2013-11-27 | 南京师范大学 | 移动安全中间件的多核并发调度方法与*** |
CN105045658A (zh) * | 2015-07-02 | 2015-11-11 | 西安电子科技大学 | 一种利用多核嵌入式dsp实现动态任务调度分发的方法 |
CN105320568A (zh) * | 2014-05-27 | 2016-02-10 | 三星电子株式会社 | 用于任务组迁移的方法和支持该方法的电子设备 |
CN105378651A (zh) * | 2013-05-24 | 2016-03-02 | 相干逻辑公司 | 具有可编程优化的存储器-网络处理器 |
CN105900063A (zh) * | 2014-06-26 | 2016-08-24 | 郑基雄 | 多处理环境中的调度方法和装置 |
US9639403B2 (en) * | 2013-03-15 | 2017-05-02 | Genband Us Llc | Receive-side scaling in a computer system using sub-queues assigned to processing cores |
-
2017
- 2017-06-28 CN CN201710509588.7A patent/CN107608784B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101466041A (zh) * | 2009-01-16 | 2009-06-24 | 清华大学 | 一种用于多核处理器的多视点视频编码的任务调度方法 |
CN103377032A (zh) * | 2012-04-11 | 2013-10-30 | 浙江大学 | 一种基于异构多核芯片的细粒度科学计算并行处理装置 |
US9639403B2 (en) * | 2013-03-15 | 2017-05-02 | Genband Us Llc | Receive-side scaling in a computer system using sub-queues assigned to processing cores |
CN105378651A (zh) * | 2013-05-24 | 2016-03-02 | 相干逻辑公司 | 具有可编程优化的存储器-网络处理器 |
CN103412790A (zh) * | 2013-08-07 | 2013-11-27 | 南京师范大学 | 移动安全中间件的多核并发调度方法与*** |
CN105320568A (zh) * | 2014-05-27 | 2016-02-10 | 三星电子株式会社 | 用于任务组迁移的方法和支持该方法的电子设备 |
CN105900063A (zh) * | 2014-06-26 | 2016-08-24 | 郑基雄 | 多处理环境中的调度方法和装置 |
CN105045658A (zh) * | 2015-07-02 | 2015-11-11 | 西安电子科技大学 | 一种利用多核嵌入式dsp实现动态任务调度分发的方法 |
Non-Patent Citations (5)
Title |
---|
DHIRAJ D.KALAMKAR,JOSHUA D.TRZASKO,SRINIVAS SRIDHARAN: "High Performance Non-uniform FFT on Modern x86-based Multi-core Systems", 《2012 IEEE 26TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM》 * |
刘胜飞,张云泉,孙相征: "一种改进的OpenMP指导调度策略研究", 《计算机研究与发展》 * |
吕鹏伟,刘从新,沈绪榜: "一种面向嵌入式多核***的任务调度方法", 《微电子学与计算机》 * |
康鹏,刘从新,沈绪榜: "一种基于分组的多核嵌入式实时调度算法", 《微电子学与计算机》 * |
杨瑞婕: "嵌入式多核DSP并行编程模型的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388609A (zh) * | 2018-09-30 | 2019-02-26 | 中科驭数(北京)科技有限公司 | 基于加速核的数据处理方法和装置 |
CN112666588A (zh) * | 2020-11-06 | 2021-04-16 | 南京航空航天大学 | 一种城市峡谷环境下基于景象匹配与机器学习的定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107608784B (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102939596B (zh) | 用于多核处理器的多线程应用识别存储器调度方案 | |
CN102859492B (zh) | 调度图形处理单元gpu命令的分派的方法、设备及调度器 | |
TWI510919B (zh) | 分配不同特性的記憶體給共享資料物件的系統及方法 | |
CN103124957B (zh) | 用于处理单元的动态资源分配的方法和设备 | |
CN102099789B (zh) | 多处理器的多维线程分组 | |
JP5149311B2 (ja) | オン−デマンド・マルチ−スレッド・マルチメディア・プロセッサ | |
US9361416B2 (en) | Dynamic reconfiguration of programmable hardware | |
CN103999051A (zh) | 用于着色器核心中着色器资源分配的策略 | |
CN105260237B (zh) | 异构多核平台的任务调度***及其调度方法 | |
CN102870096A (zh) | 子缓冲器对象 | |
CN1036877C (zh) | 一条多处理器流水线的动态工作量平衡 | |
CN105389772B (zh) | 基于图形处理器的数据处理方法和装置 | |
CN102822798A (zh) | 用于虚拟容器***内的资源容量评估的方法和装置 | |
CN105378667A (zh) | 一种虚拟机资源的调度方法和装置 | |
CN103324780A (zh) | 颗粒流动仿真***和方法 | |
CN103080903A (zh) | 调度器、多核处理器***以及调度方法 | |
CN107608784A (zh) | 一种在多核dsp下的海量数据流多模态调度方法 | |
CN108509270A (zh) | 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法 | |
CN104050710A (zh) | 用隐式几何体进行3d图形渲染 | |
CN109388486B (zh) | 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法 | |
CN109564528A (zh) | 分布式计算中计算资源分配的***和方法 | |
CN107077390A (zh) | 一种任务处理方法以及网卡 | |
CN113449861A (zh) | 使用部分梯度更新的推测性训练 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN104881322A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |