【技术实现步骤摘要】
实行16位浮点矩阵点积指令的系统和方法
本申请是2019年10月9日提交的优先权日为2018年11月9日、申请号为201910953678.4、题为“实行16位浮点矩阵点积指令的系统和方法”的专利技术专利申请的分案申请。
[0001]本专利技术的领域一般涉及计算机处理器架构,以及更具体地,涉及用于实行16位浮点矩阵点积指令的系统和方法。
技术介绍
[0002]矩阵在许多计算任务中越来越重要,该计算任务诸如机器学习和其他批量数据处理。深度学习是一类机器学习算法。深度学习架构(诸如深度神经网络)已经被应用于包括计算机视觉、语音识别、自然语言处理、音频识别、社交网络过滤、机器翻译、生物信息学和药物设计的领域。
[0003]推理和训练是被用于深度学习的两种工具,它们趋向于低精度算术。最大化深度学习算法和计算的吞吐量可以帮助满足深度学习处理器的需求,例如,在数据中心中实行深度学习的那些处理器。
[0004]矩阵
‑
矩阵乘法(又名GEMM或通用矩阵乘法)是现代处理器上常见的计算繁重的运算。用于矩阵乘法(例如,GEMM)的特殊硬件是用于改善某些应用(诸如深度学习)的峰值计算(和能量效率)的好选项。
[0005]只要输出元素具有足够的位(即,多于输入),这些应用中的一些(包括深度学习)可以对具有相对较少位的输入数据元素进行操作而不会损失精确度。
附图说明
[0006]作为示例而非限制在附图的各图中图示了本专利技术,在附图中,相同的附图标记指示相似的元素,并且在附图中: ...
【技术保护点】
【技术特征摘要】
1.一种处理单元,包括:获取电路,用于获取指令;解码电路,用于对所述指令解码,所述指令具有操作码、第一字段、第二字段和第三字段,所述第一字段用于指定与具有M行乘N列的32位单精度浮点数据元素的第一矩阵对应的多个数据元素的第一存储位置,所述第二字段用于指定与具有M行乘K列的、具有bfloat16格式的16位浮点数据元素的第二矩阵对应的多个数据元素的第二存储位置,所述第三字段用于指定与具有K行乘N列的、具有bfloat16格式的16位浮点数据元素的第三矩阵对应的多个数据元素的第三存储位置;以及执行电路,与所述解码电路耦合,所述执行电路用于针对所述第二矩阵的M行中的每个行m且针对所述第三矩阵的N列中的每个列n执行与所述指令对应的操作,以:从与所述第二矩阵的行m对应的K个16位浮点数据元素和与所述第三矩阵的列n对应的K个16位浮点数据元素生成点积;将所述点积与对应于所述第一矩阵的M行中的行m且对应于N列中的列n的32位单精度浮点数据元素累加,以生成结果32位单精度浮点数据元素;以及将所述结果32位单精度数据元素存储在所述第一存储位置的、与所述第一矩阵的行m和列n对应的位置中。2.如权利要求1所述的处理单元,进一步包括用于指定舍入模式的控制寄存器,其中,生成所述点积和累加所述点积各自都包括:无论由所述控制寄存器指定的所述舍入模式如何,都应用单个舍入模式。3.如权利要求2所述的处理单元,其中,所述处理单元由于所述指令将不咨询所述控制寄存器。4.如权利要求1至3中的任一项所述的处理单元,其中,所述处理单元由于所述指令将不更新控制寄存器。5.如权利要求1至4中的任一项所述的处理单元,其中,所述处理单元由于所述指令将不表示例外。6.如权利要求1至5中的任一项所述的处理单元,其中,所述执行电路用于执行与所述指令对应的操作,以将所述第二矩阵和所述第三矩阵的非正常值处理为零。7.如权利要求1至6中的任一项所述的处理单元,其中,所述执行电路用于执行与所述指令对应的操作,以将非正常值转储清除为零。8.如权利要求1至7中的任一项所述的处理单元,其中,所述第二矩阵的M行和所述第三矩阵的N列在数量上相等。9.如权利要求1至8中的任一项所述的处理单元,其中,所述第一存储位置、所述第二存储位置和所述第三存储位置在128位向量寄存器中。10.如权利要求1至9中的任一项所述的处理单元,其中,每个点积都是32位单精度浮点点积。11.如权利要求1至10中的任一项所述的处理单元,进一步包括:分支预测电路;寄存器重命名电路;以及调度器电路,用于调度经解码的指令以供执行。
12.如权利要求1至11中的任一项所述的处理单元,其中,所述处理单元是通用中央处理单元CPU核。13.如权利要求1至12中的任一项所述的处理单元,其中,所述处理单元是精简指令集计算RISC核。14.如权利要求2所述的处理单元,其中,所述单个舍入模式针对所述指令是固定的。15.一种片上系统SoC,所述SoC包括:存储器控制器;以及通...
【专利技术属性】
技术研发人员:AF海内克,R瓦伦丁,MJ查尼,R萨德,M阿德尔曼,Z斯珀伯,A格雷德斯坦,S鲁巴诺维奇,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。