【技术实现步骤摘要】
一种用于执行向量内积运算的装置和方法
本公开涉及一种向量内积运算装置及方法,用于根据向量内积运算指令高效灵活地执行向量内积,能够很好地解决当前计算机领域越来越多的算法包含大量向量内积的问题。
技术介绍
向量内积(dotproduct;scalarproduct,也称为点积)是接受在实数R上的两个向量并返回一个实数值标量的二元运算。它是欧几里得空间的标准内积。在数学运算领域,两个向量a=[a1,a2,…,an]和b=[b1,b2,…,bn]的内积定义为:a·b=a1b1+a2b2+……+anbn使用矩阵乘法并把(纵列)向量当作n×1矩阵,点积还可以写为:a·b=a^T*b其中,a^T表示矩阵a的转置。在已有的计算机领域应用中,与向量内积运算相关的应用十分普遍。以目前的热门应用领域人工智能中的主流算法机器学习算法为例,几乎所有已有的经典算法中都含有大量的向量内积。在现有技术中,一种进行向量内积的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行向量内积。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行向量内积时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行向量内积。然而,上述方案中,GPU片上缓存太小,在进行大规模向量内积时需要不断进行片外数据搬运 ...
【技术保护点】
1.一种向量内积运算装置,包括:/n存储单元,用于存储向量;/n向量内积运算单元,用于/n获取向量内积运算指令,所述向量内积运算指令包括操作码和操作域,所述操作域用于指示该向量内积运算指令的数据信息,/n根据所述数据信息在所述存储单元中获取向量,/n根据获取的向量进行向量内积运算,得到向量内积运算结果。/n
【技术特征摘要】
1.一种向量内积运算装置,包括:
存储单元,用于存储向量;
向量内积运算单元,用于
获取向量内积运算指令,所述向量内积运算指令包括操作码和操作域,所述操作域用于指示该向量内积运算指令的数据信息,
根据所述数据信息在所述存储单元中获取向量,
根据获取的向量进行向量内积运算,得到向量内积运算结果。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
寄存器单元,用于存储向量地址和/或向量长度;
所述操作域包括立即数或寄存器号;
所述根据数据信息在所述存储单元中获取向量,包括:
根据所述寄存器号,在所述寄存器单元中获取所述向量地址和所述向量长度,根据所述向量地址和所述向量长度在所述存储单元中获取所述向量地址存放的长度为所述向量长度的向量。
3.根据权利要求1所述的装置,其特征在于,
所述数据信息包括向量地址和向量长度;其中,所述向量地址为向量在所述存储单元中存储的地址,
所述根据所述数据信息在所述存储单元中获取向量,包括
根据所述向量地址和所述向量长度,在所述存储单元中获取所述向量地址存放的长度为所述向量长度的向量。
4.如权利要求1所述的装置,其特征在于,
所述向量内积运算指令包括一操作码和五个操作域,所述五个操作域分别对应第一个向量的起始地址、第一个向量的长度、第二个向量的起始地址、第二向量的长度和输出结果。
5.根据权利要求1-4中任一项所述的装置,其特征在于,所述装置还包括:
依赖关系处理单元,用于判断所述向量内积运算指令与之前指令是否存在依赖关系,以决定是否立即将所述向量内积运算指令发送至所述向量内积运算单元中执行。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
指令缓存单元,用于存储待执行的向量内积运算指令;和/或
指令处理单元,用于从所述指令缓存单元获取向量内积运算指令,并对所述向量内积运算指令进行处理后,提供给所述向量内积运算单元。
7.根据权利要求6所述的装置,其特征在于,所述指令缓存单元包括:
重排序缓存,用于在一条指令在执行过程中,也被缓存在所述重排序缓存中,当一条指令执行完之后,如果所述指令也是所述重排序缓存中未被提交的指令中最早的一条指令,则所述指令将被提交。
8.根据权利要求6所述的装置,其特征在于,所述指令处理单元包括:
取指模块,用于从所述指令缓存单元中获取所述向量内积运算指令;
译码模块,用于对获取的向量内积运算指令进行译码;
指令队列,用于对译码后的向量内积运...
【专利技术属性】
技术研发人员:支天,郭崎,刘少礼,陈天石,陈云霁,
申请(专利权)人:中科寒武纪科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。