CN119396468A 一种单指令多数据simd指令的生成、处理方法以及相关设备 (华为技术有限公司)_第1页
CN119396468A 一种单指令多数据simd指令的生成、处理方法以及相关设备 (华为技术有限公司)_第2页
CN119396468A 一种单指令多数据simd指令的生成、处理方法以及相关设备 (华为技术有限公司)_第3页
CN119396468A 一种单指令多数据simd指令的生成、处理方法以及相关设备 (华为技术有限公司)_第4页
CN119396468A 一种单指令多数据simd指令的生成、处理方法以及相关设备 (华为技术有限公司)_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

202010177489.52020.03.13型的信息中选取与第一张量计算式匹配的第二SIMD指令模型的信息中选取第二SIMD指令模型2获取第一张量计算式的至少一个循环维度中每个循获取多组第一单指令多数据SIMD指令模型的信息,其中,每组根据所述第一约束条件和所述第一张量计算式的至少一个循环维度中每个循环维度根据所述第一张量计算式的至少一个循环维度的长度和所述第二SIM信息还包括第一指示信息,一个第一指示信息用于指示一个第一SIMD指令模型的K个第一参数与一个张量计算式的至少一个循环维度之间的对应关系,所述K为大于或等于1的整5.根据权利要求1至4任一项所述的计算机程根据所述第一张量计算式的至少一个循环维度的长度和所述第二SIM根据所述多个第一SIMD指令中每个第一SIMD指令的代价函数,选择所述多指令中满足优化目标的SIMD指令,并将其作为所述第一张量计算式转换后的第一SIMD指SIMD指令中整块和尾块之间间隔最小、SIMD指令调度延迟最小、SIMD指令调度延迟最大、述第一SIMD指令中尾块的数量、所述第一SIMD指令中地址偏移量的计算次数、执行一条SIMD指令的时长和从执行一条第一SIMD指令的过程切换到执行另一条第一SIMD指令的过3根据所述第二SIMD指令模型的信息中的所述第一指示信息,获取基于所述第一循环维度的长度,生成所述第一SIMD指令的根据所述第二SIMD指令模型的信息中的所述第一指示信息,获的信息,与所述第三SIMD指令模型的信息对应的N的取值小于与所述第四SIMD指令模型的所述计算机执行所述从所述至少一组第一SIMD指令模型的信息中选取至少一组第二从所述第三SIMD指令模型的信息中选取所述第二SIMD指令在所述第四SIMD指令模型的信息中不存在所述第二SI弃从所述第五SIMD指令模型的信息中选取所述第二S获取第二约束条件,所述第二约束条件用于指示所述第一SIM获取所述第一张量计算式中目的地址的个数和所述第一张量计算所述计算机执行所述从所述至少一组第一SIMD指令模型的信息中选取至少一组第二在所述第一张量计算式中目的地址的个数与所述第一SIMD指令模型中目的地址的个4从SIMD指令模型的信息集合中获取所述至少一组第一SIMD指息归属的SIMD指令模型的信息子集合对应于所述第一张量计算式的获取与第一SIMD指令模型对应的第一参数值和第二参数值,所述第二参数值指示所述K个第一参数的取值约束,所述第一参数反映的为对与所述第一SIMD指令模型匹配的张量计算式中一数据对象重复执行一操作一指示信息和第一约束条件,所述第一指示信息用于指示所述K个第一参数和与所述第一用于指示所述至少一个循环维度中每个循环维度的长14.根据权利要求13所述的计算机程序产品,其特征在于,所述计算机还执行如下步所述计算机执行所述根据所述第一参数值和所述第二参数值,生成第一S获取第四参数值,所述第四参数值用于指示所述第一SIMD指根据所述第四参数值,生成第二约束条件,所述第二约束条件用于指示与所述第一获取与所述第一SIMD指令模型对应的代价函数,其中,所述优化目标的SIMD指令,所述满足优化目标的SIMD指令为代价函数的函数值最大或最小的5[0003]从20世纪90年代开始,各大芯片厂商开始在处理器中集成单指令多数据(single[0004]目前,在将输入的张量计算式转换为SIMD指令的过程中主要依赖暴力搜索的方张量中坐标的取值范围。张量是定义在向量空间和对偶空间的笛卡尔积上的多重线性映计算式中一个循环维度的长度指的是张量计算式的一个for循环中坐标的取值上限,一个6示信息,一个第一指示信息用于指示一个第一SIMD指令模型的K个第一参数与一个张量计的信息集合是基于某种特定芯片生成的,且不同的芯片会产生不同的SIMD指令模型的信少一个循环维度的长度和第二SIMD指令模型,生成第一张量计算式转换后的第一SIMD指式的N个循环维度中每个循环维度的长度、第二SIMD指令模型和第一张量计算式的坐标线7[0013]在第一方面的一种可能实现方式中,代价函数指示的优化目标包括以下至少一数的参数值可以包括SIMD指令的整块部分的第一参数的参数值和SIMD指令的尾块部分的少一个循环维度的长度和第二SIMD指令模型,生成第一张量计算式转换后的第一SIMD指第一循环维度的长度不整除对应的第一参数的取值范围指的是第一循环维度的长度不整据的数量等于预设数量的部分,尾块指的是SIMD指令中数据的数量小于预设数量的部分,芯片在通过调用SIMD指令的方式对数据进行分批计算时,每一批能够处理固定数量的数少一个循环维度的长度和第二SIMD指令模型,生成第一张量计算式转换后的第一SIMD指8度中的维度最高的一个循环维度,第二循环维度的长度超过对应的第一参数的取值上限;指令模型的信息对应的N的取值小于与第四SIMD指令模型的信息对应的N的取值,与第四模型的信息中选取至少一组第二SIMD指令模型的信息,包括:SIMD指令生成装置从第三信息归属的SIMD指令模型的信息子集合对应于第一张量计算式的运算类型。本实现方式9[0020]在第一方面的一种可能实现方式中,方法包括:SIMD指令生成装置获取与第一复执行一操作的重复次数。SIMD指令生成装置根据第一参数值和第二参数值,生成第一的信息,在转换过程中先基于张量计算式N个循环维度的长度从若干组合方式中筛选出匹述第二约束条件用于指示与所述第一SIMD指令模型匹配的张量计算式中目的地址的个数张量计算式的SIMD指令转换操作中利用代价函数筛选出最优的为对与第一SIMD指令模型匹配的张量计算式中一数据对象重复执行一操作的重复次数。一指示信息和第一约束条件,第一指示信息用于指示K个第一参数和与第一SIMD指令模型模型匹配的张量计算式中目的地址的个数和源从执行一条第一SIMD指令的过程切换到执行另一条第一SIMD指令的过程[0028]在第二方面的一种可能实现方式中,代价函数的优化目标包括以下至少一种:SIMD指令执行总次数最少、SIMD指令执行总次数最多、SIMD指令中整块和尾块数目最少、[0031]本申请第三方面提供的SIMD指令的生成装置的组成模块还可以用于执行第一方第一SIMD指令模型匹配的张量计算式中一数据对象重复执行一操作的重复次数;生成模信息和第一约束条件,第一指示信息用于指示K个第一参数和与第一SIMD指令模型匹配的[0033]本申请第四方面提供的SIMD指令的生成装置的组成模块还可以用于执行第二方的各个可能实现方式中SIMD指令生成装置的各个可能实现方式中SIMD指令处理装置[0042]图4为本申请实施例提供的SIMD指令的处理方法中第一参数和循环维度之间对应开发过程中。其中,前述芯片可以具体表现为中央处理器(centralprocessingunit,成电路(applicationspecificintegratedcircuit,ASIC)、现场可编程逻辑门阵列申请实施例提供的SIMD指令的生成方式以实现张量计算式到SIMD指处理装置100用于生成包括多组第一SIMD指令模型的信息的软件包,并将该软件包配置于SIMD指令模型生成装置200中。当SIMD指令模型生成装置200需要执行第一张量计算式到算式的每个循环维度的长度从多组第一SIMD指令模型的信息选取第二SIMD指令模型的信100可以通过总线将包括多组第一SIMD指令模型的信息的软件包配置于SIMD指令模型生成具有通信功能的设备,作为示例,例如台式电脑、笔记本电脑、个人数字助理(Personal[0056]张量计算式:包括一个for循环或多个for循环的嵌套,每个for循环中定义有该[0058]循环维度的长度:张量计算式中一个循环维度的长度指的是张量计算式的一个批能够处理固定数量的数据对象,若待处理的数据对象的数量可以与前述固定数量不整[0065]301、SIMD指令处理装置获取与第一SIMD指令模型对应的第一参数值和第二参数[0068]SIMD_OP([dsti],[srcj],[repeatk],[dstStridei,k],[srcStridej,k],[otherz]);照([0,repeat0],[0,repeat1],…,[0,repeatK_1])的顺序对与SIMD指令对应的数据对象执=0,1,…,K_1)代表芯片在执行某个repeatk参数时与数据对象的是for循环形式的张量计算式中一数据对象的一坐标所在的维度,式(2)示出的为包括H二参数值。SIMD指令处理装置也可以接收用户输入的包含第一参数值和第二参数值的文现方式中,SIMD指令处理装置还可以接收用户输入的芯片中目标种类的SIMD指令模型,[0082]可选地,SIMD指令处理装置获取第三参数值,第三参数值用于指示目标种类的SIMD指令中整块(Body)的数量约束。其中,SIMD指令处理装置可以通过整块部分和尾块[0084]其中,上述公式示出的为通过式(5)和式(6)一组SIMD指令配合For_x循环来共同个参数,代表张量Di中xp的坐标线性化系数,代表中的任一个参数,其中,代表芯片中目标种类的SIMD指令中repeatk参数整部分的源地址Sj中的地址偏移量,[repear⃞""I代表一组SIMD指令中整块部分的K个第一参数,[repear""的取值反映的是芯片在执行一组SIMD指令中整块部分的K个第一参数时1)代表芯片在执行某个repeatk参数时与数据对象对应的源地址srcj的地址偏移量,代表中的任一个参数,代表一组SIMD指令的尾块部分的K个第一=[0,一组SIMD指令的尾块部分的源地址Sj中的地址偏移量,[repear"I代表一组SIMD指令中于实现张量计算式的2个循环维度的运算,则目标种类的SIMD指令的整块部分中与张量计[0087]可选地,SIMD指令处理装置获取第四参数值,第四参数值用于指示目标种类的的目的地址的个数也即式(1)中I的取值,目标种类的SIMD指令的源地址的个数也即式(1)处理装置可以接收用户输入的芯片中目标种类的SIMD指令模型,并从中提取出第四参数于指示依据第一SIMD指令模型的信息执行目标运算类型的张量计算式的SIMD指令转换操成目标种类的SIMD指令,一个第一SIMD指令模型的格式与目标种类的SIMD指令的格式相个第一指示信息用于指示一个第一SIMD指令模型包括的K个第一参数和与第一SIMD指令模型的信息匹配的张量计算式的N个循环维度之间的对应关系,一个第一约束条件用于指示在第一指示信息指示的对应关系的前提下与第一SIMD指令模型的信息匹配的张量计算式[0091]进一步地,至少一组第一SIMD指令模型的信息中包括多类S用于指示在第一指示信息指示的对应关系的前提下SIMD指令模型中地址偏移量的取值约目标种类的SIMD指令中的K个repeatk表示目标运种对应关系。若通过目标种类的SIMD指令中的K个repeatk表示目标运算类型的K个循环维度(也即N的取值为K),则K个repeatk与K个循环维度之间存在一种对应关系。作为示申请实施例提供的SIMD指令的处理方法中第一参数和循环维度之间对应关系的一种示意于表示目标运算类型的张量计算式的K′个循环维度中第2个循环维度,repeatK_3和repeatK_2用于表示目标运算类型的张量计算式的K′个循环维度中第K′_1个循环维度,现性,SIMD指令处理装置还需要生成与2K_1个第一指示信息一一对应的2K_1个第一约束条中,η代表0至M-1中的任意值,ζ代表求和表达式束条件。若通过SIMD指令中的K个repeatk用于表示目标运算类型的张量计算式中的K个循[0099]参阅如上表1,表1中更为直观的展示了在第一指示信息指示的对应关系的前提数量对第一约束条件的影响。令芯片中目标种类的SIMD指令中整块的数量约束为其中,代表芯片中目标种类的SIMD指令中整条件中的限制Rk将被放宽至通过前述公式可知,通过设置整块的方式为乘积标运算类型的张量计算式中目的地址的个数和目标运算类型的张量计算式中源地址的个中对目标运算类型的张量计算式中目的地址的约束个数限定为1,则第二约束条件中对目dstStridei,k,(i=0,1,…,I_1)和stridej+I,k=srcStridej,k,(j=0,1,…,J_1),也即用于表示目标运算类型的张量计算式中的K个循环维度xk,也即SIMD指令中的每一维的SIMD指令用于实现张量计算式的2个(也即N的取值为2)循环维度的运算,第一循环维度一参数包括repeat0、repeat1和repeat2,在通过上述表2的计算规则得知,需要利用第一循环维度的长度和第一循环维度对应的第一参数的取值约束确定存在不整除的意思指的是E2与repeat0和repeat1的乘积不整除。针对通过设置尾块的方式来解决不整除的问repear"dv与repear""相乘再与相加来表示E2,也即整块和尾块技术中的设置尾标类型的SIMD指令中整块的数量约束上限为硬,在张量计算式的第二循环维度的长度超过个第一参数中某一维或某几维的第一参数取值最大、SIMD指令的K个第一参数中某几维的第一参数取值最小、dstStridei,k参数在i取某个值或某几个值时的参数值最小、或某几个值时的参数值最小和/或srcStridej,k参数在j取某个值或某几个值时的参数值最程切换到执行另一条第一SIMD指令的过程的时长和芯片执行SIMD指令中不同repeat参数括SIMD指令的整块部分的N种整块中每种整块的数量。本申请实施例中,预先生成代价函数计算规则和/或代价函数配置于SIMD指令生成装置中。也可以为SIMD指令处理装置将第SIMD指令模型的信息、第一参数计算规则和/或代价函数直接发送至SIMD指令生成装置中程中先基于张量计算式N个循环维度的长度从若干组合方式中筛选出匹配的组合方式,大[0133]本申请实施例中,SIMD指令生成装置在执行张量计算式到SIMD指令的转换过程[0134]502、SIMD指令生成装置获取第一张量计算式中目的地址的个数和第一张量计算指令生成装置从SIMD指令模型的信息集合中获取多组第一SIMD指令模型的信息。具体的,张量计算式的运算类型。则SIMD指令生成装置在获取到第一张量计算式的运算类型之后,可以从SIMD指令模型的信息集合中获取与第一张量计算式的运算类型匹配的第一SIMD指令模型的信息与第一张量计算式的运算类型的张量计算式的贴合度更高,且有利于提高[0142]505、SIMD指令生成装置判断第一张量计算式中目的地址的个数与第一SIMD指令[0143]本申请的一些实施例中,第一SIMD指令模型的信息中还第二约束条件用于指示与第一SIMD指令模型的信息匹配的张量计算式中目的地址的个数[0146]507、SIMD指令生成装置从多组第一SIMD指令模型的信息中选取第二SIMD指令模张量计算式的H个循环维度的长度,从第一SIMD指令模型的信息中选取与第一张量计算式对于目的地址的个数和源地址的个数的要求,只有在满足约束的情况下,再执行后续的模型的信息匹配的张量计算式的N个循环维度的长度的约束条件,N为大于或等于1且小于一个第一约束条件。作为示例,例如从H个循环维度的长度中获取E0,判断E0是否满足SIMD指令模型的信息,第二SIMD指令模型的信息中包括至少一组第一SIMD指令模型的信[0151]508、SIMD指令生成装置获取与第二SIMD指令模型的信息对应的第二SIMD指令模SIMD指令生成装置根据芯片的目标种类的SIMD指令的指令格式和第二SIMD指令模型的信[0154]本申请实施例中,SIMD指令生成装置可以根据第一张量计算式的N个循环维度的生成装置在获取到第一张量计算式的N个循环维度的长度、第一张量计算式的坐标线性化获取到的第一张量计算式的N个循环维度的长度、第一张量计算式的坐标线性化系数带入到上述表2示出的参数计算规则中,从而分别得到第二SIMD指令模型包括的每个SIMD指令[0157]在另一种情况下,目标类型的SIMD指令中使用整块和尾块技术,步骤509可以包[0158]具体的,针对第二SIMD指令模型中的任一个SIMD指令模型的参数值生成过程,SIMD指令生成装置可以先通过表2示出的参数计算规则执行一次SIMD指令模型的模型参数[0159]在另一种情况下,目标类型的SIMD指令中使用整块和尾块技术,步骤509可以包例中,利用整块和尾块的技术解决第N循环维度的长度大于与所述第二循环维度对应的第[0160]具体的,针对第二SIMD指令模型中的任一个SIMD指令模型的参数值生成过程,SIMD指令生成装置可以先通过表2示出的参数计算规则执行一次SIMD指令模型的模型参数一参数的取值上限,在确定存在超过取值上限的情况下,通过表4示出的参数计算规则对[0161]在另一种情况下,目标类型的SIMD指令中使用整块和尾块技术,步骤509可以包量计算式的第一循环维度对应的第一参数的取值约束。在第N循环维度的长度大于与所述第二循环维度对应的第一参数的取值上限且根据第一循环维度的长度和第一循环维度对[0162]具体的,针对第二SIMD指令模型中的任一个SIMD指令模型的参数值生成过程,SIMD指令生成装置可以先通过表2示出的参数计算规则执行一次SIMD指令模型的模型参数型包括的每个第二SIMD指令模型中,得到一个或多个第一SIMD指令,第一SIMD指令中的步骤510得到的是多个第一SIMD指令的情况下,生成多个第一SIMD指令中每个第一SIMD指令的代价函数的函数值。对于代价函数的详细介绍可以参阅上述图3对应实施例中的步骤长度从若干组第一SIMD指令模型的信息中选取出匹配的第二SIMD指令模型,大大提高了法的一种流程示意图,图6中以目的芯片为V芯片为例,用户提出的优化目标为V芯片执行[0175]V_SIMD_OP(dst0,src0,src1,repeat1,repeat2,dstStride0,1,srcStride0,1,R20的值为16,R1的值为8,R2的值为4,由于V芯片的硬件性能要求,repeat0固定取16,成第一SIMD指令模型的信息,第一SIMD指令模型的信息中包括4组第一SIMD指令模型的信的SIMD指令用于实现张量计算式的两个循环维度,则可以为3个第一参数中前两个第一参若目标种类的SIMD指令用于实现张量计算式的两个循环维度,也可以为3个第一参数中前[0185]本实施例中,本领域技术人员在得知用户对V芯片设置的优化目标为SIMD指令的目标为SIMD指令的执行总时长最小时,V芯片的目标种类的SIMD指令的代价函数并输入至[0188]其中,代表repeat"的数量,代表repeat的数量,代表repeacftt表示V芯片硬件处理SIMD指令的整块部分和SIMD指令的尾块部分的切换时间消耗,cv表示V芯片硬件调用一条SIMD指令的时间消耗,cf[0189]结合上述图3对应实施例中对各种字母的含义的定义,优化目标为SIMD指令的执模型中的一个SIMD指令模型。SIMD生成装置判断E0和E1是否满足表5中第一指示信息(2)对前述操作获取到了与第一张量计算式匹配的四个SIMD令模型包括的四种SIMD指令模型、待处理计算式的N个循环维度的长度以及第一张量计算式中的的线性坐标系数之后,生成第二SIMD指令模型包括的四种SIMD指令模型的模型参[0206]SIMD生成装置将获取到的N个循环维度的长度和第一张量计算式中的的线性坐标[0209]SIMD生成装置在生成第一参数和地址偏移量参数的参数值的过程中发现:在3维第2个循环维度对应的第一参数repeat2之间存在不整除的问题,也即在3维SIMD指令模型题,进而生成的3维SIMD指令模型的整块部分的参数值和SIMD指令的尾块部分的参数值如是SIMD生成装置可以自动获取到的,在SIMD生成装置通过步骤606生成与第一张量计算式[0217]为了对本申请实施例所带来的有益效果有更为直观的认识,以下结合表9和上述获取到图6对应实施例中的第一张量计算式匹配的目标类型的SIMD指令这一前提设定,进4[0220]结合上述图6对应的实施例可知,本申请实施例提供的方法中为了获取到与第一SIMD指令处理方法大大提高了SIMD指令[0221]在图1至图6所对应的实施例的基础上,为了更好的实施本申请实施例的上述方获取模块701,还用于获取多组第一单指令多数据SIMD指令模型的信息,其中,每组第一长度从若干组第一SIMD指令模型的信息中选取出匹配的第二SIMD指令模型,大大提高了第一指示信息用于指示一个第一SIMD指令模型的K个第一参数与一个张量计算式的至少一令模型的信息中包括多类SIMD指令模型的信息,不同种类的SIMD指令模型的信息对应的N隔最小、SIMD指令调度延迟最小、SIMD指令调度延迟最大、SIMD指令的执行总时长最小、SIMD指令中地址偏移量的计算开销最大和SIMD指令中地址偏移量的计算[0233]本申请实施例中,SIMD指令代价函数同时考虑了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论