CN117130760B - 一种芯粒智能选择调度方法及系统 - Google Patents
一种芯粒智能选择调度方法及系统 Download PDFInfo
- Publication number
- CN117130760B CN117130760B CN202311377935.7A CN202311377935A CN117130760B CN 117130760 B CN117130760 B CN 117130760B CN 202311377935 A CN202311377935 A CN 202311377935A CN 117130760 B CN117130760 B CN 117130760B
- Authority
- CN
- China
- Prior art keywords
- core
- subtasks
- core particle
- task
- subtask
- 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
- 239000007771 core particle Substances 0.000 title claims abstract description 128
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 45
- 238000009826 distribution Methods 0.000 claims abstract description 21
- 238000004458 analytical method Methods 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims description 77
- 230000006870 function Effects 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 30
- 238000007667 floating Methods 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 14
- 239000013598 vector Substances 0.000 claims description 14
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000005265 energy consumption Methods 0.000 claims description 8
- 230000003068 static effect Effects 0.000 claims description 8
- 239000008188 pellet Substances 0.000 claims 1
- 238000013461 design Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 210000002230 centromere Anatomy 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004148 unit process Methods 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/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
-
- 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
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种芯粒智能选择调度方法及系统,涉及芯粒调度技术领域,包括步骤:S1:接收待处理的计算任务;S2:任务解析模块对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务;S3:芯粒选择与调度模块,将子任务分配至芯粒库中的芯粒,包括计算子任务在每个芯粒上的适应度函数:选择适应度函数值最大且大于设定阈值的芯粒;将子任务分配给芯粒,更新芯粒的状态,如果达到预定的迭代次数或子任务已分配完成,则迭代停止;S4:若有未完成分配的子任务则由CPU处理。本申请计算子任务在每个芯粒上的适应度函数,并加入亲和性的计算增强了任务与芯粒的高效匹配,实现了芯粒计算资源的高效利用,增强了计算效率。
Description
技术领域
本发明涉及芯粒调度技术领域,具体涉及一种芯粒智能选择调度方法及系统。
背景技术
随着半导体技术的发展,芯片的晶体管密度持续增加,带来了强大的计算能力。但随之而来的是功耗、热和通信开销等问题,这些问题在高性能计算、云计算和边缘计算领域变得尤为突出。为了克服这些挑战,芯粒技术作为一种新的设计范式应运而生。芯粒(Chiplet)设计思想的出现,意味着不再追求单一大型芯片的设计,而是将多个功能模块化的小型芯片组合在一个封装内,通过高速互连技术进行通信,实现芯片的功能。这种方法提供了更大的设计灵活性,可以更容易地进行技术升级,同时还可以实现更高的性能和能效。
在传统的芯片设计中,所有的功能单元,如CPU、GPU、内存和I/O等,都被集成到一个单一的硅片上。但随着工艺技术的进步,单一芯片的面积和功耗都在增加,这给芯片的散热、功耗管理和性能优化带来了巨大的挑战。
与此同时,不同的计算任务具有不同的计算和通信需求。例如,图形处理任务可能更依赖于浮点运算和数据吞吐量,而数据分析任务可能更依赖于内存带宽和低延迟。传统的“一刀切”芯片设计方法很难满足这些多样化的需求。为了解决这些问题,研究人员开始探索新的芯片设计方法。芯粒技术的提出,使得设计者可以根据任务的特性和需求,选择合适的芯粒进行组合,从而实现更高的性能和能效。这种设计方法不仅可以满足不同任务的需求,还可以降低设计和制造的复杂性。
但是,如何有效地将任务分配给不同的芯粒,实现任务的高质量完成,以及考虑芯粒与任务的相关性,例如GPU处理并行算法或图像处理具有较强优势,如何实现任务与芯粒的相关性结合实现最大成效还未较好的解决方案,以及如何在芯粒之间进行高效的通信,仍然是一个尚未解决的问题。传统的任务调度方法很难满足芯粒技术的特性和需求,因此,需要开发新的任务调度和优化方法,以实现芯粒技术的最大潜力。综上所述,芯粒技术为芯片设计带来了新的机会和挑战。如何有效地利用芯粒技术,以实现更高的性能和能效,是当前研究的重要方向。
发明内容
针对现有技术中提到的上述问题,为解决上述技术问题,本发明提供了一种芯粒智能选择调度方法及系统,该方法通过对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务,对于每个子任务,计算子任务/>在每个芯粒/>上的适应度函数,选择适应度函数值最大且大于设定阈值的芯粒/>,以此迭代,实现了芯粒的高效利用,其中,/>为子任务/>与芯粒/>之间的亲和性,亲和性的计算大大增强了任务与芯粒的高效匹配,实现了芯粒计算资源的高效利用,大大增强了计算效率。
一种芯粒智能选择调度方法,包括步骤:
S1:CPU接收待处理的计算任务;
S2:任务解析模块对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务;
S3:芯粒选择与调度模块,将子任务分配至芯粒库中的芯粒,协同CPU处理任务;具体包括:
S31:初始化,开始时所有子任务都没有分配;
S32:迭代,对于每个子任务 ,计算子任务/>在每个芯粒/>上的适应度函数:
;
其中,为第/>个子任务,/>为第i个芯粒,/>为子任务/>在芯粒/>上的性能,/>为子任务/>在芯粒/>上的功耗,/>为子任务/>在芯粒/>上的通信开销,/>、/>、/>分别是性能、功耗和通信开销对应的权重;
为子任务/>与芯粒/>之间的亲和性,值在[0,1]之间;具体计算如下:
;
其中,表示向量点积,/>表示向量的欧几里得范数;,/>,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,/>表示任务需要处理的数据大小,/>表示随机访问或顺序访问,/>表示任务之间的数据交换量,/>表示芯粒/>归一化每秒浮点运算次数,/>表示芯粒的内存容量,/>表示芯粒的内存访问速度,/>表示芯粒的最大通信带宽;
S33:选择适应度函数值最大且大于设定阈值的芯粒;
S34:将子任务分配给芯粒/>;
S35:更新芯粒的状态,并标记剩余可用性能、功耗和通信开销;
S36:如果达到预定的迭代次数或子任务已分配完成,则迭代停止;
S4:若有未完成分配的子任务则由CPU处理。
优选地,所述将子任务分配至芯粒库中的芯粒协同CPU处理任务,芯粒库包括处理芯粒、内存芯粒、I/O芯粒、AI加速芯粒、安全芯粒、模拟/射频芯粒、专用硬件加速芯粒中的一种或多种。
优选地,所述根据数据的结构或分布将任务划分为多个子任务,具体的包括对于大型矩阵运算,可以将矩阵分割成多个小块,并分别在不同的计算单元上进行处理;如果一个任务可以并行处理多个独立的子任务,那么可以将这些子任务分配给多个计算单元。
优选地,在步骤S35中更新芯粒的状态,并标记剩余可用性能、功耗和通信开销,剩余可用性能为芯粒原始的性能减去已分配的子任务的性能需求;芯粒的剩余功耗为芯粒的最大功耗减去已分配的子任务的预计功耗,芯粒的剩余通信开销为芯粒的最大通信带宽减去已分配的子任务产生的通信开销。
优选地,所述计算子任务在每个芯粒/>上的适应度函数/>,子任务在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;为每个操作的平均能耗;/>是子任务/>访问的字节数,是每次从内存中读取或写入数据消耗的能量;
;
其中,是子任务/>需要交换的数据量,/>是芯粒/>的通信带宽。
本申请还提供一种芯粒智能选择调度系统,包括:
中央处理器接收任务模块,CPU接收待处理的计算任务;
任务解析模块,通过对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务;
芯粒选择与调度模块,将子任务分配至芯粒库中的芯粒协同CPU处理任务;
初始化模块,开始时所有子任务都没有分配;
迭代模块,对于每个子任务 ,计算子任务/>在每个芯粒/>上的适应度函数:
;
其中,为第/>个子任务,/>为第i个芯粒,/>为子任务/>在芯粒/>上的性能,/>为子任务/>在芯粒/>上的功耗,/>为子任务/>在芯粒/>上的通信开销,/>、/>、/>分别是性能、功耗和通信开销对应的权重;
为子任务/>与芯粒/>之间的亲和性,值在[0,1]之间;具体计算如下:
;
其中,表示向量点积,/>表示向量的欧几里得范数;/>,,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,/>表示任务需要处理的数据大小,/>表示随机访问或顺序访问,/>表示任务之间的数据交换量,/>表示芯粒/>归一化每秒浮点运算次数,/>表示芯粒的内存容量,表示芯粒的内存访问速度,/>表示芯粒的最大通信带宽;
选择模块,选择适应度函数值最大且大于设定阈值的芯粒;
子任务分配模块,将子任务分配给芯粒/>;
更新模块,更新芯粒的状态,并标记剩余可用性能、功耗和通信开销;
停止判断模块,如果达到预定的迭代次数或子任务已分配完成,则迭代停止;
CPU处理判断模块,若有未完成分配的子任务则由CPU处理。
优选地,所述将子任务分配至芯粒库中的芯粒协同CPU处理任务,芯粒库包括处理芯粒、内存芯粒、I/O芯粒、AI加速芯粒、安全芯粒、模拟/射频芯粒、专用硬件加速芯粒中的一种或多种。
优选地,所述根据数据的结构或分布将任务划分为多个子任务,具体的包括对于大型矩阵运算,可以将矩阵分割成多个小块,并分别在不同的计算单元上进行处理;如果一个任务可以并行处理多个独立的子任务,那么可以将这些子任务分配给多个计算单元。
优选地,在步骤S35中更新芯粒的状态,并标记剩余可用性能、功耗和通信开销,剩余可用性能为芯粒原始的性能减去已分配的子任务的性能需求;芯粒的剩余功耗为芯粒的最大功耗减去已分配的子任务的预计功耗,芯粒的剩余通信开销为芯粒的最大通信带宽减去已分配的子任务产生的通信开销。
优选地,所述计算子任务在每个芯粒/>上的适应度函数/>,子任务在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;为每个操作的平均能耗;/>是子任务/>访问的字节数,是每次从内存中读取或写入数据消耗的能量;
;
其中,是子任务/>需要交换的数据量,/>是芯粒/>的通信带宽。
本发明提供了一种芯粒智能选择调度方法及系统,所能实现的有益技术效果如下:
1、本申请通过该方法通过对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务,对于每个子任务,计算子任务/>在每个芯粒/>上的适应度函数,选择适应度函数值最大且大于设定阈值的芯粒/>,以此迭代,实现了芯粒的高效利用,其中,/>为子任务/>与芯粒/>之间的亲和性,亲和性的计算大大增强了任务与芯粒的高效匹配,实现了芯粒计算资源的高效利用,大大增强了计算效率,同时,根据子任务/>在芯粒/>上的性能、功耗和通信开销实现了最佳芯粒的选择;
2、本申请通过计算子任务与芯粒/>之间的亲和性/>,大大提升了芯粒的选择效果,通过亲和性的计算,充分考虑到任务的特性以及芯粒的优势,实现了最佳契合性结合,实现功能效果最大化利用实现,此外,亲和性计算采用,/>,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,/>表示任务需要处理的数据大小,/>表示随机访问或顺序访问,/>表示任务之间的数据交换量,/>表示芯粒/>归一化每秒浮点运算次数,表示芯粒的内存容量,/>表示芯粒的内存访问速度,/>表示芯粒的最大通信带宽;实现了多维度数据的参考,能够大大提升亲和性判断的准确度。
3、本发明通过所述计算子任务在每个芯粒/>上的适应度函数/>,子任务/>在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;为每个操作的平均能耗;/>是子任务/>访问的字节数,是每次从内存中读取或写入数据消耗的能量;
;
其中,是子任务/>需要交换的数据量,/>是芯粒/>的通信带宽,在任务计算之前就已经实现了根据任务特点和芯粒特性实现了性能、功耗、通信开销提前预测,大大提升了芯粒任务分配的准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明的一种芯粒智能选择调度方法步骤示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
针对现有技术中提到的上述问题,为解决上述技术问题,如附图1所示:一种芯粒智能选择调度方法,包括步骤:
S1:CPU接收待处理的计算任务;中央调度器:负责任务的分发和管理。它可能有一个任务队列,其中包含所有待处理的任务。工作节点:执行任务的计算单元。这些节点注册到中央调度器并等待任务分配。当工作节点准备好接收新任务时,它会向中央调度器发出请求。
工作节点向中央调度器发送一个任务请求。中央调度器从其任务队列中选取一个任务并发送给请求的工作节点。工作节点接收任务数据,这可能包括:任务执行代码或脚本。输入数据或输入数据的位置(例如,一个文件路径或URL)。任务的执行参数或配置。
S2:任务解析模块对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务;数据驱动的分解:根据数据的结构或分布将任务划分为多个子任务。例如,对于大型矩阵运算,可以将矩阵分割成多个小块,并分别在不同的计算单元上进行处理。
任务并行分解:如果一个任务可以并行处理多个独立的子任务,那么可以将这些子任务分配给多个计算单元。例如,如果有一个图像处理任务,可以为每个图像或图像的部分创建一个子任务。流水线分解:如果任务包含多个阶段或步骤,可以使用流水线并行来执行。每个计算单元处理一个阶段,数据从一个阶段流向下一个阶段。流水线分解:如果处理每个数据点的算法包含多个阶段,例如预处理、计算和后处理,我们可以为每个阶段设置一个计算单元。数据首先进入预处理阶段,然后进入计算阶段,最后进入后处理阶段。
S3:芯粒选择与调度模块,将子任务分配至芯粒库中的芯粒,协同CPU处理任务;具体包括:
S31:初始化,开始时所有子任务都没有分配;
S32:迭代,对于每个子任务 ,计算子任务/>在每个芯粒/>上的适应度函数:
;
其中,为第/>个子任务,/>为第i个芯粒,/>为子任务/>在芯粒/>上的性能,/>为子任务/>在芯粒/>上的功耗,/>为子任务/>在芯粒/>上的通信开销,/>、/>、/>分别是性能、功耗和通信开销对应的权重;
假设我们有一个子任务,它可以在两个芯粒/>和/>上运行,已经评估了子任务在每个芯粒上的性能、功耗和通信开销:
假设我们给性能、功耗和通信分别赋予0.6、0.3和0.1的权重,为1,则我们可以为子任务计算适应度函数:
;
从上面的结果可以看出,子任务在芯粒/>上有最高的适应度值,所以它应该在上执行。
为子任务/>与芯粒/>之间的亲和性,值在[0,1]之间;具体计算如下:
;
其中,表示向量点积,/>表示向量的欧几里得范数;/>,,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,/>表示任务需要处理的数据大小,/>表示随机访问或顺序访问,/>表示任务之间的数据交换量,/>表示芯粒/>归一化每秒浮点运算次数,/>表示芯粒的内存容量,表示芯粒的内存访问速度,/>表示芯粒的最大通信带宽;为了计算任务和芯粒之间的亲和性,我们需要比较这两个向量。向量中相同位置的元素确实具有一定的关系。例如,任务的计算复杂度与芯粒的处理速度有关,任务的数据大小与芯粒的内存大小有关。通信带宽:基于数据交换评估结果,可以估算所需的通信带宽。例如,如果任务在1秒内需要交换1GB的数据,那么至少需要1Gbps的通信带宽。通信带宽需求:每个节点每秒需要交换300MB的数据。数据交换评估:首先,需要确定任务中各个计算单元或节点之间需要交换的数据量。这可以通过以下方式进行:直接计数:直接计算任务中需要发送或接收的数据量。算法分析:基于算法的性质来估算通信数据量。例如,在某些并行算法中,每个计算单元可能需要与其邻居交换边界数据。数据集大小评估:首先,需要知道数据集的原始大小。例如,如果有一个包含1百万个32位浮点数的数据集,那么数据集的大小为:;
S33:选择适应度函数值最大且大于设定阈值的芯粒;
S34:将子任务分配给芯粒/>;
S35:更新芯粒的状态,并标记剩余可用性能、功耗和通信开销;当一个子任务被分配给一个特定的芯粒后,该芯粒的状态需要进行更新,以反映其在完成此子任务后的剩余可用资源。这是为了确保在后续的迭代中,我们不会超分配资源给芯粒,从而导致性能下降、功耗超标或通信开销过大。
S36:如果达到预定的迭代次数或子任务已分配完成,则迭代停止;
S4:若有未完成分配的子任务则由CPU处理。
在一些实施例中,所述将子任务分配至芯粒库中的芯粒协同CPU处理任务,芯粒库包括处理芯粒、内存芯粒、I/O芯粒、AI加速芯粒、安全芯粒、模拟/射频芯粒、专用硬件加速芯粒中的一种或多种。
在一些实施例中,所述根据数据的结构或分布将任务划分为多个子任务,具体的包括对于大型矩阵运算,可以将矩阵分割成多个小块,并分别在不同的计算单元上进行处理;如果一个任务可以并行处理多个独立的子任务,那么可以将这些子任务分配给多个计算单元。
在一些实施例中,在步骤S35中更新芯粒的状态,并标记剩余可用性能、功耗和通信开销,剩余可用性能为芯粒原始的性能减去已分配的子任务的性能需求;芯粒的剩余功耗为芯粒的最大功耗减去已分配的子任务的预计功耗,芯粒的剩余通信开销为芯粒的最大通信带宽减去已分配的子任务产生的通信开销。
在一些实施例中,所述计算子任务在每个芯粒/>上的适应度函数/>,子任务/>在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;为每个操作的平均能耗;/>是子任务/>访问的字节数,是每次从内存中读取或写入数据消耗的能量;
;
其中,是子任务/>需要交换的数据量,/>是芯粒/>的通信带宽。
本申请还提供一种芯粒智能选择调度系统,包括:
中央处理器接收任务模块,CPU接收待处理的计算任务;
任务解析模块,通过对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务;
芯粒选择与调度模块,将子任务分配至芯粒库中的芯粒协同CPU处理任务;当考虑芯粒、CPU和GPU的共存时,它们之间的关系和区别主要体现在以下几个方面:功能性:芯粒(Chiplets): 芯粒通常设计为执行特定的功能或任务,例如AI加速、信号处理、或特定的数学运算。它们可能包含为特定应用场景优化的硬件电路。CPU: 是一个通用的计算单元,设计为执行各种任务,特别是序列化的、需要复杂决策能力的任务。GPU: 主要设计为并行处理图形相关任务,但现在也广泛用于其他并行计算任务,如深度学习。
性能和功耗:芯粒可能为特定任务提供更高的性能效率(性能/功耗比),因为它们为特定任务进行了优化。CPU和GPU可能提供更高的绝对性能,但在功耗效率上可能不如芯粒。通信和互操作性:芯粒与主计算单元(如CPU或GPU)之间可能需要特定的通信和数据交换机制。CPU和GPU之间可能有现成的高带宽、低延迟的通信路径。任务分配策略:任务特性分析: 根据任务的性质(如并行度、计算复杂度、特定功能需求等)分析其对芯粒、CPU或GPU的适应性。例如,高度并行的任务可能更适合GPU;特定功能的任务(如某种信号处理)可能更适合某个芯粒。资源可用性: 考虑当前芯粒、CPU和GPU的占用情况,以及通信和数据依赖关系。性能和功耗目标: 根据系统的性能和功耗目标,决定将任务分配给哪个计算单元。例如,如果功耗是主要关注点,则可能首选功耗效率最高的芯粒;如果性能是关键,则可能优先选择CPU或GPU。动态调整: 根据运行时的性能和功耗数据,动态调整任务分配策略。例如,如果某个芯粒的功耗超出预期,则可以将后续任务重新分配给CPU或GPU。综上所述,任务分配策略应综合考虑任务特性、资源状态和性能功耗目标,以最大化性能和功耗效率。
初始化模块,开始时所有子任务都没有分配;
迭代模块,对于每个子任务,计算子任务/>在每个芯粒/>上的适应度函数:
;
其中,为第/>个子任务,/>为第i个芯粒,/>为子任务/>在芯粒/>上的性能,/>为子任务/>在芯粒/>上的功耗,/>为子任务/>在芯粒/>上的通信开销,/>、/>、/>分别是性能、功耗和通信开销对应的权重;
为子任务/>与芯粒/>之间的亲和性,值在[0,1]之间;具体计算如下:
;
其中,表示向量点积,/>表示向量的欧几里得范数;,/>,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,/>表示任务需要处理的数据大小,/>表示随机访问或顺序访问,/>表示任务之间的数据交换量,/>表示芯粒/>归一化每秒浮点运算次数,/>表示芯粒的内存容量,/>表示芯粒的内存访问速度,/>表示芯粒的最大通信带宽;
选择模块,选择适应度函数值最大且大于设定阈值的芯粒;
子任务分配模块,将子任务分配给芯粒/>;
更新模块,更新芯粒的状态,并标记剩余可用性能、功耗和通信开销;
停止判断模块,如果达到预定的迭代次数或子任务已分配完成,则迭代停止;
CPU处理判断模块,若有未完成分配的子任务则由CPU处理。
在一些实施例中,所述将子任务分配至芯粒库中的芯粒协同CPU处理任务,芯粒库包括处理芯粒、内存芯粒、I/O芯粒、AI加速芯粒、安全芯粒、模拟/射频芯粒、专用硬件加速芯粒中的一种或多种。
在一些实施例中,所述根据数据的结构或分布将任务划分为多个子任务,具体的包括对于大型矩阵运算,可以将矩阵分割成多个小块,并分别在不同的计算单元上进行处理;如果一个任务可以并行处理多个独立的子任务,那么可以将这些子任务分配给多个计算单元。
在一些实施例中,在步骤S35中更新芯粒的状态,并标记剩余可用性能、功耗和通信开销,剩余可用性能为芯粒原始的性能减去已分配的子任务的性能需求;芯粒的剩余功耗为芯粒的最大功耗减去已分配的子任务的预计功耗,芯粒的剩余通信开销为芯粒的最大通信带宽减去已分配的子任务产生的通信开销。
在一些实施例中,所述计算子任务在每个芯粒/>上的适应度函数/>,子任务/>在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;为每个操作的平均能耗;/>是子任务/>访问的字节数,是每次从内存中读取或写入数据消耗的能量;
;
其中,是子任务/>需要交换的数据量,/>是芯粒/>的通信带宽。
本发明提供了一种芯粒智能选择调度方法及系统,所能实现的有益技术效果如下:
1、本申请通过该方法通过对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务,对于每个子任务,计算子任务/>在每个芯粒/>上的适应度函数,选择适应度函数值最大且大于设定阈值的芯粒/>,以此迭代,实现了芯粒的高效利用,其中,/>为子任务/>与芯粒/>之间的亲和性,亲和性的计算大大增强了任务与芯粒的高效匹配,实现了芯粒计算资源的高效利用,大大增强了计算效率,同时,根据子任务/>在芯粒/>上的性能、功耗和通信开销实现了最佳芯粒的选择;
2、本申请通过计算子任务与芯粒/>之间的亲和性/>,大大提升了芯粒的选择效果,通过亲和性的计算,充分考虑到任务的特性以及芯粒的优势,实现了最佳契合性结合,实现功能效果最大化利用实现,此外,亲和性计算采用,/>,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,/>表示任务需要处理的数据大小,/>表示随机访问或顺序访问,/>表示任务之间的数据交换量,/>表示芯粒/>归一化每秒浮点运算次数,/>表示芯粒的内存容量,/>表示芯粒的内存访问速度,/>表示芯粒的最大通信带宽;实现了多维度数据的参考,能够大大提升亲和性判断的准确度。
3、本发明通过所述计算子任务在每个芯粒/>上的适应度函数/>,子任务/>在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;为每个操作的平均能耗;/>是子任务/>访问的字节数,是每次从内存中读取或写入数据消耗的能量;
;
其中,是子任务/>需要交换的数据量,/>是芯粒/>的通信带宽,在任务计算之前就已经实现了根据任务特点和芯粒特性实现了性能、功耗、通信开销提前预测,大大提升了芯粒任务分配的准确度。
以上对一种芯粒智能选择调度方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想;同时,对于本领域的一般技术人员,依据本发明的思想和方法,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种芯粒智能选择调度方法,其特征在于,包括步骤:
S1:CPU接收待处理的计算任务;
S2:任务解析模块对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务;
S3:芯粒选择与调度模块,将子任务分配至芯粒库中的芯粒,协同CPU处理任务;具体包括:
S31:初始化,开始时所有子任务都没有分配;
S32:迭代,对于每个子任务,计算子任务/>在每个芯粒/>上的适应度函数/>:
;
其中,为第/>个子任务,/>为第/>个芯粒,/>为子任务/>在芯粒/>上的性能,/>为子任务/>在芯粒/>上的功耗,/>为子任务/>在芯粒/>上的通信开销,/>、/>、/>分别是性能、功耗和通信开销对应的权重;
为子任务/>与芯粒/>之间的亲和性,值在[0,1]之间;具体计算如下:
;
其中,表示向量点积,/>表示向量的欧几里得范数;/>,,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,表示归一化子任务/>需要处理的数据大小,/>表示归一化子任务/>随机访问或顺序访问,/>表示归一化子任务/>中各个计算单元或节点之间需要交换的数据量,/>表示芯粒/>归一化每秒浮点运算次数,/>表示芯粒/>的内存容量,/>表示芯粒/>的内存访问速度,/>表示芯粒/>的最大通信带宽;
S33:选择适应度函数值最大且大于设定阈值的芯粒;
S34:将子任务分配给芯粒/>;
S35:更新芯粒的状态,并标记剩余可用性能、功耗和通信开销;
S36:如果达到预定的迭代次数或子任务已分配完成,则迭代停止;
S4:若有未完成分配的子任务则由CPU处理;
所述S2中,根据数据的结构或分布将任务划分为多个子任务,具体的包括对于大型矩阵运算,将矩阵分割成多个小块,并分别在不同的计算单元上进行处理;如果一个任务并行处理多个独立的子任务,那么将这些子任务分配给多个计算单元。
2.如权利要求1所述的一种芯粒智能选择调度方法,其特征在于,所述S3中,将子任务分配至芯粒库中的芯粒,协同CPU处理任务,芯粒库包括处理芯粒、内存芯粒、I/O芯粒、AI加速芯粒、安全芯粒、模拟/射频芯粒、专用硬件加速芯粒中的一种或多种。
3.如权利要求1所述的一种芯粒智能选择调度方法,其特征在于,在所述S35中,更新芯粒的状态,并标记剩余可用性能、功耗和通信开销,剩余可用性能为芯粒原始的性能减去已分配的子任务的性能需求;芯粒的剩余功耗为芯粒的最大功耗减去已分配的子任务的预计功耗,芯粒的剩余通信开销为芯粒的最大通信带宽减去已分配的子任务产生的通信开销。
4.如权利要求1所述的一种芯粒智能选择调度方法,其特征在于,所述S32中,计算子任务在每个芯粒/>上的适应度函数/>,子任务/>在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务/>循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;/>为每个操作的平均能耗;/>是任务/>访问的字节数,/>是每次从内存中读取或写入数据消耗的能量;
;
其中,是任务/>需要交换的数据量,/>是芯粒/>的通信带宽。
5.一种芯粒智能选择调度系统,其特征在于,包括:
中央处理器接收任务模块,CPU接收待处理的计算任务;
任务解析模块,通过对计算任务进行解析,根据数据的结构或分布将任务划分为多个子任务;
芯粒选择与调度模块,将子任务分配至芯粒库中的芯粒,协同CPU处理任务;具体包括:
初始化模块,开始时所有子任务都没有分配;
迭代模块,对于每个子任务,计算子任务/>在每个芯粒/>上的适应度函数/>:
;
其中,为第/>个子任务,/>为第/>个芯粒,/>为子任务/>在芯粒/>上的性能,/>为子任务/>在芯粒/>上的功耗,/>为子任务/>在芯粒/>上的通信开销,/>、/>、/>分别是性能、功耗和通信开销对应的权重;
为子任务/>与芯粒/>之间的亲和性,值在[0,1]之间;具体计算如下:
;
其中,表示向量点积,/>表示向量的欧几里得范数;/>,,其中/>表示归一化子任务/>循环、条件语句和函数调用的数量,表示归一化子任务/>需要处理的数据大小,/>表示归一化子任务/>随机访问或顺序访问,/>表示任务之间的数据交换量,/>表示芯粒/>归一化每秒浮点运算次数,/>表示芯粒的内存容量,/>表示芯粒/>的内存访问速度,/>表示芯粒/>的最大通信带宽;
选择模块,选择适应度函数值最大且大于设定阈值的芯粒;
子任务分配模块,将子任务分配给芯粒/>;
更新模块,更新芯粒的状态,并标记剩余可用性能、功耗和通信开销;
停止判断模块,如果达到预定的迭代次数或子任务已分配完成,则迭代停止;
CPU处理判断模块,若有未完成分配的子任务则由CPU处理;
所述任务解析模块,根据数据的结构或分布将任务划分为多个子任务,具体的包括对于大型矩阵运算,将矩阵分割成多个小块,并分别在不同的计算单元上进行处理;如果一个任务并行处理多个独立的子任务,那么将这些子任务分配给多个计算单元。
6.如权利要求5所述的一种芯粒智能选择调度系统,其特征在于,所述芯粒选择与调度模块中,将子任务分配至芯粒库中的芯粒,协同CPU处理任务,芯粒库包括处理芯粒、内存芯粒、I/O芯粒、AI加速芯粒、安全芯粒、模拟/射频芯粒、专用硬件加速芯粒中的一种或多种。
7.如权利要求5所述的一种芯粒智能选择调度系统,其特征在于,在所述更新模块中,更新芯粒的状态,并标记剩余可用性能、功耗和通信开销,剩余可用性能为芯粒原始的性能减去已分配的子任务的性能需求;芯粒的剩余功耗为芯粒的最大功耗减去已分配的子任务的预计功耗,芯粒的剩余通信开销为芯粒的最大通信带宽减去已分配的子任务产生的通信开销。
8.如权利要求5所述的一种芯粒智能选择调度系统,其特征在于,所述迭代模块中,计算子任务在每个芯粒/>上的适应度函数/>,子任务/>在芯粒/>上的性能、功耗、通信开销具体如下:
;
其中,是/>以每秒浮点运算次数,/>通过静态代码分析得到子任务/>循环、条件语句和函数调用的数量;
;
其中,是子任务/>浮点运算、整数运算的操作数量;/>为每个操作的平均能耗;/>是任务/>访问的字节数,/>是每次从内存中读取或写入数据消耗的能量;
;
其中,是任务/>需要交换的数据量,/>是芯粒/> 的通信带宽。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311377935.7A CN117130760B (zh) | 2023-10-24 | 2023-10-24 | 一种芯粒智能选择调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311377935.7A CN117130760B (zh) | 2023-10-24 | 2023-10-24 | 一种芯粒智能选择调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117130760A CN117130760A (zh) | 2023-11-28 |
CN117130760B true CN117130760B (zh) | 2024-01-26 |
Family
ID=88858452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311377935.7A Active CN117130760B (zh) | 2023-10-24 | 2023-10-24 | 一种芯粒智能选择调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130760B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179462A1 (zh) * | 2020-03-12 | 2021-09-16 | 重庆邮电大学 | 基于改进量子蚁群算法的Spark平台任务调度方法 |
CN115421897A (zh) * | 2022-11-07 | 2022-12-02 | 之江实验室 | 一种面向芯粒的深度神经网络流水线并行调度方法及装置 |
WO2023023975A1 (zh) * | 2021-08-25 | 2023-03-02 | 华为技术有限公司 | 一种芯片、芯片制造方法、以及相关装置 |
CN116151315A (zh) * | 2023-04-04 | 2023-05-23 | 之江实验室 | 一种面向晶上系统的注意力网络调度优化方法及装置 |
CN116484674A (zh) * | 2023-04-07 | 2023-07-25 | 西安电子科技大学 | 一种芯粒微系统的多层次热优化设计方法 |
CN116661976A (zh) * | 2023-07-25 | 2023-08-29 | 中诚华隆计算机技术有限公司 | 一种基于开放式高带宽存储器接口的异构芯片集成系统 |
-
2023
- 2023-10-24 CN CN202311377935.7A patent/CN117130760B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179462A1 (zh) * | 2020-03-12 | 2021-09-16 | 重庆邮电大学 | 基于改进量子蚁群算法的Spark平台任务调度方法 |
WO2023023975A1 (zh) * | 2021-08-25 | 2023-03-02 | 华为技术有限公司 | 一种芯片、芯片制造方法、以及相关装置 |
CN115421897A (zh) * | 2022-11-07 | 2022-12-02 | 之江实验室 | 一种面向芯粒的深度神经网络流水线并行调度方法及装置 |
CN116151315A (zh) * | 2023-04-04 | 2023-05-23 | 之江实验室 | 一种面向晶上系统的注意力网络调度优化方法及装置 |
CN116484674A (zh) * | 2023-04-07 | 2023-07-25 | 西安电子科技大学 | 一种芯粒微系统的多层次热优化设计方法 |
CN116661976A (zh) * | 2023-07-25 | 2023-08-29 | 中诚华隆计算机技术有限公司 | 一种基于开放式高带宽存储器接口的异构芯片集成系统 |
Non-Patent Citations (2)
Title |
---|
基于云核粒子群算法的图像配准研究;张俊娜;穆华平;;激光与红外(第08期);第951页至955页 * |
张俊娜 ; 穆华平 ; .基于云核粒子群算法的图像配准研究.激光与红外.2013,(第08期),第951页至955页. * |
Also Published As
Publication number | Publication date |
---|---|
CN117130760A (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157794B2 (en) | Scheduling neural network processing | |
US9135077B2 (en) | GPU compute optimization via wavefront reforming | |
US8028286B2 (en) | Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors | |
US7725573B2 (en) | Methods and apparatus for supporting agile run-time network systems via identification and execution of most efficient application code in view of changing network traffic conditions | |
CN112162854A (zh) | 一种cpu-gpu间计算任务调度方法、系统及介质 | |
US20200301739A1 (en) | Maximizing resource utilization of neural network computing system | |
US20200234146A1 (en) | Platform for concurrent execution of gpu operations | |
CN112817730B (zh) | 深度神经网络服务批处理调度方法、系统及gpu | |
Tavana et al. | Exploiting adaptive data compression to improve performance and energy-efficiency of compute workloads in multi-GPU systems | |
KR20220052546A (ko) | 데이터 처리 방법 및 장치 및 이를 포함한 전자 장치 및 가속기 시스템 | |
Lee et al. | Task parallelism-aware deep neural network scheduling on multiple hybrid memory cube-based processing-in-memory | |
Jiang et al. | Profiling and optimizing deep learning inference on mobile GPUs | |
CN117130760B (zh) | 一种芯粒智能选择调度方法及系统 | |
CN112560392B (zh) | 用于处理电路版图的方法、设备和存储介质 | |
US11461662B1 (en) | Compilation time reduction for memory and compute bound neural networks | |
US20190354833A1 (en) | Method and system for reducing communication frequency in neural network systems | |
CN111221640B (zh) | 一种gpu-cpu协同节能方法 | |
US11847507B1 (en) | DMA synchronization using alternating semaphores | |
CN114911610A (zh) | 一种任务编译方法、装置和编译器 | |
Oh et al. | Energy-efficient task partitioning for CNN-based object detection in heterogeneous computing environment | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
US20220147280A1 (en) | Efficient buffering technique for transferring data | |
CN116483536B (zh) | 数据调度方法、计算芯片及电子设备 | |
WO2023159652A1 (zh) | 一种ai系统、内存访问控制方法及相关设备 | |
US20240111578A1 (en) | Hierarchical work scheduling |
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 |