CN114092313A - 一种基于gpu设备的模型推理加速方法及系统 - Google Patents
一种基于gpu设备的模型推理加速方法及系统 Download PDFInfo
- Publication number
- CN114092313A CN114092313A CN202210061674.7A CN202210061674A CN114092313A CN 114092313 A CN114092313 A CN 114092313A CN 202210061674 A CN202210061674 A CN 202210061674A CN 114092313 A CN114092313 A CN 114092313A
- Authority
- CN
- China
- Prior art keywords
- model
- operator
- input
- string
- custom
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000001133 acceleration Effects 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 title claims description 16
- 238000004806 packaging method and process Methods 0.000 claims abstract description 8
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- GPRLSGONYQIRFK-MNYXATJNSA-N triton Chemical compound [3H+] GPRLSGONYQIRFK-MNYXATJNSA-N 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种基于GPU设备的模型推理加速方法,包括:将模型转换成ONNX格式文件;通过自定义算子将所述ONNX格式文件转换成PLAN格式文件;解析所述ONNX格式文件,生成推理服务器所需的模型配置文件;封装所述PLAN格式文件和所述模型配置文件,打包成所述推理服务器所需的格式;将打包好的文件在所述推理服务器上部署成模型服务,以在所述推理服务器上通过各个GPU设备对所述模型进行在线推理。本发明实施例还公开了一种基于GPU设备的模型推理加速系统。本发明提高了模型推理的实时性并提高了吞吐量,减小了系统的节点数量,可以降低运维难度和成本。
Description
技术领域
本发明涉及机器学习技术领域,具体而言,涉及一种基于GPU设备的模型推理加速方法及系统。
背景技术
在人工智能领域中,一般是先在独立设备上利用大数据进行训练,再优化算法和模型,得到模型后把模型部署成服务向外提供服务。随着推理服务的重要性增强,如何提高模型推理的及时性、吞吐量是非常重要的。
现有技术中,一般是将模型部署在CPU设备上,但是通过CPU设备对模型进行推理时,对于图形类或非图形类的高度并行数值计算相对较慢,且内存带宽相对较低,使得模型推理的实时性相对较差,模型推理的吞吐量较低。
https://developer.nvidia.com/zh-cn/blog/speeding-up-deep-learning-inference-using-tensorflow-onnx-and-tensorrt/中,介绍了使用TensorFlow、ONNX和TensorRT加速深度学习推理,主要介绍了目标检测模型(CV模型)的转换过程,不涉及推理引擎,该目标检测模型是基于TensorFlow训练框架训练的模型。https://zhuanlan.zhihu.com/p/453084182中,介绍了机器学习推理性能优化技术概览,主要比对了Tensorrt、Tftrt、Tvm三种优化方式。https://blog.csdn.net/u010552731/article/details/106520241中,介绍了TensorRT的自定义算子Plugin的实现。CN112711423A中公开了引擎构建方法、入侵检测方法、电子设备和可读存储介质,其针对的是目标检测模型。
发明内容
为解决上述问题,本发明的目的在于提供一种基于GPU设备的模型推理加速方法及系统,提高了模型推理的实时性并提高了吞吐量,减小了系统的节点数量,可以降低运维难度和成本。
本发明实施例提供了一种基于GPU设备的模型推理加速方法,所述方法包括:
将模型转换成ONNX格式文件,其中,所述模型是经过不同框架训练好并持久化存储的模型;
通过自定义算子将所述ONNX格式文件转换成PLAN格式文件,其中,所述自定义算子用于完成模型特征的相关处理;
解析所述ONNX格式文件,生成推理服务器所需的模型配置文件,其中,所述模型配置文件包括所述ONNX格式文件中提取的所述模型的输入和输出信息,在所述模型配置文件中配置使用GPU设备;
封装所述PLAN格式文件和所述模型配置文件,打包成所述推理服务器所需的格式;
将打包好的文件在所述推理服务器上部署成模型服务,以在所述推理服务器上通过各个GPU设备对所述模型进行在线推理。
作为本发明进一步的改进,所述自定义算子为feature column算子,所述featurecolumn算子包括string_hash算子、embedding_lookup算子、bucketize算子和categorical算子;
其中,所述string_hash算子是用于把输入由int类型的字符串转换成string类型的字符串,再调用farmhash函数完成字符串到哈希值的转换;
所述bucketize算子是用于将输入映射至目标桶中,并在batch维度做并行计算,所述输入的形状是[batch,1];
所述categorical算子是用于在表中查询输入对应的类别,并返回输入在表中的位置信息;
所述embedding_lookup算子是用于在表中查询输入对应的稠密信息,并将输入的稀疏信息转换成稠密信息。
作为本发明进一步的改进,所述自定义算子通过GPU加速库和模型加速工具实现。
作为本发明进一步的改进,所述自定义算子封装成共享库,以使所述模型加速工具和所述推理服务器加载所述共享库将所述自定义算子注册至算子列表。
本发明实施例还提供了一种基于GPU设备的模型推理加速系统,所述系统包括:
自定义算子及实现工具,用于实现自定义算子,其中,所述自定义算子用于完成模型特征的相关处理;
自动化模型格式转换工具,用于将模型转换成ONNX格式文件,其中,所述模型是经过不同框架训练好并持久化存储的模型;用于通过所述自定义算子将所述ONNX格式文件转换成PLAN格式文件;用于解析所述ONNX格式文件,生成推理服务器所需的模型配置文件,其中,所述模型配置文件包括所述ONNX格式文件中提取的所述模型的输入和输出信息,在所述模型配置文件中配置使用GPU设备;还用于封装所述PLAN格式文件和所述模型配置文件,打包成所述推理服务器所需的格式;
在线推理模块,用于将打包好的文件在所述推理服务器上部署成模型服务,以在所述推理服务器上通过各个GPU设备对所述模型进行在线推理。
作为本发明进一步的改进,所述自定义算子为feature column算子,所述featurecolumn算子包括string_hash算子、embedding_lookup算子、bucketize算子和categorical算子;
其中,所述string_hash算子是用于把输入由int类型的字符串转换成string类型的字符串,再调用farmhash函数完成字符串到哈希值的转换;
所述bucketize算子是用于将输入映射至目标桶中,并在batch维度做并行计算,所述输入的形状是[batch, 1];
所述categorical算子是用于在表中查询输入对应的类别,并返回输入在表中的位置信息;
所述embedding_lookup算子是用于在表中查询输入对应的稠密信息,并将输入的稀疏信息转换成稠密信息。
作为本发明进一步的改进,所述自定义算子通过GPU加速库和模型加速工具实现。
作为本发明进一步的改进,所述自定义算子封装成共享库,以使所述模型加速工具和所述推理服务器加载所述共享库将所述自定义算子注册至算子列表。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现所述的方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现所述的方法。
本发明的有益效果为:
将不同框架训练好的模型转换到GPU设备支持的模型格式,对用户可以做到中间过程的透明化,实现了模型在GPU设备上的加速,相较于传统CPU方法,充分利用GPU的并行计算能力,提高了模型推理的实时性并提高了吞吐量,由于增加了吞吐量,也减小了系统的节点数量,可以降低运维难度和成本。由于可以支持多种框架,丰富了系统架构,实现了异构设备的无差别使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一示例性实施例所述的一种基于GPU设备的模型推理加速方法的流程示意图;
图2为本发明一示例性实施例所述的一种基于GPU设备的模型推理加速系统的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明的描述中,所用术语仅用于说明目的,并非旨在限制本发明的范围。术语“包括”和/或“包含”用于指定所述元件、步骤、操作和/或组件的存在,但并不排除存在或添加一个或多个其他元件、步骤、操作和/或组件的情况。术语“第一”、“第二”等可能用于描述各种元件,不代表顺序,且不对这些元件起限定作用。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个及两个以上。这些术语仅用于区分一个元素和另一个元素。结合以下附图,这些和/或其他方面变得显而易见,并且,本领域普通技术人员更容易理解关于本发明所述实施例的说明。附图仅出于说明的目的用来描绘本发明所述实施例。本领域技术人员将很容易地从以下说明中认识到,在不背离本发明所述原理的情况下,可以采用本发明所示结构和方法的替代实施例。
本发明实施例所述的一种基于GPU设备的模型推理加速方法,如图1所示,所述方法包括:
S1,将模型转换成ONNX格式文件,其中,所述模型是经过不同框架训练好并持久化存储的模型;
S2,通过自定义算子将所述ONNX格式文件转换成PLAN格式文件,其中,所述自定义算子用于完成模型特征的相关处理;
S3,解析所述ONNX格式文件,生成推理服务器所需的模型配置文件,其中,所述模型配置文件包括所述ONNX格式文件中提取的所述模型的输入和输出信息,在所述模型配置文件中配置使用GPU设备;
S4,封装所述PLAN格式文件和所述模型配置文件,打包成所述推理服务器所需的格式;
S5,将打包好的文件在所述推理服务器上部署成模型服务,以在所述推理服务器上通过各个GPU设备对所述模型进行在线推理。
本发明所述方法将上述操作封装成一个自动化的模型推理加速工具,对模型做了优化处理,并可以将优化处理后的模型直接部署在推理服务器上。本发明所述方法支持经过多种框架训练好的模型,并将不同框架下训练好的模型自动转换格式,即将框架特有的格式转换成ONNX格式,再将ONNX格式转换成PLAN格式。上述格式转换过程可以理解为包括所述S1,所述S3。
其中,ONNX(Open Neural Network Exchange),即开放神经网络交换,是一种模型IR(Intermediate Representation),用于在各种深度学习训练和推理框架转换的一个中间表示格式。PLAN格式是模型加速工具(TensorRT)的模型IR,作为一种被序列化并保存在磁盘上可被重复利用的模型文件格式。
本发明通过自动化模型格式转换工具,将不同框架训练好的模型转换到GPU设备支持的模型格式,用户无需关注模型是如何转换成GPU设备支持的模型格式,只需调用该转换工具即可自动完成转换,对用户可以做到中间过程的透明化,实现了模型在GPU设备上的加速。由于CPU设备擅长的是操作系统、系统软件和通用应用程序这类拥有复杂指令调度、循环、分支、逻辑判断以及执行等的程序任务,而GPU设备擅长的是图形类或非图形类的高度并行数值计算,GPU设备可以容纳上千个没有逻辑关系的数值计算线程,能实现无逻辑关系数据的并行计算,并且GPU设备的内存带宽比CPU设备的内存带宽高得多,因此,相较于传统的通过将模型部署在CPU设备上进行模型推理的方法,本发明可以充分利用GPU的并行计算能力,相比于CPU设备来说,使用GPU设备时tp99(满足百分之九十九的网络请求所需要的最低耗时)能降低80%,QPS(一台服务器每秒能处理的查询次数)能提升7倍甚至更多,提高了模型推理的实时性并提高了吞吐量,由于增加了吞吐量,也减小了系统的节点数量,可以降低运维难度和成本,极大的提升了模型推理的性能。由于可以支持多种框架,丰富了系统架构,实现了异构设备的无差别使用。
其中,所述模型可以是经过不同框架训练好的并持久化存储的模型。训练好的模型可以是TF模型(TensorFlow模型)或PyTorch模型或ONNX模型。本发明在将不同框架训练好的模型转换成ONNX格式时,使得不同格式的模型文件统一成一种格式,方便后续处理。
由于模型加速工具(TensorRT)支持的算子有限,本发明通过自定义算子,实现针对模型的多种算子(例如feature column算子),解决了多种算子例如feature column不能在GPU设备计算的问题。
所述S2中将ONNX格式文件转换成PLAN格式文件(即TensorRT需要的文件格式),可以通过TensorRT的ONNX Parser实现,PLAN格式文件支持动态的batch size(每个batch中训练样本的数量,batch就是每次送入模型中训练或者推理的一部分数据,本申请中为推理时一次送入模型中的数据)。
所述S3中在解析ONNX文件时,可以通过模型优化工具套件中的Model Optimitzer工具解析,获取推理服务器(例如Triton)所需要模型格式的模型配置文件。该模型配置文件主要包括输入、输出、输入的维度和输出的维度,支持动态的Batch size,设备类型选择GPU,以及是否对模型预热等。
背景技术中介绍的使用TensorFlow、ONNX和TensorRT加速深度学习推理,主要是介绍CV模型的转换过程,并不涉及推理引擎(Triton),该目标检测模型是基于TensorFlow训练框架训练的模型。而本发明不仅支持TensorFlow训练框架训练的模型,还支持Pytorch等训练框架,可以支持多种训练框架,以支持异构设备的无差别使用。机器学习推理性能优化技术概览中,主要讲述了推理性能优化技术,对比了Tensorrt、Tftrt、Tvm三种优化方式。Tensorrt本身不支持推荐模型特征预处理操作,本发明则是使用Tensorrt,并复用Tensorrt的能力,通过自定义算子的形式实现Tensorrt对推荐模型特征预处理的支持,以适用于推荐模型。TensorRT的自定义算子Plugin的实现中,虽然介绍了自定义算子,但其自定义算子继承的类是IPluginV2IOExt,而本发明中自定义算子类继承的是IPluginV2DynamicExt,IPluginV2DynamicExt可以支持动态的batchsize,可以进一步提高推荐模型的推理性能。CN112711423A中针对的是目标检测模型,并且不涉及特征处理的自定义算子等相关操作,本发明则是通过模型转换和自定义算子的形式,更加适用于推荐模型。
一种可选的实施方式中,所述自定义算子为特征预处理算子(以下简称featurecolumn算子),为一系列算子,所述feature column算子包括string_hash算子、embedding_lookup算子、bucketize算子和categorical算子中的一种或多种。本发明所述方法在GPU设备上可实现上述自定义算子的并行计算。
其中,string_hash算子是用于字符串哈希计算,把输入由int类型的字符串转换成string类型的字符串,再调用Farmhash函数(用于字符串的哈希函数系列)的Fingerprint64接口完成字符串到哈希值的转换,转换后的哈希值是一个整数。
所述bucketize算子是用于分桶计算,即将输入映射至某个桶中,使用CUDA编程在内核(kernel)中通过与桶进行比较以确定输入的目标桶(即输入在哪个桶内),并在batch维度做并行计算。输入是一个张量,形状是[batch,1],第一维表示batch大小,batch用于定义在模型要处理的样本数,由于输入没有前后的依赖关系,因此可以在在batch维度上做并行计算,大大缩短计算时间。
所述categorical算子是用于分类别计算,完成查表过程,并返回输入在表中的位置信息,该表里记录的是特征对应的类别,每个类别会对应不同的稠密信息。
所述embedding_lookup算子同样也是用于完成查表过程,将输入的稀疏信息转换成稠密信息,该表里记录的是特征类别对应的稠密信息。
一种可选的实施方式中,所述自定义算子通过GPU加速库和模型加速工具实现。
本发明所述方法利用模型加速工具(TensorRT)的plugin插件机制使用CUDA编程实现embedding_lookup、bucketize、categorical三个算子。利用google的farmhash库来实现string_hash算子,该库只有CPU的实现,因此string_hash算子的计算过程也在CPU中实现,但是计算结束后会主动拷贝到GPU上对应的内存,不影响后续的计算。
一种可选的实施方式中,所述自定义算子封装成共享库,以使模型加速工具和所述推理服务器加载所述共享库将所述自定义算子注册至算子列表。
所述算子列表中的所有自定义算子可被正常使用,在模型推理过程中从共享库中调用相应的自定义算子完成该算子相应的计算。
本发明实施例所述的一种基于GPU设备的模型推理加速系统,如图2所示,所述系统包括:
自定义算子及实现工具,用于实现自定义算子,其中,所述自定义算子用于完成模型特征的相关处理;
自动化模型格式转换工具,用于将模型转换成ONNX格式文件,其中,所述模型是经过不同框架训练好并持久化存储的模型;用于通过所述自定义算子将所述ONNX格式文件转换成PLAN格式文件;用于解析所述ONNX格式文件,生成推理服务器所需的模型配置文件,其中,所述模型配置文件包括所述ONNX格式文件中提取的所述模型的输入和输出信息,在所述模型配置文件中配置使用GPU设备;还用于封装所述PLAN格式文件和所述模型配置文件,打包成所述推理服务器所需的格式;
在线推理模块,用于将打包好的文件在所述推理服务器上部署成模型服务,以在所述推理服务器上通过各个GPU设备对所述模型进行在线推理。
一种可选的实施方式中,所述自定义算子为feature column算子,所述featurecolumn算子包括string_hash算子、embedding_lookup算子、bucketize算子和categorical算子;
其中,所述string_hash算子是用于把输入由int类型的字符串转换成string类型的字符串,再调用farmhash函数完成字符串到哈希值的转换;
所述bucketize算子是用于将输入映射至目标桶中,并在batch维度做并行计算,所述输入的形状是[batch,1];
所述categorical算子是用于在表中查询输入对应的类别,并返回输入在表中的位置信息;
所述embedding_lookup算子是用于在表中查询输入对应的稠密信息,并将输入的稀疏信息转换成稠密信息。
一种可选的实施方式中,所述自定义算子通过GPU加速库和模型加速工具实现。
一种可选的实施方式中,所述自定义算子封装成共享库,以使模型加速工具和所述推理服务器加载所述共享库将所述自定义算子注册至算子列表。
本公开还涉及一种电子设备,包括服务器、终端等。该电子设备包括:至少一个处理器;与至少一个处理器通信连接的存储器;以及与存储介质通信连接的通信组件,所述通信组件在处理器的控制下接收和发送数据;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行以实现上述实施例中的方法。
在一种可选的实施方式中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中的方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本公开还涉及一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
此外,本领域普通技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本领域技术人员应理解,尽管已经参考示例性实施例描述了本发明,但是在不脱离本发明的范围的情况下,可进行各种改变并可用等同物替换其元件。另外,在不脱离本发明的实质范围的情况下,可进行许多修改以使特定情况或材料适应本发明的教导。因此,本发明不限于所公开的特定实施例,而是本发明将包括落入所附权利要求范围内的所有实施例。
Claims (10)
1.一种基于GPU设备的模型推理加速方法,其特征在于,所述方法包括:
将模型转换成ONNX格式文件,其中,所述模型是经过不同框架训练好并持久化存储的模型;
通过自定义算子将所述ONNX格式文件转换成PLAN格式文件,其中,所述自定义算子用于完成模型特征的相关处理;
解析所述ONNX格式文件,生成推理服务器所需的模型配置文件,其中,所述模型配置文件包括所述ONNX格式文件中提取的所述模型的输入和输出信息,在所述模型配置文件中配置使用GPU设备;
封装所述PLAN格式文件和所述模型配置文件,打包成所述推理服务器所需的格式;
将打包好的文件在所述推理服务器上部署成模型服务,以在所述推理服务器上通过各个GPU设备对所述模型进行在线推理。
2.如权利要求1所述的方法,其中,所述自定义算子为feature column算子,所述feature column算子包括string_hash算子、embedding_lookup算子、bucketize算子和categorical算子;
其中,所述string_hash算子是用于把输入由int类型的字符串转换成string类型的字符串,再调用farmhash函数完成字符串到哈希值的转换;
所述bucketize算子是用于将输入映射至目标桶中,并在batch维度做并行计算,所述输入的形状是[batch,1];
所述categorical算子是用于在表中查询输入对应的类别,并返回输入在表中的位置信息;
所述embedding_lookup算子是用于在表中查询输入对应的稠密信息,并将输入的稀疏信息转换成稠密信息。
3.如权利要求1所述的方法,其中,所述自定义算子通过模型加速工具实现。
4.如权利要求3所述的方法,其中,所述自定义算子封装成共享库,以使所述模型加速工具和所述推理服务器加载所述共享库将所述自定义算子注册至算子列表。
5.一种基于GPU设备的模型推理加速系统,其特征在于,所述系统包括:
自定义算子及实现工具,用于实现自定义算子,其中,所述自定义算子用于完成模型特征的相关处理;
自动化模型格式转换工具,用于将模型转换成ONNX格式文件,其中,所述模型是经过不同框架训练好并持久化存储的模型;用于通过所述自定义算子将所述ONNX格式文件转换成PLAN格式文件;用于解析所述ONNX格式文件,生成推理服务器所需的模型配置文件,其中,所述模型配置文件包括所述ONNX格式文件中提取的所述模型的输入和输出信息,在所述模型配置文件中配置使用GPU设备;还用于封装所述PLAN格式文件和所述模型配置文件,打包成所述推理服务器所需的格式;
在线推理模块,用于将打包好的文件在所述推理服务器上部署成模型服务,以在所述推理服务器上通过各个GPU设备对所述模型进行在线推理。
6.如权利要求5所述的系统,其中,所述自定义算子为feature column算子,所述feature column算子包括string_hash算子、embedding_lookup算子、bucketize算子和categorical算子;
其中,所述string_hash算子是用于把输入由int类型的字符串转换成string类型的字符串,再调用farmhash函数完成字符串到哈希值的转换;
所述bucketize算子是用于将输入映射至目标桶中,并在batch维度做并行计算,所述输入的形状是[batch,1];
所述categorical算子是用于在表中查询输入对应的类别,并返回输入在表中的位置信息;
所述embedding_lookup算子是用于在表中查询输入对应的稠密信息,并将输入的稀疏信息转换成稠密信息。
7.如权利要求5所述的系统,其中,所述自定义算子通过模型加速工具实现。
8.如权利要求7所述的系统,其中,所述自定义算子封装成共享库,以使所述模型加速工具和所述推理服务器加载所述共享库将所述自定义算子注册至算子列表。
9.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行以实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210061674.7A CN114092313A (zh) | 2022-01-19 | 2022-01-19 | 一种基于gpu设备的模型推理加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210061674.7A CN114092313A (zh) | 2022-01-19 | 2022-01-19 | 一种基于gpu设备的模型推理加速方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114092313A true CN114092313A (zh) | 2022-02-25 |
Family
ID=80308652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210061674.7A Pending CN114092313A (zh) | 2022-01-19 | 2022-01-19 | 一种基于gpu设备的模型推理加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114092313A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114663437A (zh) * | 2022-05-25 | 2022-06-24 | 苏州中科行智智能科技有限公司 | 一种深度学习模型部署方法、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210124739A1 (en) * | 2019-10-29 | 2021-04-29 | Microsoft Technology Licensing, Llc | Query Processing with Machine Learning |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
CN113723279A (zh) * | 2021-08-30 | 2021-11-30 | 东南大学 | 边缘计算环境中基于时空间优化的多目标跟踪加速方法 |
CN113934410A (zh) * | 2021-10-19 | 2022-01-14 | 北京航空航天大学 | 支持自定义算子的多硬件目标深度模型优化部署架构 |
-
2022
- 2022-01-19 CN CN202210061674.7A patent/CN114092313A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210124739A1 (en) * | 2019-10-29 | 2021-04-29 | Microsoft Technology Licensing, Llc | Query Processing with Machine Learning |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
CN113723279A (zh) * | 2021-08-30 | 2021-11-30 | 东南大学 | 边缘计算环境中基于时空间优化的多目标跟踪加速方法 |
CN113934410A (zh) * | 2021-10-19 | 2022-01-14 | 北京航空航天大学 | 支持自定义算子的多硬件目标深度模型优化部署架构 |
Non-Patent Citations (1)
Title |
---|
辰星M: "[tensorflow]tf.estimator.Estimator构建tensorflow模型", 《WONIU201411的博客HTTP://BLOG.CSDN.NET/WONIU201411/ARTICLE/DETAILS/89515855》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114663437A (zh) * | 2022-05-25 | 2022-06-24 | 苏州中科行智智能科技有限公司 | 一种深度学习模型部署方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11016673B2 (en) | Optimizing serverless computing using a distributed computing framework | |
JP2022153634A5 (zh) | ||
CN106951926B (zh) | 一种混合架构的深度学习方法及装置 | |
CN111178517B (zh) | 模型部署方法、系统、芯片、电子设备及介质 | |
CN111753948B (zh) | 模型处理方法及相关设备 | |
CN109993299A (zh) | 数据训练方法及装置、存储介质、电子装置 | |
US11361217B2 (en) | Chip and chip-based data processing method | |
US11934866B2 (en) | Operator operation scheduling method and apparatus to determine an optimal scheduling policy for an operator operation | |
CN111191789B (zh) | 模型优化部署系统、芯片、电子设备及介质 | |
CN112101529B (zh) | 一种用于神经网络模型推理跨平台的部署方法及架构 | |
EP4258175A1 (en) | Node fusion method for computational graph, and device | |
CN110750298B (zh) | 一种ai模型编译方法、设备及存储介质 | |
CN116644804B (zh) | 分布式训练系统、神经网络模型训练方法、设备和介质 | |
EP4428754A1 (en) | Neural network model processing method and device | |
CN117271101B (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
CN111768004A (zh) | 一种基于智能计算框架的模型自适应方法及系统 | |
CN114461221A (zh) | 编译方法、编译装置、电子设备、存储介质 | |
US20240095529A1 (en) | Neural Network Optimization Method and Apparatus | |
CN113902116A (zh) | 一种面向深度学习模型推理批处理优化方法与系统 | |
CN113379070A (zh) | 一种深度学习框架转换方法、系统、存储介质及设备 | |
CN112070213A (zh) | 神经网络模型的优化方法、装置、设备及存储介质 | |
CN114092313A (zh) | 一种基于gpu设备的模型推理加速方法及系统 | |
CN114186693A (zh) | 一种量子操作系统的调度方法、系统、装置及计算机介质 | |
CN112580627A (zh) | 基于国产智能芯片K210的yolov3目标检测方法及电子装置 | |
CN112753016B (zh) | 神经网络中数据预处理阶段的计算资源的管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220225 |