System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种PC量化推理卷积avx加速的方法技术_技高网

一种PC量化推理卷积avx加速的方法技术

技术编号:44123514 阅读:10 留言:0更新日期:2025-01-24 22:43
本发明专利技术提供一种PC量化推理卷积avx加速的方法,包括:S1,解析模型,获取网络名称卷积;S2,Protobuf序列化,反序列化解析网络参数,保存卷积参数;S3,卷积输出形状推理,如果padding为same,使用输入形状大小除以步长strides获取输出形状;padding为value,使用输入形状加上pad值减卷积核大小再除以strides进行形状的推理计算卷积输出的形状特征;S4,卷积接口,传入卷积参数,malloc开辟空间,设置线程个数,pthread_t开辟线程空间,for循环为每个线程赋值同等的卷积计算数据;循环batch,输出宽高和输出通道,获取输入和权重的值;S5,利用For循环所有数据,使用avx的指令集进行计算加速;S6,结束卷积。在PC端进行模型推理计算,卷积实现结合avx的运算指令集,提高卷积计算速度,提高整体模型的推理速度。

【技术实现步骤摘要】

本专利技术属于数据处理,特别涉及一种pc量化推理卷积avx加速的方法。


技术介绍

1、现有技术中,随着深度学习的发展,对硬件和软件的需求越来越高,为了提高计算的效率,计算的速度,往往需要更好的硬件和软件配置,有很大一部分情况可能要先一步验证网络结果推理的合理性和正确性,在此前提下并不需要好的硬件和软件配置,只许在个人电脑普通配置下进行估计计算,但深度学习中的卷积计算往往计算量比较大,在普通cpu中计算比较耗时计算速度缓慢。

2、深度网络模型的推理用到大量的算子计算,尤其用到大量的卷积获取数据特征,在pc的推理下普通的卷积实现只是特征图对权重的1对1一步步的累计相乘相加,由于计算量大,在普通计算机没有用得到gpu的电脑上速度比较缓慢。avx指令用于卷积计算实现中,可加快卷积的计算速度,多数据流并行进行卷积的计算。

3、因此,现有技术的主要缺陷在于:pc上量化模型推理卷积实在没有用到高配置硬件和软件的情况,在推理过程中需要大量的乘加计算,大量的卷积乘加计算耗费大量的时间,计算速度很慢。

4、此外,现有技术中的常用术语包括:

5、pc:个人计算机是指一种大小、价格和性能适用于个人使用的多用途计算机。台式机、笔记本电脑、小型笔记本电脑、平板电脑以及超级本等都属于个人计算机。

6、量化:为加快算法模型推理速度,将网络中间层feature定点化至8、4、2bit低比特位,能够大幅度降低网络的内存占用。

7、卷积:深度学习里的一种计算获取特征的方法。

8、avx:cpu的一组指令集,可以在涉及大规模数学复杂和繁重应用程序的高性能工作站中得到充分利用;提高cpu的处理速度。

9、protobuf序列化:是将数据结构或对象转换成二进制字节流的过程,protobuf对于不同的字段类型采用不同的编码方式和数据存储方式对消息字段进行序列化,以确保得到高效紧凑的数据压缩;

10、protobuf序列化过程如下:

11、(1)判断每个字段是否有设置值,有值才进行编码;

12、(2)根据字段标识号与数据类型将字段值通过不同的编码方式进行编码;

13、(3)将编码后的数据块按照字段类型采用不同的数据存储方式封装成二进制数据流。

14、protobuf反序列化:是将在序列化过程中所生成的二进制字节流转成数据结构或者对象的过程。

15、protobuf反序列化过程如下:

16、(1)调用消息类的parse from(input)解析从输入流读入的二进制字节数据流;

17、(2)将解析出来的数据按照指定的格式读取到c++、java、phyton对应的结构类型中。


技术实现思路

1、为了解决上述问题,本申请的目的在于:本方法通过分析卷积的计算方式,基于现有的普通计算的卷积实现,卷积实现用avx指令集完成,提高卷积的计算速度,提高模型的推理速度。

2、具体地,本专利技术提供一种pc量化推理卷积avx加速的方法,所述方法包括以下步骤:

3、s1,解析模型,获取网络名称进行卷积;即获取网络卷积节点进行卷积计算,卷积计算是根据节点参数信息提取输入数据,提取关键特征;所述解析模型,从模型中获取卷积节点,即卷积层,辨别该层进行卷积计算;所述卷积计算,是对输入的数据,根据卷积层里的权重、步长、pad的参数进行特定的算术运算;

4、s2,protobuf序列化,反序列化解析网络参数,对卷积节点进行反序列化操作获取该节点的参数,保存卷积参数,解析的原始数据分别保存在设置的参数里,不改变数据内容;

5、s3,卷积输出形状推理,是对该层卷积的输出的形状大小即batch、宽、高、输出通道进行推理;

6、1).如果padding为same,使用输入形状大小除以步长strides获取输出形状:输出的宽等于输入的宽除以步长strides,输出的高等于输入的高除以strides;输出形状为:输入第一维,高,宽,输入最后维;

7、2).如果padding为value,使用获取的参数信息,输入形状、卷积核大小、补充大小pad步长strides、膨胀值dilations进行形状的推理计算卷积输出的形状特征;具体计算:输入的宽和高加上pad,减去卷积核大小、乘以dilations、除以strides;

8、s4,卷积接口,传入卷积参数:输入数据、卷积核数据、bias数据、malloc开辟空间,设置线程个数,pthread_t开辟线程空间,利用for循环为每个线程赋值同等的卷积计算数据,即一个循环线程;利用循环batch,输出宽高和输出通道,获取输入和权重的值;

9、s5,利用for循环所有数据,循环获取数据计算;

10、把输入数据存入avx的_mm256_set1_ps的向量里,

11、利用_mm256_loadu_ps内存地址加载浮点输出向量和权重,利用_mm256_mul_ps对输入和权重进行相乘,

12、利用_mm256_add_ps对权重和输入两个浮点向量做加法给输出向量,利用_mm256_storeu_ps把计算后的值存到输出里面,

13、其中,avx的计算用到的指令,包括:

14、_mm256_set1_ps用float类型值填充向量,

15、_mm256_loadu_ps从内存地址加载输出向量和卷积核向量,

16、_mm256_mul_ps使输入的值乘以卷积核的值,

17、_mm256_add_ps进行数据的累加操作,

18、_mm256_storeu_ps存储加算的整体数据;

19、s6,结束卷积。

20、所述训练量化模型包括yolov5系列模型、resnet系列模型、mobilinet系列含有卷积的模型。

21、所述步骤s2中所述参数包括:输入的形状、卷积核的形状、pads补充的宽高大小,padding填充方式、量化参数scale、threshod、移位参数mutify_factor、激活参数activate_type、输入bit、权重bit、输出bit、clip最大值、clip最小值、步长strides、补充值pad_value、组卷积group值、dilations膨胀大小参数。

22、所述步骤s4进一步包括:

23、s4.1,对于卷积计算根据输出的形状设置多线程的并行计算个数,具体线程数的设置为根据输出宽乘高减一除以卷积线程数,卷积线程数设定为8,超过16整体线程设置16;从pthread.h文件里获取pthread_t开辟线程空间,利用pthread_create函数创建线程,创建线程后运行线程函数,pthread_join()函数接口循环控制线程的执行;

24、s4.2,对卷积需要的参数复制同等线程的份数,根本文档来自技高网...

【技术保护点】

1.一种PC量化推理卷积avx加速的方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的一种PC量化推理卷积avx加速的方法,其特征在于,所述训练量化模型包括yolov5系列模型、resnet系列模型、mobilinet系列含有卷积的模型。

3.根据权利要求1所述的一种PC量化推理卷积avx加速的方法,其特征在于,所述步骤S2中所述参数包括:输入的形状、卷积核的形状、pads补充的宽高大小,padding填充方式、量化参数scale、THRESHOD、移位参数mutify_factor、激活参数activate_type、输入bit、权重bit、输出bit、clip最大值、clip最小值、步长strides、补充值pad_value、组卷积group值、dilations膨胀大小参数。

4.根据权利要求1所述的一种PC量化推理卷积avx加速的方法,其特征在于,所述步骤S4进一步包括:

5.根据权利要求1所述的一种PC量化推理卷积avx加速的方法,其特征在于,所述步骤S5进一步包括:

6.根据权利要求1所述的一种PC量化推理卷积avx加速的方法,其特征在于,所述方法适用于在PC端进行模型推理计算,卷积实现结合avx的运算指令集。

...

【技术特征摘要】

1.一种pc量化推理卷积avx加速的方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的一种pc量化推理卷积avx加速的方法,其特征在于,所述训练量化模型包括yolov5系列模型、resnet系列模型、mobilinet系列含有卷积的模型。

3.根据权利要求1所述的一种pc量化推理卷积avx加速的方法,其特征在于,所述步骤s2中所述参数包括:输入的形状、卷积核的形状、pads补充的宽高大小,padding填充方式、量化参数scale、threshod、移位参数mutify_factor、激活参数activate_t...

【专利技术属性】
技术研发人员:王志强
申请(专利权)人:合肥君正科技有限公司
类型:发明
国别省市:

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

1