CN114546643A - 面向arm架构的numa感知的并行计算方法及系统 - Google Patents
面向arm架构的numa感知的并行计算方法及系统 Download PDFInfo
- Publication number
- CN114546643A CN114546643A CN202210144660.1A CN202210144660A CN114546643A CN 114546643 A CN114546643 A CN 114546643A CN 202210144660 A CN202210144660 A CN 202210144660A CN 114546643 A CN114546643 A CN 114546643A
- Authority
- CN
- China
- Prior art keywords
- execution
- numa
- space
- task
- divided
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 59
- 230000008447 perception Effects 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 18
- 238000000638 solvent extraction Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
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
-
- 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)
- Multi Processors (AREA)
Abstract
本发明公开了一种面向ARM架构的NUMA感知的并行计算方法及系统,该方法包括:获取计算任务并对计算任务进行类型划分,得到划分后的计算任务;确定执行空间大小并选择执行策略;根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;执行计算任务并对计算结果进行归约,得到最终结果。该系统包括:类型划分模块、设定模块、分配模块和归约模块。本发明通过执行空间的预分配以及计算资源的再分配策略,合理地将并行任务线程分配到不同NUMA节点的CPU核心上,能够有效提升性能。本发明作为一种面向ARM架构的NUMA感知的并行计算方法及系统,可广泛应用于计算机并行计算领域。
Description
技术领域
本发明涉及计算机并行计算领域,尤其涉及一种面向ARM架构的NUMA感知的并行计算方法及系统。
背景技术
ARM架构是一种采用独特的ARM指令集系统,并且根据不同适用范围开发的处理器体系结构。不同于x86架构的复杂指令集(CISC)架构,ARM架构是一种精简指令集(RISC)架构,减少了大量不常用的指令,减低了芯片复杂度。采用Load/Store指令体系结构,只有load、store指令可以访问存储器,其它数据处理指令只对寄存器操作。因此,ARM架构处理器具有低功耗、低成本、高性能的特点。
近年来,单个芯片上集成晶体管数量增长逐渐接近瓶颈,为了追求处理器性能的持续提升,处理器的设计逐渐从提升时钟频率转向增加处理器核心数量,多核处理器随之出现。目前,多核处理器大多采用NUMA(非统一内存访问)架构。与传统的统一内存访问架构不同,NUMA架构中的内存在物理上是分布式的,不同的CPU核心从属于不同的NUMA节点,每个NUMA节点有自己的集成内存控制器,处理器访问自己NUMA节点的内存时速度要比访问其它NUMA节点的内存更快。并行程序中往往包含众多的并行计算任务,这些任务之间可能相互独立,每个任务的计算结果互不影响。也可能在某些场景下,并行任务之间具有一定的依赖关系,这就会涉及到线程间的数据交换。因为处理器在访问不同NUMA节点的内存时存在性能差异,所以在处理具有依赖关系的并行计算任务时,如果涉及到较多的跨NUMA节点内存访问,就会大大增加性能开销。
发明内容
为了解决上述技术问题,本发明的目的是提供一种面向ARM架构的NUMA感知的并行计算方法及系统,根据不同类型的计算任务,采用不同的并行数据处理过程。
本发明所采用的第一技术方案是:一种面向ARM架构的NUMA感知的并行计算方法,包括以下步骤:
获取计算任务并对计算任务进行类型划分,得到划分后的计算任务;
确定执行空间大小并选择执行策略;
根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;
执行计算任务并对计算结果进行归约,得到最终结果。
优选地,所述划分后的计算任务的任务类型为并行for循环,,所述执行策略包括一维空间执行策略、多维空间执行策略和分组执行策略。
优选地,所述根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心这一步骤,其具体包括:
获取当前设备的NUMA架构信息;
所述NUMA架构信息包括NUMA节点的数量、每个NUMA节点包含的CPU核心数量;
根据设备的NUMA架构信息计算得到分配系数;
基于分配系数,按照顺序分配的方式,为每个NUMA节点依次分配子执行空间数量。
优选地,所述执行计算任务并对计算结果进行归约,得到最终结果这一步骤,其具体包括:
基于执行子区间执行计算任务;
针对执行子区间内部,使用串行归约模式,输出每次计算任务的归约结果并保存至对应的内存地址空间,完成NUMA节点内部的CPU核心间归约;
进行NUMA节点之间的结果归约,得到最终结果。
优选地,选择一维空间执行策略,所述根据NUMA架构信息划分执行空间具体包括:
根据设备可用的CPU核心数,对线性的执行区间进行均匀划分,得到划分后的执行子区间;
所述划分后的执行子区间长度相等。
优选地,选择多维空间执行策略,所述根据NUMA架构信息划分执行空间具体包括:
对除最后一个执行空间维度外的其他执行空间维度按照预设单位长度进行分组,最后一个空间维度不进行划分;
将每个执行空间维度的分组进行组合,得到划分后的执行子空间。
优选地,选择分组执行策略,所述根据NUMA架构信息划分执行空间具体包括:
对CPU核心数分组,得到分组数量;
根据分组数量对第一维度划分并根据每组的核心数对第二维度划分,得到划分后的执行子空间。
本发明所采用的第二技术方案是:一种面向ARM架构的NUMA感知的并行计算系统,包括:
类型划分模块,用于获取计算任务并对计算任务进行类型划分,得到划分后的计算任务;
设定模块,用于确定执行空间大小并选择执行策略;
分配模块,用于根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;
归约模块,用于执行计算任务并对计算结果进行归约,得到最终结果。
本发明方法及系统的有益效果是:本发明通过执行空间的预分配以及计算资源的再分配策略,合理地将并行任务线程分配到不同NUMA节点的CPU核心上,有效提升计算资源利用率,另外,通过多种针对NUMA架构设计的计算结果归约方案,进一步提升性能。
附图说明
图1是本发明一种面向ARM架构的NUMA感知的并行计算方法的步骤流程图;
图2是本发明一种面向ARM架构的NUMA感知的并行计算系统的结构框图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
具体实施例一:
本发明提供了一种面向ARM架构的NUMA感知的并行计算方法,该方法包括以下步骤:
S1、获取计算任务并对计算任务进行类型划分,得到划分后的计算任务,所述划分后的计算任务为并行for循环;
具体地,针对多种计算场景下不同执行策略的并行for循环实现,面向纯计算类型的并行计算任务,每个并行计算任务之间相互独立,不存在数据依赖。实际执行的计算任务通过仿函数的形式进行封装供实际CPU核心线程执行。根据执行策略的不同,并行for循环的实际执行流程不同。
S2、确定执行空间大小并选择执行策略;
所述执行策略包括一维空间执行策略、多维空间执行策略和分组执行策略,根据执行策略的不同,并行for循环的实际执行流程不同,具体实现方案如下:
对于一维空间执行策略,首先根据设备可用的CPU核心数,对线性的执行区间进行均匀划分,划分后的每个子区间长度相等。每个子区间分配给一个可用的CPU核心,子区间长度为所需执行的计算任务次数。
对于多维空间执行策略,默认的执行空间划分是对于除最后一个执行空间维度外的其他执行空间维度按照2个单位长度进行分组,最后一个空间维度不进行划分。将每个执行空间维度的分组进行组合,每一个组合包含所有空间维度的一个子空间划分,每个执行子空间的组合分配给一个可用的CPU核心。同时提供自定义的划分方案,可以指定每个空间维度的划分单位,实现灵活的执行空间划分方案。
对于分组执行策略,面向二维嵌套for循环,主要针对特定计算场景比如矩阵计算等。执行空间的划分方式为,首先对可用CPU核心数进行分组,根据分组数量对第一维度进行划分,然后根据每个分组内CPU核心数量对第二维度进行划分,每个核心分配到一个二维子执行空间。
S3、根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;
S4、执行计算任务。
具体实施例二:
S1、获取计算任务并对计算任务进行类型划分,得到划分后的计算任务,所述划分后的计算任务为并行reduce;
具体地,面向需要对多个计算任务结果求和的计算场景,多个计算任务的结果数据类型包含标量、向量、多维数组等形式。与并行for循环不同之处在于此操作涉及到CPU核心之间的数据通信。
S2、确定执行空间大小并选择执行策略;
具体地,对于采用一维空间执行策略和多维空间执行策略的并行reduce操作,按具体实施例一的方式对执行空间进行预划分。
S3、根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;
具体地,执行空间预划分后,获取当前设备的NUMA架构信息,包括NUMA节点的数量、每个NUMA节点包含的CPU核心数量。根据上述信息计算出一个分配系数X,然后按照顺序分配的方式,为每个NUMA节点依次分配其包含核心数量X倍的子执行空间数量。这样可以降低数据跨NUMA节点的分散程度,从而减少归约操作时跨NUMA节点的访存次数,实现并行性能提升。
S4、执行计算任务并对计算结果进行归约,得到最终结果。
具体地,实际执行过程中,采用分块归约模式,先在每个NUMA节点内部的CPU核心之间进行归约,每个NUMA节点的归约结果保存到其本地内存空间,然后再对所有NUMA节点的归约结果进行二次归约,得到最终结果。在每个NUMA节点内部的归约采用树形归约模式。
具体实施例三:
S1、获取计算任务并对计算任务进行类型划分,得到划分后的计算任务,所述划分后的计算任务为并行scan;
具体地,并行scan操作仅面向一维执行空间的计算场景,是将执行区间的所有计算任务排序,每一个计算任务的最终结果由在其之前的所有任务结果归约得到,本质上相当于递归进行数据的归约操作,
S2、确定执行空间大小并选择执行策略;
具体地,对于一维执行空间策略,按前述方式进行执行空间预划分。
S3、根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;
具体地,在进行计算资源的再分配时,同前述并行reduce操作中获取NUMA架构信息,计算出为每个NUMA节点分配的执行子区间的数量,将执行子区间按照顺序分配的方式映射到NUMA节点的CPU核心上进行计算。
每一个执行子区间由一个CPU核心线程执行,区间内每个下标表示一次计算任务,区间长度表示计算任务执行总次数,首先为每个核心线程分配一块内存空间,用于保存每个线程的计算结果,空间大小由计算结果的数据类型以及执行子区间长度决定。
S4、执行计算任务并对计算结果进行归约,得到最终结果。
S4.1、基于执行子区间执行计算任务;
S4.2、针对执行子区间内部,使用串行归约模式,输出每次计算任务的归约结果并保存至对应的内存地址空间,完成NUMA节点内部的CPU核心间归约;
S4.3、进行NUMA节点之间的结果归约,得到最终结果。
具体地,执行子区间内部,使用串行归约模式,得到每次计算任务的归约结果,保存到对应的内存地址空间。同一CPU核心上的不同执行子区间之间使用串行归约模式,下标大的子区间内所有计算任务结果,归约其前面紧邻的子区间中最大下标计算任务的归约结果。总体依旧采用分块归约模式,先在NUMA节点内部的CPU核心间归约,再进行NUMA节点之间的结果归约。本操作与并行reduce操作的不同之处在于,对每一次计算任务都进行了归约操作。
本发明提供了一种可以根据不同ARM架构的特点自适应的、可扩展的、性能可移植并行计算库。针对ARM架构特点,以及多核处理器中NUMA架构的特性进行分析,提供了一套可扩展、性能可移植的并行计算库。其中包括并行for循环、并行reduce操作、并行scan操作。还针对不同计算场景,设计了不同的执行策略:一维空间执行策略、多维空间执行策略、分组执行策略,可以根据不同NUMA架构进行合理的计算资源分配,实现性能优化。
如图2所示,一种面向ARM架构的NUMA感知的并行计算系统,包括:
类型划分模块,用于获取计算任务并对计算任务进行类型划分,得到划分后的计算任务;
设定模块,用于确定执行空间大小并选择执行策略;
分配模块,用于根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;
归约模块,用于执行计算任务并对计算结果进行归约,得到最终结果。
上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
一种面向ARM架构的NUMA感知的并行计算装置:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种面向ARM架构的NUMA感知的并行计算方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
一种存储介质,其中存储有处理器可执行的指令,其特征在于:所述处理器可执行的指令在由处理器执行时用于实现如上所述一种面向ARM架构的NUMA感知的并行计算方法。
上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (8)
1.面向ARM架构的NUMA感知的并行计算方法,其特征在于,包括以下步骤:
获取计算任务并对计算任务进行类型划分,得到划分后的计算任务;
确定执行空间大小并选择执行策略;
根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;执行计算任务并对计算结果进行归约,得到最终结果。
2.根据权利要求1所述的面向ARM架构的NUMA感知的并行计算方法,其特征在于,所述执行策略包括一维空间执行策略、多维空间执行策略和分组执行策略。
3.根据权利要求1所述的面向ARM架构的NUMA感知的并行计算方法,其特征在于,所述根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心这一步骤,其具体包括:
获取当前设备的NUMA架构信息;
所述NUMA架构信息包括NUMA节点的数量、每个NUMA节点包含的CPU核心数量;
根据设备的NUMA架构信息计算得到分配系数;
基于分配系数,按照顺序分配的方式,为每个NUMA节点依次分配子执行空间数量。
4.根据权利要求3所述的面向ARM架构的NUMA感知的并行计算方法,其特征在于,所述执行计算任务并对计算结果进行归约,得到最终结果这一步骤,其具体包括:
基于执行子区间执行计算任务;
针对执行子区间内部,使用串行归约模式,输出每次计算任务的归约结果并保存至对应的内存地址空间,完成NUMA节点内部的CPU核心间归约;
进行NUMA节点之间的结果归约,得到最终结果。
5.根据权利要求3所述的面向ARM架构的NUMA感知的并行计算方法,其特征在于,选择一维空间执行策略,所述根据NUMA架构信息划分执行空间具体包括:
根据设备可用的CPU核心数,对线性的执行区间进行均匀划分,得到划分后的执行子区间;
所述划分后的执行子区间长度相等。
6.根据权利要求3所述的面向ARM架构的NUMA感知的并行计算方法,其特征在于,选择多维空间执行策略,所述根据NUMA架构信息划分执行空间具体包括:
对除最后一个执行空间维度外的其他执行空间维度按照预设单位长度进行分组,最后一个空间维度不进行划分;
将每个执行空间维度的分组进行组合,得到划分后的执行子空间。
7.根据权利要求3所述的面向ARM架构的NUMA感知的并行计算方法,其特征在于,选择分组执行策略,所述根据NUMA架构信息划分执行空间具体包括:
对CPU核心数分组,得到分组数量;
根据分组数量对第一维度划分并根据每组的核心数对第二维度划分,得到划分后的执行子空间。
8.面向ARM架构的NUMA感知的并行计算系统,其特征在于,包括:
类型划分模块,用于获取计算任务并对计算任务进行类型划分,得到划分后的计算任务;
设定模块,用于确定执行空间大小并选择执行策略;
分配模块,用于根据NUMA架构信息划分执行空间,并将划分后的执行子空间分配至CPU核心;
归约模块,用于执行计算任务并对计算结果进行归约,得到最终结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210144660.1A CN114546643A (zh) | 2022-02-17 | 2022-02-17 | 面向arm架构的numa感知的并行计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210144660.1A CN114546643A (zh) | 2022-02-17 | 2022-02-17 | 面向arm架构的numa感知的并行计算方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546643A true CN114546643A (zh) | 2022-05-27 |
Family
ID=81675848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210144660.1A Pending CN114546643A (zh) | 2022-02-17 | 2022-02-17 | 面向arm架构的numa感知的并行计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546643A (zh) |
-
2022
- 2022-02-17 CN CN202210144660.1A patent/CN114546643A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI748151B (zh) | 神經網絡計算加速器及其執行的方法 | |
US8327123B2 (en) | Maximized memory throughput on parallel processing devices | |
EP3757901A1 (en) | Schedule-aware tensor distribution module | |
US8813091B2 (en) | Distribution data structures for locality-guided work stealing | |
EP3944091B1 (en) | Cache allocation method and device, storage medium, and electronic device | |
Maestre et al. | Kernel scheduling in reconfigurable computing | |
WO2023173639A1 (zh) | 加速器执行的方法和电子设备 | |
KR20210148586A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 가속기 시스템 | |
CN108132834B (zh) | 多级共享高速缓冲存储器架构下的任务分配方法和系统 | |
US6324629B1 (en) | Method for determining an optimized data organization | |
US8214818B2 (en) | Method and apparatus to achieve maximum outer level parallelism of a loop | |
Kim et al. | Las: locality-aware scheduling for GEMM-accelerated convolutions in GPUs | |
CN112947932B (zh) | 对编译过程中的向量化进行优化的方法、装置及电子设备 | |
CN113655986B9 (zh) | 一种基于numa亲和性的fft卷积算法并行实现方法及系统 | |
CN117271136A (zh) | 数据处理方法、装置、设备和存储介质 | |
US20210255793A1 (en) | System and method for managing conversion of low-locality data into high-locality data | |
CN116755878A (zh) | 程序运行方法、装置、设备、介质和程序产品 | |
CN114546643A (zh) | 面向arm架构的numa感知的并行计算方法及系统 | |
Gonthier et al. | Memory-aware scheduling of tasks sharing data on multiple gpus with dynamic runtime systems | |
CN116185937A (zh) | 基于众核处理器多层互联架构的二元运算访存优化方法及装置 | |
CN112114877B (zh) | 一种动态补偿线程束warp的方法、处理器及计算机存储介质 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
CN112068955B (zh) | 一种异构多核平台处理器内的通信优化方法及电子设备 | |
Zhang et al. | Performance Optimization for Parallel SpMV on a NUMA Architecture | |
CN112860530B (zh) | 一种利用非统一存储器访问架构特点提升并行化NumPy计算性能的方法 |
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 |