本技术属于一种智能算法研发平台,涉及一种用于智能算法的快速原型系统、方法、设备、存储介质、产品。
背景技术:
1、近年来,人工智能技术得到快速发展,已在电子商务、语音和视觉识别、人脸识别、智能机器翻译、自动驾驶、机器人等市场中被广泛应用。其中,智能算法是人工智能的核心技术之一,以npu(neural processing unit,神经网络专用处理器)作为硬件平台。
2、近年来,航天、航空、船舶、汽车等领域中,智能图像、目标识别和智能决策等智能算法的验证需求逐渐旺盛,亟需一款面向智能算法需求验证、开发、测试、评估的流程工具链集成平台,用于智能算法早期的测试、验证、评估和优化,为用户快速形成智能算法研制能力提供便捷途径,缩短了智能算法研制周期,提高了研制精度,降低了研制成本。
3、但是,目前市场上缺少用于智能算法早期测试、验证、评估和优化的快速原型平台,故多采用开发板的形态进行智能算法开发,存在以下问题:(1)研发效率低:用户需针对每种待验证npu单独采购对应的开发板,要针对每种开发板分别搭建硬件和软件环境。需要掌握多种npu的使用,针对每种npu单独开发测试评估软件,每种npu在不同的开发板环境下,测试一致性也不易保证。(2)模型优化及测试难:模型管理、更换不便捷,优化手段和接口单一,无法连接多个真实数据源,且不同的npu,不方便进行对比评估。
技术实现思路
1、本技术针对目前采用开发板的形态进行智能算法开发时,存在研发效率低,模型优化和测试难的技术问题,提供一种用于智能算法的快速原型系统、方法、设备、存储介质、产品。
2、为了实现上述目的,本技术采用以下技术方案予以实现:
3、第一方面,本技术提出一种用于智能算法的快速原型系统,包括:控制模块、接口模块和若干npu模块;
4、所述控制模块,用于获取控制指令和待优化智能算法模型;根据所述控制指令,将所述待优化智能算法模型转换为目标npu模型格式,得到转换后的算法模型,加载至目标npu模块;分别与若干npu模块进行交互,并调度目标npu模块运行;根据所述控制指令对各npu模块的运行结果进行对比;
5、所述接口模块,用于接收待优化智能算法模型的输入数据和所述npu模块的运行结果,并输出所述运行结果;
6、若干所述npu模块,分别用于根据所述控制指令从所述控制模块接收转换后的算法模型,从所述接口模块接收所述输入数据,并运行转换后的算法模型,将运行结果发送至所述控制模块和所述接口模块。
7、进一步地,还包括优化模块;
8、所述控制模块,还用于接收优化指令,并根据所述优化指令控制所述优化模块工作;
9、所述优化模块,用于接收所述接口模块接收的所述输入数据,进行优化处理后,发送至npu模块;并接收所述npu模块的运行结果,进行优化处理后,发送至所述接口模块。
10、进一步地,所述进行优化处理后,发送至npu模块时,所述优化模块向所述npu模块发送数据的方法,包括:
11、所述优化模块接收所述npu模块的读请求,完成握手;
12、所述优化模块向所述npu模块发送启动函数;
13、所述npu模块根据所述启动函数建立散列收集元素的列表,将所述列表中的信息写入共享缓存区;所述列表包括存储地址、数据长度、中断信息和内存信息;
14、所述npu模块将所述共享缓存区的地址,以及共享缓存区中所述列表中的数据长度发送至优化模块;
15、所述优化模块读取所述列表,向所述npu模块发出相应地址的数据写入请求,并将对应数据写入所述npu模块。
16、进一步地,所述向所述npu模块发出相应地址的数据写入请求时,若所述列表的地址为多个,则:
17、所述优化模块向所述npu模块发出多个所述数据写入请求,并将对应数据均写入所述npu模块;
18、所述npu模块通过驱动程序读取所述对应数据的字节数,判断所述对应数据的字节数是否与所述列表中的数据长度一致,若一致,则完成发送,否则,丢弃对应数据。
19、进一步地,所述进行优化处理后,发送至所述接口模块时,所述npu模块向所述优化模块发送数据的方法,包括:
20、所述优化模块向所述npu模块启动读请求;
21、所述npu模块在内部申请部分空间,将待发送数据写入所述部分空间;
22、所述npu模块根据所述待发送数据建立分散收集列表,用于写入待发送数据的地址和长度;
23、所述npu模块将所述分散收集列表的地址和所述待发送数据的长度发送至所述优化模块;
24、所述优化模块根据所述分散收集列表的地址,读取所述分散收集列表的信息,通过驱动程序对所述分散收集列表中相应地址的待发送数据进行读取。
25、进一步地,所述控制模块和若干所述npu模块之间通过实时容器实现兼容。
26、第二方面,本技术提出一种用于智能算法的快速原型方法,基于上述用于智能算法的快速原型系统;包括:
27、获取控制指令和待优化智能算法模型;
28、根据所述控制指令,将所述待优化智能算法模型转换为目标npu模型格式,得到转换后的算法模型,加载至目标npu模块,并调度目标npu模块运行;
29、目标npu模块根据所述控制指令从所述控制模块接收转换后的算法模型,结合输入数据,运行转换后的算法模型,得到运行结果;
30、根据所述控制指令对各npu模块的运行结果进行对比。
31、第三方面,本技术提出一种计算机设备,所述计算机设备包括:
32、处理器,适于实现计算机程序;
33、计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的用于智能算法的快速原型方法。
34、第四方面,本技术提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行上述的用于智能算法的快速原型方法。
35、第五方面,本技术提出一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述的用于智能算法的快速原型方法。
36、与现有技术相比,本技术具有以下有益效果:
37、本技术提出一种用于智能算法的快速原型系统,包括控制模块、接口模块和若干npu模块。控制模块用于获取控制指令和待优化智能算法模型,根据控制指令,将待优化智能算法模型转换为目标npu模型格式,得到转换后的算法模型,加载至目标npu模块,并分别与若干npu模块进行交互,调度目标npu模块运行,最后,根据控制指令对各npu模块的运行结果进行对比;接口模块用于接收待优化智能算法模型的输入数据和npu模块的运行结果,并输出运行结果;若干npu模块,分别用于根据所述控制指令从控制模块接收转换后的算法模型,从接口模块接收输入数据,并运行转换后的算法模型,再将运行结果发送至所述控制模块和所述接口模块。本技术的快速原型系统提供了多种npu测试环境,可实现智能算法模型的快速转换和部署,以及不同型号npu之间的快速比测,缩减了硬件环境定制和搭建造成的时间损失,有效缩短了智能算法模型的开发周期。从成本方面,节省了为验证不同智能算法、不同型号npu模块而定制硬件产生的研制和开发费用,减少重复性费用投入,同时,也大幅降低了人力投入。对于智能算法模型而言,能够基于本技术的快速原型系统快速搭建智能算法模型开发环境,在智能算法模型开发阶段,就可以结合输入模块响应验证、开发和优化等需求,能够减少智能算法模型后续应用时的算法迭代次数。另外,本技术的快速原型系统还可以匹配相应的改进模块,根据控制模块得到的对比结果对智能算法模型进行改进优化,再使用本技术的快速原型系统进行循环的测试和优化。最后,本技术的快速原型系统使用灵活,对智能算法模型的运行结果进行对比时,可以根据测试目的在不同维度进行灵活对比;可以对同一智能算法模型进行反复测试进而达到验证的目的;也可以同时对同一智能算法模型在不同目标npu模块组合下进行测试,只要通过控制模块进行相应调度即可。
38、本技术还提出了一种用于智能算法的快速原型方法、一种计算机设备、一种计算机可读存储介质和一种计算机程序产品,均基于上述用于智能算法的快速原型系统,具备上述用于智能算法的快速原型系统的全部优势。