一种多卡间远端内存访问的页面迁移方法、装置、电子设备及存储介质与流程
本技术涉及计算机,尤其涉及一种多卡间远端内存访问的页面迁移方法、装置、电子设备及存储介质。
背景技术:
1、通用图形处理器(general-purpose graphics processing unit,gpgpu)因其强大的并行计算能力,被广泛应用于人工智能训练、科学计算等高性能计算领域。在多卡协同计算场景中,多张gpgpu通过卡间互连链路(如c2c link、nvlink等)相互连接,共同完成大规模计算任务。
2、而在多卡共享内存的架构下,某个内存页面可能被存放在一张计算卡的显存中,但被另一张计算卡的计算任务频繁访问。如果内存页面的存放位置仅由软件根据初始配置决定,而无法根据运行时的实际访问模式动态调整,就可能出现内存分配位置不合理的情况,即远端访问频率高而本地访问频率低,导致远端计算长期以低效率的远端访问方式获取数据,严重影响整体计算效率。
3、因此,现有技术的多卡系统的整体计算效率较低。
技术实现思路
1、有鉴于此,本技术提供一种多卡间远端内存访问的页面迁移方法、装置、电子设备及存储介质,能够提升多卡系统的整体计算效率。
2、第一方面,本技术提供一种多卡间远端内存访问的页面迁移方法,包括:
3、通过硬件统计单元获取各计算卡对所述内存地址段的访问数据;
4、根据所述访问数据确定各内存地址段的访问热度;
5、将所述访问热度满足预设条件的内存地址段对应的页面信息上报至软件层;
6、所述软件层根据上报的页面信息,将对应的页面从当前所在的源计算卡显存迁移至目标计算卡显存。
7、可选的,所述通过硬件统计单元获取各计算卡对所述内存地址段的访问数据之前,还包括:配置硬件统计单元的各统计条目,指定各所述统计条目所监控的内存地址段。
8、可选的,所述统计条目包括地址段寄存器、本地访问计数器、第一计数器以及第二计数器。
9、可选的,所述通过所述硬件统计单元获取各计算卡对所述内存地址段的访问数据,包括:
10、当监测到内存访问请求的目标地址落入目标统计条目所对应的所述内存地址段时,根据所述访问请求的来源,对所述目标统计条目中对应的计数器执行递增操作。
11、可选的,所述根据所述访问请求的来源,对所述目标统计条目中对应的计数器执行递增操作,包括:
12、若所述访问请求来源于本地计算卡,则对所述目标统计条目的所述本地访问计数器执行递增;
13、若所述访问请求来源于远端计算卡的第一互连端口,则对所述目标统计条目的所述第一计数器执行递增;
14、若所述访问请求来源于远端计算卡的第二互连端口,则对所述目标统计条目的所述第二计数器执行递增。
15、可选的,所述访问数据至少包括:
16、远端计算卡通过卡间互联链路对所述内存地址段的访问次数以及本地计算卡对所述内存地址段的访问次数。
17、可选的,所述根据所述访问数据确定各所述内存地质段的访问热度,包括:
18、以预设时间间隔轮询所述硬件统计单元的各所述统计条目,读取各计数器的计数值并清零;
19、针对每个统计条目,将其远端访问计数值减去本地访问计数值,所得差值作为对应所述内存地址段在当前时间窗口内的所述访问热度;
20、将在当前时间窗口内所述访问热度超过预设阈值,或所述访问热度在所有被统计的所述内存地址段中排名前n位的所述内存地址段判定为满足所述预设条件。
21、可选的,所述目标计算卡为对所述页面的远端访问热度满足预设迁移条件的计算卡。
22、可选的,所述将对应的页面从当前所在的源计算卡显存迁移至发出主要远端访问请求的目标计算卡显存,包括:
23、所述软件层根据各远端计算卡对目标页面的远端访问计数值,选取远端访问计数值满足预设迁移条件的计算卡作为所述目标计算卡;
24、将所述目标页面从源计算卡显存迁移至所述目标计算卡显存;
25、迁移完成后,更新多卡系统的全局地址映射,并将地址映射变更通知所有计算卡。
26、可选的,所述方法还包括:
27、所述硬件统计单元通过记录访问请求所经由的物理端口来区分不同远端计算卡的访问,所述软件层根据物理端口与计算卡标识的映射关系还原访问来源计算卡的身份。
28、第二方面,本技术还提供一种多卡间远端内存访问的页面迁移装置,包括:
29、获取模块,用于通过所述硬件统计单元获取各计算卡对所述内存地址段的访问数据;
30、热度确定模块,用于根据所述访问数据确定各内存地址段的访问热度;
31、上报模块,将所述访问热度满足预设条件的内存地址段对应的页面信息上报至软件层;
32、迁移控制模块,所述软件层根据上报的页面信息,将对应的页面从当前所在的源计算卡显存迁移至目标计算卡显存。
33、可选的,所述获取模块,包括:
34、计数子模块,用于当监测到内存访问请求的目标地址落入目标统计条目所对应的所述内存地址段时,根据所述访问请求的来源,对所述目标统计条目中对应的计数器执行递增操作。
35、可选的,所述热度确定模块,包括:
36、数值统计子模块,用于以预设时间间隔轮询所述硬件统计单元的各所述统计条目,读取各计数器的计数值并清零;
37、热度计算子模块,用于针对每个统计条目,将其远端访问计数值减去本地访问计数值,所得差值作为对应所述内存地址段在当前时间窗口内的所述访问热度;
38、条件判定子模块,用于将在当前时间窗口内所述访问热度超过预设阈值,或所述访问热度在所有被统计的所述内存地址段中排名前n位的所述内存地址段判定为满足所述预设条件。
39、可选的,所述迁移控制模块,包括:
40、目标选取子模块,用于所述软件层根据各远端计算卡对所述目标页面的远端访问计数值,选取远端访问计数值满足预设迁移条件的计算卡作为所述目标计算卡;
41、迁移执行子模块,用于将所述目标页面从源计算卡显存迁移至所述目标计算卡显存;
42、地址更新子模块,用于迁移完成后,更新多卡系统的全局地址映射,并将地址映射变更通知所有计算卡。
43、第三方面,本技术还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述第一方面任一所述的多卡间远端内存访问的页面迁移方法。
44、第四方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面任一所述的多卡间远端内存访问的页面迁移方法。
45、本技术提供的多卡间远端内存访问的页面迁移方法、装置、电子设备及存储介质,通过硬件统计单元获取各计算卡对内存地址段的访问数据,进而根据访问数据确定各内存地址段的访问热度,接着将访问热度满足预设条件的内存地址段对应的页面信息上报至软件层,由软件层将对应页面从源计算卡显存迁移至的目标计算卡显存,克服了现有技术中无法根据多卡间运行时实际访问负载动态调整页面存放位置的缺陷,能够精准识别出被远端计算卡频繁访问而本地访问较少的页面,并及时将其迁移至实际使用频率满足预设迁移条件的计算卡上,从而使高延迟的远端访问转化为低延迟的本地访问,显著提升多卡系统的整体计算效率。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com