一种基于c++的人工智能加速卡推理服务设计方法及系统技术方案

技术编号:33347779 阅读:15 留言:0更新日期:2022-05-08 09:46
本发明专利技术公开了一种基于c++的人工智能加速卡推理服务设计方法及系统,属于人工智能加速卡领域;所述的本发明专利技术方法具体步骤如下:S1客户端将图片预处理为适合加速卡处理的数据类型;S2服务端将数据传递给加速卡进行推理;S3服务端通过json配置管理和加载模型文件;S4服务端将数据返回客户端,通过定义callback使不同的模型注册相应的后处理操作;不同模型经过加速卡的推理之后得到的数据格式一般不会相同,所以最后需要对数据进行后处理,以得到期望的结果,当存在不同类型的加速卡和模型时,能够以最小的工作量来完成相关的部署同时保证其工作效率。证其工作效率。证其工作效率。

【技术实现步骤摘要】
一种基于c++的人工智能加速卡推理服务设计方法及系统


[0001]本专利技术公开一种基于c++的人工智能加速卡推理服务设计方法及系统,涉及人工智能加速卡


技术介绍

[0002]当前人工智能的相关业务和技术发展迅猛,国内也出现了很多做人工智能加速卡的公司。他们通过量化,硬件设计等技术来加速处理矩阵运算的速度,从而在运行特定模型时,会取得比GPU更好的运行效率和速度。不同厂商在设计自己的api时会暴露出不同的接口,这就大大增加了适配的难度,如何在降低工作量的同时保证运行效率成为一个重要问题。虽然接口可能存在差异,但其处理数据的过程存在一定的共性。
[0003]随着人工智能芯片的发展,当前出现了很多人工智能加速卡,用来代替GPU进行推理服务。目前市面上的加速卡,其推理效率和利用率要比GPU高,但是也存在其自身的局限性。
[0004]故现专利技术一种基于c++的人工智能加速卡推理服务设计方法及系统,以解决上述问题。

技术实现思路

[0005]本专利技术针对现有技术的问题,提供一种基于c++的人工智能加速卡推理服务设计方法及系统,所采用的技术方案为:一种基于c++的人工智能加速卡推理服务设计方法,所述的方法具体步骤如下:
[0006]S1客户端将图片预处理为适合加速卡处理的数据类型;
[0007]S2服务端将数据传递给加速卡进行推理;
[0008]S3服务端通过json配置管理和加载模型文件;
[0009]S4服务端将数据返回客户端,通过定义callback使不同的模型注册相应的后处理操作。
[0010]所述S1客户端将图片预处理为适合加速卡处理的数据类型的具体步骤如下:
[0011]S101客户端对图片的数据类型进行转换;
[0012]S102将处理后的数据利用tcp连接进行传输;
[0013]S103利用线程池并行处理数据,将处理结果拼接后发送到服务端。
[0014]所述S2服务端将数据传递给加速卡进行推理的具体步骤如下:
[0015]S201客户端将预处理数据发送给服务端的数据接收队列;
[0016]S202服务端的数据发送线程将数据拷贝到加速卡;
[0017]S203数据处理线程调用api使加速卡处理相关数据;
[0018]S204数据接收线程从加速卡拷贝数据到主机,将处理后的数据发送回客户端。
[0019]所述S3服务端通过json配置管理和加载模型文件的具体步骤如下:
[0020]S301获取本地存储离线模型信息;
[0021]S302将用户端请求的网络模型加载到内存中;
[0022]S303将客户端预处理后的数据传递给加速卡并处理相应数据,给板卡提供数据;
[0023]S304服务端接受调用挥手接口的请求,释放相应资源。
[0024]一种基于c++的人工智能加速卡推理服务设计系统,所述的系统具体包括预处理模块、数据推理模块、配置交互模块和后处理模块:
[0025]预处理模块:客户端将图片预处理为适合加速卡处理的数据类型;
[0026]数据推理模块:服务端将数据传递给加速卡进行推理;
[0027]配置交互模块:服务端通过json配置管理和加载模型文件;
[0028]后处理模块:服务端将数据返回客户端,通过定义callback使不同的模型注册相应的后处理操作。
[0029]所述预处理模块具体包括数据转换模块、数据传输模块和数据处理模块:
[0030]数据转换模块:客户端对图片的数据类型进行转换;
[0031]数据传输模块:将处理后的数据利用tcp连接进行传输;
[0032]数据处理模块:利用线程池并行处理数据,将处理结果拼接后发送到服务端。
[0033]所述数据推理模块具体包括数据接收模块、数据拷贝模块、线程处理模块和数据返回模块:
[0034]数据接收模块:客户端将预处理数据发送给服务端的数据接收队列;
[0035]数据拷贝模块:服务端的数据发送线程将数据拷贝到加速卡;
[0036]线程处理模块:数据处理线程调用api使加速卡处理相关数据;
[0037]数据返回模块:数据接收线程从加速卡拷贝数据到主机,将处理后的数据发送回客户端。
[0038]所述配置交互模块具体包括握手交互模块、模型加载模块、加速处理模块和挥手交互模块:
[0039]握手交互模块:获取本地存储离线模型信息;
[0040]模型加载模块:将用户端请求的网络模型加载到内存中;
[0041]加速处理模块:将客户端预处理后的数据传递给加速卡并处理相应数据,给板卡提供数据;
[0042]挥手交互模块:服务端接受调用挥手接口的请求,释放相应资源。
[0043]本专利技术的有益效果为:本专利技术首先需要对图片做预处理,将其转为适合加速卡处理的数据类型,包括BGR转化RGB,归一化等操作,然后将数据传递给加速卡,然后由加速卡进行推理,将推理得到的数据拷贝到主机上,不同模型经过加速卡的推理之后得到的数据格式一般不会相同,所以最后需要对数据进行后处理,以得到期望的结果,当存在不同类型的加速卡和模型时,能够以最小的工作量来完成相关的部署同时保证其工作效率。
附图说明
[0044]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0045]图1是本专利技术方法的流程图。
具体实施方式
[0046]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0047]实施例一:
[0048]一种基于c++的人工智能加速卡推理服务设计方法,所述的方法具体步骤如下:
[0049]S1客户端将图片预处理为适合加速卡处理的数据类型;
[0050]S2服务端将数据传递给加速卡进行推理;
[0051]S3服务端通过json配置管理和加载模型文件;
[0052]S4服务端将数据返回客户端,通过定义callback使不同的模型注册相应的后处理操作;
[0053]首先需要对图片做预处理,将其转为适合加速卡处理的数据类型,包括BGR转化RGB,归一化等操作,然后将数据传递给加速卡,然后由加速卡进行推理,将推理得到的数据拷贝到主机上,不同模型经过加速卡的推理之后得到的数据格式一般不会相同,所以最后需要对数据进行后处理,以得到期望的结果,例如分类算法就得到类别和概率,而检测算法除了类别和概率还会有待检测物体的坐标信息;
[0054]客户端主要负责的是预处理和后处理过程;经过客户端预处理完之后的数据利用tcp连接来传输数据,所以加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于c++的人工智能加速卡推理服务设计方法,其特征是所述的方法具体步骤如下:S1客户端将图片预处理为适合加速卡处理的数据类型;S2服务端将数据传递给加速卡进行推理;S3服务端通过json配置管理和加载模型文件;S4服务端将数据返回客户端,通过定义callback使不同的模型注册相应的后处理操作。2.根据权利要求1所述的方法,其特征是所述S1客户端将图片预处理为适合加速卡处理的数据类型的具体步骤如下:S101客户端对图片的数据类型进行转换;S102将处理后的数据利用tcp连接进行传输;S103利用线程池并行处理数据,将处理结果拼接后发送到服务端。3.根据权利要求2所述的方法,其特征是所述S2服务端将数据传递给加速卡进行推理的具体步骤如下:S201客户端将预处理数据发送给服务端的数据接收队列;S202服务端的数据发送线程将数据拷贝到加速卡;S203数据处理线程调用api使加速卡处理相关数据;S204数据接收线程从加速卡拷贝数据到主机,将处理后的数据发送回客户端。4.根据权利要求3所述的方法,其特征是所述S3服务端通过json配置管理和加载模型文件的具体步骤如下:S301获取本地存储离线模型信息;S302将用户端请求的网络模型加载到内存中;S303将客户端预处理后的数据传递给加速卡并处理相应数据,给板卡提供数据;S304服务端接受调用挥手接口的请求,释放相应资源。5.一种基于c++的人工智能加速卡推理服务设计系统,其特征是所述的系统具体包括预处理模块、数据推理模块、配...

【专利技术属性】
技术研发人员:姜玉哲孙桂刚李超
申请(专利权)人:浪潮软件集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1