本说明书涉及计算机,尤其涉及一种图形处理器内存优化方法、装置、介质及设备。
背景技术:
1、目前,随着人工智能的广泛使用,深度学习在各个应用领域高速发展。由于图形处理器(graphic processing unit,gpu)适合高并发和图形处理的场景的特性,深度学习通过gpu,在计算机视觉、自然语言处理以及推荐系统等领域都取得了巨大的成功。然而,巨大的成功也伴随着一个问题:深度学习需要大量的训练数据和计算资源,而gpu内存不足的问题逐渐成为制约深度学习神经网络模型训练的瓶颈。
2、在当前的技术中,利用深度学习将前向传播产生的中间结果直接发送到反向传播过程中产生的时间间隔,将gpu内存中的数据卸载到其他存储设备中,例如中央处理器(central processing unit,cpu),以解决深度学习神经网络模型训练时gpu内存不足的问题。但这种方法会增加大量额外的通信开销,导致训练性能下降。
3、为此,本说明书提供了一种图形处理器内存优化方法、装置、介质及设备。
技术实现思路
1、本说明书提供一种图形处理器内存优化方法、装置、介质及设备,以部分的解决现有技术存在的上述问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种图形处理器内存优化方法,所述方法应用于处理系统,所述处理系统包含多个图形处理器,各图形处理器之间通过终端直通技术进行通信,包括:
4、确定所述处理系统当前训练的各神经网络模型,所述神经网络模型由多个网络层组成;
5、针对每个图形处理器,确定该图形处理器在执行训练任务时,所述神经网络模型当前执行的网络层输出的各张量以及所述各张量的张量信息;
6、根据所述各张量的张量信息中的生命周期,将生命周期未达到预设阈值的所述各张量,作为短时张量;
7、针对每个短时张量,根据该短时张量的张量信息中的调用路径,判断所述神经网络模型的下一网络层是否需要调用该短时张量;
8、若是,则将该短时张量存储该图形处理器的存储器中,用于在执行下一网络层时调用该短时张量;
9、若否,则获取所述处理系统中各图形处理器的存储器状态,根据各存储器状态,确定空闲的图形处理器,将该短时张量发送至所述空闲的图形处理器中,用于在需要调用该短时张量时调用该短时张量。
10、可选的,根据所述各张量的张量信息中的生命周期,将所述生命周期未达到预设阈值的所述各张量,作为短时张量之前,所述方法还包括:
11、根据所述各张量的张量信息中的生命周期,将生命周期达到预设阈值的所述各张量,作为长时张量。
12、可选的,针对每个短时张量,根据该短时张量的张量信息中的调用路径,判断所述神经网络模型的下一网络层是否需要调用该短时张量之前,所述方法还包括:
13、针对每个长时张量,根据该长时张量的张量信息中的调用路径,判断该长时张量在所述神经网络模型的前向传播过程中是否最后一次调用;
14、若是,则将该长时张量发送至第三方设备的存储器中存储,其中,所述第三方设备为除所述处理系统的图形处理器以外的设备;
15、若否,则将该长时张量存储该图形处理器的存储器中。
16、可选的,根据各存储器状态,确定空闲的图形处理器,将该短时张量发送至所述空闲的图形处理器中,具体包括:
17、根据各存储器状态,确定存储器有空闲空间的图形处理器,作为候选的图形处理器;
18、判断产生该短时张量的图形处理器存储器是否有空闲空间;
19、若是,则将该短时张量存储该图形处理器的存储器中;
20、若否,则将该短时张量发送至所述候选的图形处理器的存储器中存储。
21、可选的,将该长时张量发送至第三方设备的存储器中存储之后,所述方法还包括:
22、针对每个长时张量,在模型训练反向传播过程中,当需要调用该长时张量时,从所述第三方设备的存储器中取回该长时张量。
23、可选的,将该短时张量发送至所述空闲的图形处理器中之后,所述方法还包括:
24、针对每个短时张量,当所述神经网络模型的下一网络层需要访问该短时张量时,判断该短时张量是否存储在该图形处理器的存储器中;
25、若是,则从该图形处理器的存储器本地存储的数据中,获取该短时张量;
26、若否,则确定存储该短时张量的图形处理器,向所述存储该短时张量的图形处理器发送调用请求,以调用该短时张量。
27、可选的,将该长时张量发送至第三方设备的存储器中存储,具体包括:
28、针对每个长时张量,根据该长时张量的张量信息中的调用路径,判断该长时张量在所述神经网络模型的反向传播过程中是否调用;
29、若是,则将该长时张量发送至第三方设备的存储器中存储;
30、若否,则从该图形处理器的存储器中删除该长时张量。
31、本说明书提供了一种图形处理器内存优化装置,所述装置应用于处理系统,所述处理系统包含多个图形处理器,各图形处理器之间通过终端直通技术进行通信,包括:
32、第一确定模块,用于确定所述处理系统当前训练的各神经网络模型,所述神经网络模型有多个网络层组成;
33、第二确定模块,用于针对每个图形处理器,确定该图形处理器在执行训练任务时,所述神经网络模型当前执行的网络层输出的各张量以及所述各张量的张量信息;
34、第三确定模块,用于根据所述各张量的张量信息中的生命周期,将生命周期未达到预设阈值的所述各张量,作为短时张量;
35、判断模块,用于针对每个短时张量,根据该短时张量的张量信息中的调用路径,判断所述神经网络模型的下一网络层是否需要调用该短时张量;若是,则将该短时张量存储该图形处理器的存储器中,用于在执行下一网络层时调用该短时张量;若否,则获取所述处理系统中各图形处理器的存储器状态,根据各存储器状态,确定空闲的图形处理器,将该短时张量发送至所述空闲的图形处理器中,用于在需要调用该短时张量时调用该短时张量。
36、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述图形处理器内存优化方法。
37、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现图形处理器内存优化方法。
38、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
39、本说明书提供的图形处理器内存优化方法,首先确定处理系统当前训练的各神经网络模型,神经网络模型由多个网络层组成。针对每个图形处理器,确定该图形处理器在执行训练任务时,神经网络模型当前执行的网络层输出的各张量以及各张量的张量信息。根据各张量的张量信息中的生命周期,将生命周期未达到预设阈值的各张量,作为短时张量。针对每个短时张量,根据该短时张量的张量信息中的调用路径,判断神经网络模型的下一网络层是否需要调用该短时张量。若是,则将该短时张量存储该图形处理器的存储器中,用于在执行下一网络层时调用该短时张量。若否,则获取处理系统中各图形处理器的存储器状态,根据各存储器状态,确定空闲的图形处理器,将该短时张量发送至空闲的图形处理器中,用于在需要调用该短时张量时调用该短时张量。
40、通过获取的各张量的张量信息,筛选生命周期未达到预设阈值的短时张量,使得图形处理器内存优化的目标明确,避免了将全部张量都优化的问题,提高内存优化效率。通过将短时张量发送至空闲的图形处理器,避免了将图形处理器的短时张量存储到其他非图形处理器的存储器的问题,降低了通信开销,提高了模型训练的性能。