一种内存的虚拟化方法、深度学习系统及其任务切换方法与流程
- 国知局
- 2025-01-10 13:35:27
本发明涉及深度学习,特别涉及一种内存的虚拟化方法、深度学习系统及其任务切换方法。
背景技术:
1、深度学习的应用越来越广泛,ai/dl任务往往需要使用gpu/npu算力。在较为复杂的ai任务场景中,如自动驾驶等实时性高的场景中需要对计算资源有很强的调度能力,才能合理规划计算内核的执行,高效完成复杂的计算任务。
2、现有的对dl模型的任务/内核调度算法的主要方向包括npu非抢占式调度以及gpu抢占式调度两大类。gpu/npu需要承担高算力密度的计算任务,计算内核的现场很大,因此其任务调度/任务切换的开销往往较大,远大于cpu等为并发场景设计的计算核心。
3、npu处理器通常包含多个npu计算核心,不同计算核心之间互相独立。根据计算任务的执行优先级和资源用量,规划计算任务的执行顺序。当npu计算核心出现空闲时,根据分配调度算法,将计算任务下发。因此下一个计算任务必须等待当前执行的任务完成,高优先级任务无法抢占现有的计算资源,实时性差。且当多个npu计算任务并行时,则需要多个互相独立的npu计算核心,而有些硬件资源又难以隔离,会加大硬件的负担,灵活性差。此外,npu无法实现时间片轮转式的任务调度方式,不能从时间维度虚拟化算力,降低了资源利用率。
4、gpu可以支持计算任务的时间片轮转,时间片轮转会在当前的时间片完成后,对正在运行的计算任务现场进行保存,切换到下一个需要轮转的计算任务。下一个轮转的任务需要将此前保存的现场进行恢复,从而继续执行。在gpu中,这种调度方式涉及到了现场的保存和恢复。gpu调度基于simt架构,存在较多sm单元,因此现场保存时需要保存每个sm单元的寄存器和缓存到更外层存储单元,现场恢复时需要把现场信息从外层存储单元中读取出来,现场切换的开销重。以a100为例,sm单元数量为108个。每个sm单元有64kb的regs和384kb的缓存,共448kb。以最高带宽1.5tb/s估算,仍需要30us完成现场的保存。
技术实现思路
1、针对现有技术中的部分或全部问题,本发明第一方面提供一种内存的虚拟化方法,包括:
2、配置地址转换表;以及
3、通过所述地址转换表实现虚拟地址与所述内存的物理地址之间的转换。
4、进一步地,配置地址转换表包括:
5、设置至少一组地址映射组,包括设置起始虚拟地址、所述起始虚拟地址对应的物理地址、以及所述地址映射组包括的地址长度。
6、进一步地,每组地址映射组中,虚拟地址与物理地址的映射关系唯一。
7、进一步地,每组地址映射组中的地址的范围与其余n组地址映射组中的地址的范围存在重叠,其中n为大于等于零的整数。
8、进一步地,配置地址转换表还包括:
9、配置各组地址映射组的优先级,其中各组地址映射组的优先级均不相同。
10、进一步地,配置地址转换表还包括:
11、设置各个地址映射组的使能状态。
12、进一步地,通过所述地址转换表实现虚拟地址与所述内存的物理地址之间的转换包括:
13、确定输入地址所对应的地址映射组;以及
14、根据对应的地址映射组的信息进行地址转换。
15、进一步地,确定所述输入的虚拟地址所对应的地址转换组包括:
16、将输入地址按照优先级逐个与各个地址映射组的地址范围比对,将第一个匹配成功的地址映射组作为对应的地址映射组,其中匹配成功是指所述输入地址在该地址映射组的地址范围内。
17、基于如前所述的虚拟化方法,本发明第二方面提供一种深度学习系统,包括:
18、任务管理单元,其用于对计算任务进行调度及管理;
19、计算单元,其与所述任务管理单元可通信地连接,采用dsa架构,且包括至少一个计算核、第一地址转换模块以及共享缓存模块,其中每个计算核包括独立的片上缓存区域,以及所述第一地址转换模块用于根据如前所述的虚拟化方法将虚拟地址转换为物理地址,进而使得所述共享缓存模块的多个可用内存段的物理地址被映射为连续的内存空间虚拟地址;以及
20、外部存储单元,其通过第二地址转换模块与所述计算单元可通信地连接,其中所述第二地址转换模块用于根据如前所述的虚拟化方法将虚拟空间的地址转换为物理地址,进而使得计算任务的程序代码被映射至指定的虚拟地址空间。
21、基于如前所述的深度学习系统,本发明第三方面提供一种深度学习系统的任务切换方法,包括:
22、任务管理单元接收到优先级更高的计算任务时,通知计算单元进行现场切换;
23、所述计算单元待各个核(core)的当前计算完成后,将各个核的计算结果保存至共享缓存模块,并将所述共享缓存模块的内存占用情况发送给所述任务管理单元;
24、所述任务管理单元判断所述共享缓存模块的剩余内存是否满足所述计算任务的内存需求:
25、若满足,则配置所述第一地址转换模块,以将所述剩余内存的物理地址映射为连续虚拟化地址;以及
26、若不满足,则先将所述共享缓存模块中的至少部分数据搬运至外部存储模块中,使得所述共享缓存模块的剩余内存不低于所述计算任务的内存需求,然后配置所述第一地址转换模块,以将所述剩余内存的物理地址映射为连续虚拟化地址;
27、所述计算单元对各个核的现场进行保存,并发送保存完成信号至所述任务管理单元;
28、所述任务管理单元对第二地址转换模块进行配置,以将所述计算任务映射至指定的虚拟地址空间;
29、所述任务管理单元通知所述计算单元执行计算任务;以及
30、计算任务执行完成后,所述计算单元与所述任务管理单元进行现场恢复。
31、本发明提供的一种内存的虚拟化方法、深度学习系统及任务切换方法,通过内存虚拟化,使得任务切换时内存资源可以延迟保存,减少了现场保存的内存搬移量。
技术特征:1.一种内存的虚拟化方法,其特征在于,包括步骤:
2.如权利要求1所述的虚拟化方法,其特征在于,配置地址转换表包括步骤:
3.如权利要求2所述的虚拟化方法,其特征在于,每组地址映射组中,虚拟地址与物理地址的映射关系唯一。
4.如权利要求2所述的虚拟化方法,其特征在于,每组地址映射组中的地址的范围与其余n组地址映射组中的地址的范围存在重叠,其中n为大于等于零的整数。
5.如权利要求2所述的虚拟化方法,其特征在于,配置地址转换表还包括步骤:
6.如权利要求2所述的虚拟化方法,其特征在于,配置地址转换表还包括步骤:
7.如权利要求2所述的虚拟化方法,其特征在于,通过所述地址转换表实现虚拟地址与所述内存的物理地址之间的转换包括步骤:
8.如权利要求7所述的虚拟化方法,其特征在于,确定所述输入的虚拟地址所对应的地址转换组包括步骤:
9.一种深度学习系统,其特征在于,包括:
10.一种如权利要求9所述的深度学习系统的任务切换方法,其特征在于,包括步骤:
技术总结本发明公开一种内存的虚拟化方法,其首先配置地址转换表,然后通过该地址转换表进行虚拟地址与内存的物理地址之间的转换。通过内存虚拟化,可以使得深度学习系统在任务切换时内存资源可以延迟保存,以减少现场保存的内存搬移量。技术研发人员:郑浩然,沈梓荣受保护的技术使用者:奕行智能科技(广州)有限公司技术研发日:技术公布日:2025/1/6本文地址:https://www.jishuxx.com/zhuanli/20250110/354069.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表