掌桥专利:专业的专利平台
掌桥专利
首页

一种国产平台人工智能环境适配方法及兼容性测试方法

文献发布时间:2023-06-19 11:44:10


一种国产平台人工智能环境适配方法及兼容性测试方法

技术领域

本发明属于人工智能和国产化基础平台领域,具体涉及一种国产平台人工智能计算环境适配及兼容性测试方法。

背景技术

我国国产化计算机平台相对于国际主流品牌尚有一定的差距。主要是国产平台计算性能比较薄弱,适配性较差。尤其缺少和AI(人工智能)等异构加速模块稳定性兼容适配和融合的技术手段。

随着国家对本领域的大力支持,华为、寒武纪、百度等主流AI卡已在X86、ARM平台上完成适配。但针对国产平台的适配,仍处于初步阶段,不利于国产自主可控设备的推广建设。而新型计算芯片基本都是基于x86平台进行开发、部署的,但对于国产平台缺乏必要的支持,从而导致国产平台在AI算力方面远远落后于x86体系。

近年来,国产AI计算硬件设备层出不穷,典型厂家包括寒武纪、百度和华为等。如何在国产(如龙芯和飞腾等)平台上适配AI计算模块,搭建主流深度学习算法框架,提升国产整机计算能力,面向不同智能化应用场景提供模型算法,推动国产基础平台的应用推广和发展,成为本领域亟待解决的重大课题。而实现上述目的,本领域面临两个现实性的技术难题:

一是如何解决商用AI卡与国产平台不兼容问题;二是深度学习框架在国产平台适配难,缺少验证手段,如何实现其验证手段。

发明内容

本发明提供了一种能够实现在国产平台上适配AI卡,且能完成深度学习框架在国产计算机上的验证测试的国产平台人工智能环境适配方法及兼容性测试方法。

本发明的国产平台人工智能环境适配方法,包括国产计算机平台和人工智能卡,按照以下方法实现所述人工智能卡在所述国产计算机平台上的适配:

1)、国产计算机平台基础环境检测;

2)、基础层适配;

3)、深度学习框架适配;

4)、完成所述国产计算机平台和所述人工智能卡的运行环境适配。

所述步骤1)包括以下步序:

1.1)采用linux命令,查看所述国产计算机平台的内核M1和编译器的版本M2,

1.2)查看所述人工智能卡自身运行所需要的内核N1和编译器的版本N2,

1.3)如所述国产计算机平台的内核M1和编译器的版本M2高于或等于所述人工智能卡的内核N1和编译器的版本N2,往步骤2);

反之,需进行所述国产计算机平台的内核M1和编译器的版本M2的升级,当所述国产计算机平台的内核M1和编译器的版本M2升级至高于或等于所述人工智能卡的内核N1和编译器的版本N2时,往步骤2)。

所述国产计算机平台的内核M1和编译器的版本M2的升级措施为:下载国产平台高版本的内核源码和编译器源码,使用gcc编译器进行编译,得到新版本的内核和编译器,在国产平台上升级安装。

所述步骤2)包括以下步序:

2.1)BIOS固件适配;

2.2)驱动源码适配;对不同种类的所述人工智能卡基于驱动进行资源调度和分配;

2.3)SDK源码适配。

所述步骤2.1)包括以下两种工况:

2.1.a)单机单卡:所述国产计算机平台支持所述人工智能卡的PCIE接口,进行固件安装,即完成固件适配;

2.1.b)单机多卡:所述国产计算机平台支持每个所述人工智能卡的PCIE接口,进行固件安装,即完成对每个所述人工智能卡的固件适配;再在固件中扩大地址空间,支持对多卡的资源管控;实现对多卡的固件适配。

所述步序2.3)SDK源码适配为:

在SDK源码适配中,将各类AI卡均有对应的统一基础开发包及算子库的二次开发接口引入,如根据所述的统一基础开发包及算子库的二次开发接口成功进行SDK源码适配,去步骤3),

如反之,则进行基础库适配,所述基础库适配包括:在SDK适配过程中,所需的第三方基础环境,包括开发库、计算库、图形库和通信库;所述基础库适配完成后,进入步骤3)。

所述步骤3)深度学习框架适配,包括以下步序:

3.1)通过适配开源TensorFlow、Caffe、PyTorch或PaddlePaddle深度学习框架,提供编程方法,完成深度学习应用开发,

首先 解决源码版本问题,根据所述人工智能卡支持列表选择对应支持版本;

其次,对开源源码进行安全监测,避免漏洞;

3.2)对深度学习框架底层依赖进行源码编译构建;

3.3)编译成功后,进行框架自带demo案例测试;

3.4)实现对主流的深度学习框架进行接口的统一封装,形成通用开发接口。

本发明国产平台人工智能环境适配方法的兼容性测试方法,包括测试案例的开发和部署两部分,

所述测试案例的开发部分包括训练集数据处理、网络模型构建、初始模型训练、训练模型评估、模型固化和模型存储,并生成模型库:

训练集数据处理主要是将数据集分为基础训练集、验证集以及测试集;

网络模型构建是基于所述步骤3)中已适配好深度学习框架建立模型,也可从模型库中直接导入已建立的模型;

初始模型训练前的训练参数设置;

训练模型评估为查看训练完成的模型对测试集的测试效果,如精度达不到预期,则对其进行再训练,若精度已符合预期,则进行下一步的模型存储;

模型存储时,可针对各类深度学习框架选择相应的保存格式;

然后将模型在模型库中进行保存;

所述测试案例的部署部分包括:模型格式转换、生成离线模型、推理应用开发和推理预测;

模型格式转换是通过调用模型转换接口对已保存的训练好的模型进行模型格式转换;

推理应用开发是为通过调用离线模型完成对未知样本的推理预测。

所述推理应用开发为:首先进行初始化,接着加载离线模型文件,然后读取测试数据并将其传至离线模型中执行推理运算,最后应用程序再从模型中获取推理结果并进行结果显示。

本发明的国产平台人工智能环境适配方法通过建立环境监测、基础层适配和深度学习框架适配,完成了人工智能卡(AI卡)在国产计算机平台上的运行问题。再创新性地设立了一套测试验证程序,实现了AI卡运行在国产平台上运行的可靠性问题。本发明通过构建人工智能并行计算环境,结合智能化系统需求,提供国产平台下的人工智能一体化高效支撑。本发明充分利用人工智能加速卡的计算能力,规避了国产平台中CPU算力不足的问题,从而提高了人工智能应用在国产平台中运行的效率。

附图说明

图1是本发明的原理图,

图2是本发明的工作流程图,

图3是本发明中测试验证的流程图,

图4是本发明测试验证过程中推理应用开发流程图。

具体实施方式

国产平台AI计算环境适配及兼容性测试方法,如图1-4所示,包括对国产基础环境的检测、驱动适配、BIOS固件适配、软件开发工具包(Software Development Kit,SDK)适配、基础库适配、深度学习框架适配,并进行推理案例验证。

其中国产平台人工智能环境适配方法,如图1-2所示,包括国产计算机平台和人工智能卡,按照以下方法实现所述人工智能卡在所述国产计算机平台上的适配:

1)、国产计算机平台基础环境监测;

国产平台种类繁多,处理器和操作系统类型和版本各异,造成多种国产基础环境形态。需要对硬件架构和操作系统类型进行识别,并针对不同架构、不同类型的平台进行驱动和固件定制。同时,对操作系统基础环境中内核(kernel)版本、编译器GCC版本进行识别,确定与对应AI卡要求保持一致,必要时进行版本升级处理。

步骤1)包括以下步序:

1.1)采用linux命令,查看所述国产计算机平台的内核M1和编译器的版本M2,

1.2)查看所述人工智能卡在非国产平台上所需要的内核和编译器的版本N,

1.3)如国产计算机平台的内核M1和编译器的版本M2高于或等于所述人工智能卡的内核N1和编译器的版本N2,往步骤2);

反之,需进行国产计算机平台的内核M1和编译器的版本M2的升级,当国产计算机平台的内核M1和编译器的版本M2升级至高于或等于人工智能卡的内核N1和编译器的版本N2时,往步骤2)。

国产计算机平台的内核M1和编译器的版本M2的升级措施为:下载国产平台高版本的内核源码和编译器源码,使用gcc编译器进行编译,得到新版本的内核和编译器,在国产平台上升级安装。

2)、基础层适配;

完成固件对AI卡类型识别,如需要适配单机多卡场景,需要在固件中扩大地址空间,支持对多卡的资源管控。

步骤2)包括以下步序:

2.1)BIOS固件适配;完成固件对AI卡类型识别,如需要适配单机多卡场景,需要在固件中扩大地址空间,支持对多卡的资源管控。

步骤2.1)包括以下两种工况:

2.1.a)单机单卡:国产计算机平台支持所述人工智能卡的PCIE接口,进行固件安装,即完成固件适配;

2.1.b)单机多卡:国产计算机平台支持每个所述人工智能卡的PCIE接口,进行固件安装,即完成对每个人工智能卡的固件适配;再在固件中扩大地址空间,支持对多卡的资源管控;实现对多卡的固件适配。

2.2)驱动源码适配;对不同种类的人工智能卡(如华为、寒武纪、百度等)基于驱动进行资源调度和分配;

各类AI卡需要基于驱动进行资源调度和分配。在国产平台上,驱动适配难度较大,需要获取驱动源码,并进行源码修改,加入国产硬件识别的指令信息,修改依赖信息表,最后使用软件管理器对驱动包进行重构,生成可执行格式的驱动包。AI驱动包依赖较多,要确保所有依赖均已完成适配。

2.3)SDK(开发平台)源码适配;各类AI卡均有对应的统一基础开发包,包括AI算子库、AI编译工具、AI资源调度优化方法、资源管理工具等,并提供算子库的二次开发接口。将多种AI卡的开发平台源码适配于国产平台,便于后续在国产平台上提供二次开发的接口。

如根据所述的统一基础开发包及算子库的二次开发接口成功进行SDK源码适配,去步骤3),

如反之,则需进行基础库适配,所述基础库适配包括:在SDK适配过程中,所需的第三方基础环境,包括开发库、计算库、图形库和通信库;所述基础库适配完成后,进入步骤3)。

以上完成AI卡硬件及驱动的适配。

3)、深度学习框架适配;步骤3)深度学习框架适配,包括以下步序:

3.1)通过适配开源TensorFlow、Caffe、PyTorch或PaddlePaddle等深度学习框架,为开发者提供了更加简单且通用的编程方法,完成深度学习应用开发,

深度学习框架适配首先要解决源码版本问题,根据AI卡支持列表选择对应支持版本;其次,对开源源码进行安全检测,避免漏洞;

3.2)对深度学习框架底层依赖进行源码编译构建;因为是国产平台,不能使用二进制包(X86/ARM)安装;

3.3)编译成功后,进行框架自带demo案例测试;虽然框架众多,但其在开发环境、数据格式、编程语言等方面具有一定的差异性,不利于AI应用的开发,并且这些算法框架目前主要应用于X86体系中,国产平台中应用仍较少。

3.4)实现对主流的深度学习框架进行接口的统一封装,形成通用开发接口,以支持用户快速便捷地进行数据处理、模型构建、训练、效果评估、模型存储、推理等操作。

4)、完成国产计算机平台和人工智能卡的运行环境适配。

以上过程由图2中Ⅰ、Ⅱ、Ⅲ三个步骤来实现。

实现上述运行环境适配工作后,本发明国产平台人工智能环境适配方法的兼容性测试方法,如图3中步骤Ⅳ及图4所示,包括测试案例的开发和部署两部分,

测试案例的开发部分依次包括训练集数据处理、网络模型构建、初始模型训练、训练模型评估、模型固化和模型存储,并生成模型库:

训练集数据处理主要是将数据集分为基础训练集、验证集以及测试集;

网络模型构建是基于所述步骤3)中已适配好深度学习框架建立模型,也可从模型库中直接导入已建立的模型;

初始模型训练前需设置训练参数;如各层神经元数量、训练迭代次数、batch大小、学习率或权值衰减等,在训练时可利用各类计算硬件进行加速,优选支持CUDA框架的NVIDIA系列独立显卡。

训练模型评估为查看训练完成的模型对测试集的测试效果,如精度达不到预期,则对其进行再训练,若精度已符合预期,则进行下一步的模型存储;

模型存储时,可针对各类深度学习框架选择相应的保存格式,如TensorFlow模型可将其保存为pb等格式的模型,Caffe模型可将其保存为caffemodel的格式。

然后将模型在模型库中进行保存;

测试案例的部署部分依次包括:模型格式转换、生成离线模型、推理应用开发和推理预测;

模型格式转换,通过调用模型转换接口对已保存的训练好的模型进行模型格式转换,目的是将其转换为可在所述人工智能卡中离线运行的格式;

推理应用开发是为实现通过调用离线模型完成对未知样本的推理预测。流程如图4所示。

推理应用开发为:首先进行初始化,接着加载离线模型文件,然后读取测试数据并将其传至离线模型中执行推理运算,最后应用程序再从模型中获取推理结果并进行结果显示。

最终,生成基础环境,通过测试验证后的基础层、模型、推理应用,利用tar命令打包,作为一个整体的安装包,方便之后的重复部署或推广使用。

以上内容显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

相关技术
  • 一种国产平台人工智能环境适配方法及兼容性测试方法
  • 一种国产操作系统硬件兼容性测试方法
技术分类

06120113034602