【技术实现步骤摘要】
一种多数据处理方法和装置
本专利技术涉及数据处理领域,特别涉及一种多数据处理方法和装置。
技术介绍
为了提高数据运算效率,目前提出了一种SIMD(SingleInstructionMultipleData,单指令多数据)的数据处理方法。该数据处理方法将x组m个n位宽的数据打包到x个宽位变量中,每个宽位变量中装载m个n位宽的数据,各个宽位变量中相同位置的数据执行算术运算,并且宽位变量中不同位置的数据同时执行该算术运算,最后同时产生m个结果。但是,m个结果会出现溢出的问题。为了解决结果溢出的问题,在执行算术运算前需要对数据进行特殊的编码处理,主要通过位域对齐和符号扩展的方法,将两个以上的数据编码为合成值,然后对合成值进行算术运算,从而避免结果溢出。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:特殊的编码处理也需要时间,在溢出概率比较低的多数据处理场合,对所有数据进行特殊的编码处理使得运算效率比较低。
技术实现思路
为了在溢出概率较低的多数据处理场合提高运算效率,本专利技术实施例提供了一种多数据处理方法和装置。所述技术方案如下:一种多数据处理方法,所述方 ...
【技术保护点】
一种多数据处理方法,其特征在于,所述方法包括:将x组数据集分别装载到x个宽位变量中,每组数据集包括m个n位宽的数据;对x个宽位变量执行单指令多数据SIMD运算,得到第一运算结果;判断第一运算结果是否溢出;当第一运算结果没有溢出时,采用SIMD运算的第一运算结果;当第一运算结果溢出时,丢弃SIMD运算的第一运算结果,对所述x组数据集执行标准指令运算,得到m个第二运算结果,采用标准指令运算的m个第二运算结果。
【技术特征摘要】
1.一种多数据处理方法,其特征在于,所述方法包括:将x组数据集分别装载到x个宽位变量中,每组数据集包括m个n位宽的数据;对x个宽位变量执行单指令多数据SIMD运算,得到第一运算结果,所述第一运算结果包括m个第一运算子结果;设置一个用于收集溢出信息的溢出标志变量,并设置一个用于检测各个第一运算子结果的最高位是否为1的掩码变量;初始化所述溢出标志变量为0,并初始化所述掩码变量中与各个第一运算子结果的最高位对应的位为1;将每一组第一运算结果和所述溢出标志变量做逻辑或运算,并在每一次逻辑或运算后将每一次的逻辑或运算结果重新赋值给所述溢出标志变量,得到第一溢出标志变量;将所述第一溢出标志变量和所述掩码变量做逻辑与运算,若逻辑与运算结果不为0,则第一运算结果溢出,若逻辑与运算结果为0,则第一运算结果没有溢出;当第一运算结果没有溢出时,采用SIMD运算的第一运算结果;当第一运算结果溢出时,丢弃SIMD运算的第一运算结果,对所述x组数据集执行标准指令运算,得到m个第二运算结果,采用标准指令运算的m个第二运算结果,其中,所述标准指令运算包括将各组数据集中相同位置的数据分别装载到x个第二宽位变量中并对x个第二宽位变量执行算术运算。2.根据权利要求1所述的方法,其特征在于,所述对x个宽位变量执行单指令多数据SIMD运算,具体包括:对各个宽位变量中相同位置的数据执行算术运算,并且宽位变量中不同位置的数据同时执行该算术运算,同时产生m个第一运算子结果,m个第一运算子结果组成第一运算结果。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:如果各个第一运算子结果的最高位都为0,确定该第一运算结果没有溢出;如果各个第一运算子结果的最高位有至少一个为1,确定该第一运算结果溢出。4.一种多数据处理装置,...
【专利技术属性】
技术研发人员:邵伟,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。