本技术涉及智能芯片检测领域,具体而言,涉及一种人工智能芯片检测计算方法。
背景技术:
1、现有技术中,已有的人工智能芯片方案主要分为两类,一类是专门针对人工神经网络的加速处理器,如英伟达的图形处理器、谷歌的谷歌张量处理器等;另一类是通用处理器,如电脑的中央处理器(cpu)、可编程阵列逻辑(fpga)等,通过软件实现人工智能计算。
2、这些芯片方案在不同场景下有其优劣势,但是对于调度的问题,需要在软硬件结合的设计上做更多的优化和创新。传统的人工神经网络处理器中,面临着算力不足及功耗过大等问题,严重影响人工智能芯片在更多场景中的普及和使用。因此,如何进一步提升人工智能芯片计算能力是要解决的重要挑战。
技术实现思路
1、本技术实施例的目的在于提供一种人工智能芯片检测计算方法,用以实现提高检测计算效率的技术效果。
2、本技术实施例提供了一种人工智能芯片检测计算方法,包括:s1,在计算阵列内设置多向冗余跳过模块和多个计算单元线,所述多向冗余跳过模块设置在所述计算单元线顶层,所述多向冗余跳过模块包括典型数据存储单元和计数模块,所述计算单元线包含多个计算单元,所述典型数据存储单元内预存储有一个或多个典型输入值、典型输入值对应的输入操作及典型输出值;s2,将第一输入数据输入到所述多向冗余跳过模块,所述第一输入数据包含一个或多个第一输入值,对应的第一输入操作及第一输出值,所述计数模块统计第一输入值及对应的第一输入操作和第一输出值出现频次,并保留高出现频次的第一输入值及对应的第一输入操作和第一输出值;s3,第一输入值包括第一参数和第二参数,当第一输入操作为乘法运算时,若第一参数为零或第二参数为零,则将第一输出值设为零并作为所述计算单元第一输出值;当第一输入操作为加法运算时,若第一参数和第二参数皆为零,则将第一输出值设为零作为所述计算单元第二输出值;当第一输入操作为平方运算时,若所述第一输入值为零,则将第一输出值设为零作为所述计算单元第三输出值;s4,所述多向冗余跳过模块将第一输入值及对应的第一输入操作与典型输入值及对应的输入操作比对,若比对一致则将典型输出值作为所述计算单元第四输出值;s5,所述多向冗余跳过模块将第一输入值及对应的第一输入操作与典型输入值及对应的输入操作比对,当第一输入操作为乘法运算时,若第一输入值为典型输入值的第一倍数,则将第二典型输出值调整为典型输出值的第一倍数,所述第二典型输出值作为所述计算单元第五输出值;s6,所述多向冗余跳过模块将第一输入值与典型输入值比对,若第一输入值与典型输入值的差值低于预设阈值,且第一输入操作与典型输入值对应的输入操作一致,则将典型输出值作为所述计算单元第六输出值;s7,重复执行步骤s2~步骤s6直至第一输入数据计算完成。
3、在上述实现过程中,在计算阵列内设置多向冗余跳过模块和多个计算单元线,多向冗余跳过模块设置在计算单元线顶层,多向冗余跳过模块包括典型数据存储单元和计数模块,计算单元线包含多个计算单元,典型数据存储单元内预存储有一个或多个典型输入值、典型输入值对应的输入操作及典型输出值,典型输出值是在典型输入值执行对应的输入操作后得到的,输入操作可以为乘法运算、加法运算、除法运算、平方运算等。将第一输入数据输入到多向冗余跳过模块,第一输入数据包含一个或多个第一输入值,对应的第一输入操作及第一输出值,计数模块统计第一输入值及对应的第一输入操作和第一输出值出现频次,计数模块内预设有频次阈值,频次阈值的设立方式为:某数据出现频次占总数据出现频次的百分比,以保留高于频次阈值的第一输入值及对应的第一输入操作和第一输出值,出现频次较高的第一输入数据可以作为典型数据存储到典型数据存储单元。第一输入值包括第一参数和第二参数,第一参数和第二参数执行第一输入操作得到第一输出值,当第一输入操作为乘法运算时,若第一参数为零或第二参数为零,则将第一输出值设为零并作为计算单元第一输出值,此时计算单元不工作;当第一输入操作为加法运算时,若第一参数和第二参数皆为零,则将第一输出值设为零作为计算单元第二输出值,此时计算单元不工作;当第一输入操作为平方运算时,若第一输入值为零,则将第一输出值设为零作为计算单元第三输出值,此时计算单元不工作,多向冗余跳过模块将第一输入值及对应的第一输入操作与典型输入值及对应的输入操作比对,若比对一致证明第一输出值和典型输出值相同,则将典型输出值作为计算单元第四输出值,此时计算单元不工作;s5,多向冗余跳过模块将第一输入值及对应的第一输入操作与典型输入值及对应的输入操作比对,当第一输入操作为乘法运算时,若第一输入值为典型输入值的第一倍数,则将第二典型输出值调整为典型输出值的第一倍数,第二典型输出值作为计算单元第五输出值,此时计算单元不工作,例如第一输入值为典型输入值的两倍,那么第一输出值也应为典型输出值的两倍,只需将典型输出值扩大为原来的两倍作为计算单元第五输出值;s6,多向冗余跳过模块将第一输入值与典型输入值比对,若第一输入值与典型输入值的差值低于预设阈值,且第一输入操作与典型输入值对应的输入操作一致,则将典型输出值作为计算单元第六输出值,此时计算单元不工作,第一输入值与典型输入值有时并不完全一样,例如典型输入值及执行的操作为12345+12345,第一输入值及执行的操作为12344+12344,两者相似计算的结果也相似,可以调用典型输出值即12345+12345的计算结果,作为计算单元第六输出值,阈值的设定方式可以为:第一输入值与典型输入值的差值小于典型输入值的1%;重复执行步骤s2~步骤s6直至第一输入数据计算完成。如果以上皆不符合,计算单元则按常规方式计算并输出。通过以搜索匹配的方式代替常规的计算方式,降低了计算单元的计算资源及功耗的功耗,提高计算单元的工作效率。
4、在一种可能的实现方式中,所述典型数据存储单元具有第一比特位宽,所述第一比特位宽为芯片最大数据位宽三倍加上第一计数位宽,所述第一计数位宽用于存放第一输入数据出现频次。
5、在上述实现过程中,最大数据位宽由芯片本身计算性能决定,第一计数位宽统计当前存储各数据出现的频次,之所以需要芯片最大数据位宽的三倍,是由于其需要存储两个输入值和一个输出值,典型数据存储单元同步存储两个进行操作的输入值,提高典型数据存储单元的存储效率。
6、在一种可能的实现过程中,所述第一比特位宽包括第一输入数据位宽、第二输入数据位宽和输出数据位宽,所述输出数据位宽高于或等于所述第一输入数据位宽和所述第二输入数据位宽。
7、在上述实现过程中,第一比特位宽包括第一输入数据位宽、第二输入数据位宽和输出数据位宽,输出数据位宽高于或等于第一输入数据位宽和第二输入数据位宽。之所以输出数据位宽高于或等于输入位宽,是为了确保降低计算过程中的误差损耗,顾保留了更多的位宽信息,以确保最终的计算精度。
8、在一种可能的实现过程中,当所述典型数据存储单元存储数据达到上限时,所述典型数据存储单元剔除存储次数较少的第一输入数据。
9、在上述实现过程中,当典型数据存储单元存储数据达到上限时,可以主动剔除存储次数较少的第一输入数据,以留出存储空间存储频次更高的第一输入数据。