一种人工智能加速卡适配方法、装置、设备及存储介质与流程

专利检索2024-12-11  30


本发明涉及计算机,特别涉及一种人工智能加速卡适配方法、装置、设备及存储介质。


背景技术:

1、当前,pytorch框架(深度学习框架),支持amd和nvidia ai(artificialintelligence,人工智能)加速卡,但是是直接在pytorch框架源码中进行支持,通过宏定义等方法区分实际编译的ai加速卡,由于pytorch框架源码量非常大,适配多个ai加速卡时,不同ai加速卡适配相互影响,开发难度大。

2、并且,pytorch底层包含2000多个内核(内核),内核开发工作量非常大,虽然各个ai加速卡厂商都开发了高性能算子库,但存在算子名称、参数的差异性,直接基于源码适配pytoch的方案,通用性差,无法快速适配pytorch框架,也就是说,各个ai加速卡厂商的ai加速卡的架构设计不同,不同ai加速卡厂商都需要将pytorch框架适配工作单独开发一遍,工作存在大量的重复,同时直接适配pytorch框架要求开发人员既要掌握pytorch框架源码内容,又要掌握ai加速卡底层软件栈的相关内容,代码开发耦合度高,导致适配难度高、开发工作量大,代码维护困难,无法快速适配pytorch的版本更新,而且torch开发的第三方软件库,如torchvision、transformers等在源码中使用cuda(即compute unified devicearchitecture,通用并行计算架构)作为默认设备,runtime接口(runtime,即运行时)在代码逻辑中是固定的,各个ai加速卡厂商注册自己的设备名称,runtime接口各个厂商都不同,而第三方库往往都是基于gpu(即graphics processing unit,图形处理器)开发的,需要在这些第三方软件库源码中修改,导致ai加速卡厂商适配的pytorch框架易用性以及通用性较差。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种人工智能加速卡适配方法、装置、设备及存储介质,能够避免修改pytorch框架源码内容,提高ai加速卡适配pytorch框架的易用性和通用性。其具体方案如下:

2、第一方面,本发明公开了一种人工智能加速卡适配方法,包括:

3、当存在人工智能加速卡需要与目标深度学习框架进行适配时,在所述目标深度学习框架中添加作为所述人工智能加速卡的适配接口的虚拟设备;

4、在添加完所述虚拟设备的所述目标深度学习框架中注册分布式通讯接口,并利用所述分布式通讯接口调用预设人工智能算力执行框架;所述预设人工智能算力执行框架为预先构建的用于实现人工智能算法的计算框架;

5、获取各所述人工智能加速卡的底层软件栈,并利用所述预设人工智能算力执行框架对各所述人工智能加速卡的底层软件栈进行抽象设计,得到抽象后的加速卡底层软件栈;

6、将各所述抽象后的加速卡底层软件栈配置为后端,并将作为前端的所述目标深度学习框架与作为所述后端的所述抽象后的加速卡底层软件栈进行分离,以完成所述人工智能加速卡与所述目标深度学习框架之间的适配操作。

7、可选的,所述将各所述抽象后的加速卡底层软件栈配置为后端,并将作为前端的所述目标深度学习框架与作为所述后端的所述抽象后的加速卡底层软件栈进行分离之后,还包括:

8、获取与所述目标深度学习框架对应的第一内核配置文件;

9、基于预设内核配置文件构建规则并利用所述第一内核配置文件构建与所述第一内核配置文件对应的第二内核配置文件;其中,所述第二内核配置文件为包含内核名称、参数类型以及目标对应关系的内核配置文件,所述目标对应关系为所述第一内核配置文件与所述第二内核配置文件之间的对应关系;

10、构建所述目标深度学习框架与所述预设人工智能算力执行框架的参数转换模块,以在需要进行参数转换时通过调用所述参数转换模块以完成相应的待转换参数的自动转换操作;

11、触发内核配置文件解析操作以对所述目标深度学习框架对应的所述第一内核配置文件和所述第二内核配置文件进行解析,得到相应的内核配置文件解析结果,并在需要进行内核注册和实现时通过触发自动生成代码操作,以根据所述内核配置文件解析结果以及预设类型语言程序生成用于内核注册与内核实现的目标代码。

12、可选的,所述的人工智能加速卡适配方法,还包括:

13、确定需要注册的目标算子,并判断所述后端的后端算子是否支持与所述目标算子对应的目标计算操作;

14、如果所述后端的所述后端算子支持与所述目标算子对应的所述目标计算操作,则注册所述目标算子;

15、如果所述后端的所述后端算子不支持与所述目标算子对应的所述目标计算操作,则禁止注册所述目标算子。

16、可选的,所述的人工智能加速卡适配方法,还包括:

17、确定所述目标深度学习框架中的通用并行计算架构运行时对应的runtime接口,并将所述目标深度学习框架中的所述通用并行计算架构运行时对应的runtime接口重定向为所述后端运行时对应的runtime接口。

18、可选的,所述的人工智能加速卡适配方法,还包括:

19、对所述目标深度学习框架中的目标内核进行注册时,检测所述后端是否存在对应实现的所述目标内核;

20、如果所述后端存在对应实现的所述目标内核,则将所述后端对应实现的所述目标内核进行注册;

21、如果所述后端不存在对应实现的所述目标内核,则结束注册并在内核执行的过程中将待处理数据从设备端拷贝至中央处理器,以调用所述中央处理器的内核对所述待处理数据进行运算处理得到相应的运算结果,并将所述运算结果从所述中央处理器拷贝至所述设备端。

22、可选的,所述的人工智能加速卡适配方法,还包括:

23、在所述预设人工智能算力执行框架中构建设备内存缓存池;

24、利用所述设备内存缓存池,并基于预设设备内存多级缓存机制管理所述所述目标深度学习框架中各目标内存块的分配和释放。

25、可选的,所述预设人工智能算力执行框架包括统一runtime接口、统一内核接口和统一分布式通讯接口,以通过所述统一runtime接口调用所述人工智能加速卡的runtime库、通过所述统一内核接口调用所述人工智能加速卡的算子加速库以及通过所述统一分布式通讯接口调用所述人工智能加速卡的分布式通讯库。

26、第二方面,本发明公开了一种人工智能加速卡适配装置,包括:

27、虚拟设备添加模块,用于当存在人工智能加速卡需要与目标深度学习框架进行适配时,在所述目标深度学习框架中添加作为所述人工智能加速卡的适配接口的虚拟设备;

28、分布式通讯接口注册模块,用于在添加完所述虚拟设备的所述目标深度学习框架中注册分布式通讯接口;

29、执行框架调用模块,用于利用所述分布式通讯接口调用预设人工智能算力执行框架;所述预设人工智能算力执行框架为预先构建的用于实现人工智能算法的计算框架;

30、底层软件栈获取模块,用于获取各所述人工智能加速卡的底层软件栈;

31、底层软件栈抽象模块,用于利用所述预设人工智能算力执行框架对各所述人工智能加速卡的底层软件栈进行抽象设计,得到抽象后的加速卡底层软件栈;

32、前后端分离模块,用于将各所述抽象后的加速卡底层软件栈配置为后端,并将作为前端的所述目标深度学习框架与作为所述后端的所述抽象后的加速卡底层软件栈进行分离,以完成所述人工智能加速卡与所述目标深度学习框架之间的适配操作。

33、第三方面,本发明公开了一种电子设备,包括:

34、存储器,用于保存计算机程序;

35、处理器,用于执行所述计算机程序,以实现前述公开的人工智能加速卡适配方法的步骤。

36、第四方面,本发明公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的人工智能加速卡适配方法的步骤。

37、可见,本发明提供了一种人工智能加速卡适配方法,包括:当存在人工智能加速卡需要与目标深度学习框架进行适配时,在所述目标深度学习框架中添加作为所述人工智能加速卡的适配接口的虚拟设备;在添加完所述虚拟设备的所述目标深度学习框架中注册分布式通讯接口,并利用所述分布式通讯接口调用预设人工智能算力执行框架;所述预设人工智能算力执行框架为预先构建的用于实现人工智能算法的计算框架;获取各所述人工智能加速卡的底层软件栈,并利用所述预设人工智能算力执行框架对各所述人工智能加速卡的底层软件栈进行抽象设计,得到抽象后的加速卡底层软件栈;将各所述抽象后的加速卡底层软件栈配置为后端,并将作为前端的所述目标深度学习框架与作为所述后端的所述抽象后的加速卡底层软件栈进行分离,以完成所述人工智能加速卡与所述目标深度学习框架之间的适配操作。由此可知,本发明通过将目标深度学习框架内容作为前端,与人工智能加速卡的底层软件栈相关的内容作为后端,进行前后端分离,使得人工智能加速卡厂商不需要关注pytorch框架的实现和版本的更新,避免修改pytorch框架源码内容,从而能够简化pytorch适配ai加速卡的工作,提高ai加速卡适配pytorch框架的易用性和通用性。


技术特征:

1.一种人工智能加速卡适配方法,其特征在于,包括:

2.根据权利要求1所述的人工智能加速卡适配方法,其特征在于,所述将各所述抽象后的加速卡底层软件栈配置为后端,并将作为前端的所述目标深度学习框架与作为所述后端的所述抽象后的加速卡底层软件栈进行分离之后,还包括:

3.根据权利要求1所述的人工智能加速卡适配方法,其特征在于,还包括:

4.根据权利要求1所述的人工智能加速卡适配方法,其特征在于,还包括:

5.根据权利要求1所述的人工智能加速卡适配方法,其特征在于,还包括:

6.根据权利要求1至5任一项所述的人工智能加速卡适配方法,其特征在于,还包括:

7.根据权利要求6所述的人工智能加速卡适配方法,其特征在于,所述预设人工智能算力执行框架包括统一runtime接口、统一内核接口和统一分布式通讯接口,以通过所述统一runtime接口调用所述人工智能加速卡的runtime库、通过所述统一内核接口调用所述人工智能加速卡的算子加速库以及通过所述统一分布式通讯接口调用所述人工智能加速卡的分布式通讯库。

8.一种人工智能加速卡适配装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的人工智能加速卡适配方法的步骤。


技术总结
本发明公开了一种人工智能加速卡适配方法、装置、设备及存储介质,涉及计算机技术领域,包括:在目标深度学习框架中添加作为人工智能加速卡的适配接口的虚拟设备;进而注册分布式通讯接口,利用分布式通讯接口调用预设人工智能算力执行框架;获取各人工智能加速卡的底层软件栈,利用预设人工智能算力执行框架对各人工智能加速卡的底层软件栈进行抽象设计;将各抽象后的加速卡底层软件栈配置为后端,将作为前端的目标深度学习框架与作为后端的抽象后的加速卡底层软件栈进行分离,以完成人工智能加速卡与目标深度学习框架之间的适配操作。本发明通过前后端分离方式实现人工智能加速卡适配,提高人工智能加速卡适配深度学习框架的易用性和通用性。

技术研发人员:贾敬崧
受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1147210.html

最新回复(0)