CN109189715B - 可编程人工智能加速器执行单元及人工智能加速方法 - Google Patents

可编程人工智能加速器执行单元及人工智能加速方法 Download PDF

Info

Publication number
CN109189715B
CN109189715B CN201810939839.XA CN201810939839A CN109189715B CN 109189715 B CN109189715 B CN 109189715B CN 201810939839 A CN201810939839 A CN 201810939839A CN 109189715 B CN109189715 B CN 109189715B
Authority
CN
China
Prior art keywords
artificial intelligence
instruction
execution
accelerator
execution unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810939839.XA
Other languages
English (en)
Other versions
CN109189715A (zh
Inventor
张广飞
王虓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing suneng Technology Co.,Ltd.
Original Assignee
Beijing Suneng Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Suneng Technology Co ltd filed Critical Beijing Suneng Technology Co ltd
Priority to CN201810939839.XA priority Critical patent/CN109189715B/zh
Publication of CN109189715A publication Critical patent/CN109189715A/zh
Application granted granted Critical
Publication of CN109189715B publication Critical patent/CN109189715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

本发明实施例公开了一种可编程人工智能加速器执行单元及其人工智能加速方法,所述可编程人工智能加速器执行单元包括取指模块、译码模块和执行模块,能够执行人工智能加速器指令集编写的人工智能加速程序实现人工智能算法加速。本发明实施例实现了一款人工智能加速器能够高效适配多种人工智能算法,从而有效利用了硬件算力,节约了硬件成本。

Description

可编程人工智能加速器执行单元及人工智能加速方法
技术领域
本发明涉及人工智能(AI)应用领域,特别是涉及一种可编程人工智能加速器执行单元及人工智能加速方法。
背景技术
随着大数据、人工智能技术的快速发展,传统的中央处理器CPU的运算处理能力已经无法满足人工智能运算的处理需求,业内处理器厂商开始研发专用的人工智能加速器用于人工智能算法加速。
现有的人工智能加速器大多使用ASIC专用集成电路设计方法进行设计,根据这种方法设计的人工智能加速器通常用于特定的人工智能算法加速。然而,随着人工智能技术在各领域的普遍应用,作为人工智能技术基础的机器学习算法、尤其是深度学习算法也是多种多样。为了使得一种人工智能加速器能够支持多种人工智能算法的运算加速,现有的一种方案是从功能的角度提取人工智能算法的通用逻辑,通过硬件控制,使得多种人工智能算法可以在相同的硬件逻辑上运行,从而达到一款ASIC人工智能加速器可以实现对多种人工智能算法进行加速的目的。例如,可以将人工智能算法抽象为矩阵乘法(MatrixMultiply)、激活(Activation)和规范化/池化(Normalize/Pool)三种基本功能操作,结合硬件控制达到用一种人工智能加速器实现多种人工智能算法的目的。
但是,这种方法是从功能的角度对常用的人工智能算法进行抽象,而不同的人工智能算法对硬件的利用率不同,这种抽象方法必然会导致一部分硬件对一些人工智能算法是冗余的,而对其它人工智能算法却是不足的。此外,通过ASIC思路设计的人工智能加速器执行单元只能按照固定的流程执行人工智能算法。随着人工智能算法的不断研究,各种算法也在不断发展演进,当新的人工智能算法出现时,原有的人工智能加速器硬件已经无法高效适配新的算法加速,从而导致硬件的算力浪费和成本上升。
发明内容
为了解决上述问题,根据本发明的一方面,提出一种可编程人工智能加速器执行单元,包括:
取指模块,用于获取人工智能加速程序指令,并控制程序执行的流程;
译码模块,用于根据获取的指令的类型进行译码操作,生成程序执行需要的控制信息;
执行模块,用于根据译码生成的控制信息执行相应的运算操作,并输出执行结果。
在一些实施方式中,所述取指模块包括取指控制模块,用于根据配置寄存器的配置,开始运行基于人工智能加速器指令集编写的人工智能加速程序,控制人工智能加速程序指令的获取。
在一些实施方式中,所述取指模块包括指令表和表索引生成模块,表索引生成模块用于根据配置寄存器的配置和执行的程序地址,生成指令表索引,并按照指令表索引从指令表中获取需要执行的一组指令。
在一些实施方式中,所述取指控制模块还用于将所述获取的需要执行的一组指令发送给所述译码模块。
在一些实施方式中,所述译码模块包括分别对应不同指令类型的多个译码单元。
在一些实施方式中,所述译码模块用于将所述译码单元进行译码操作后获得的控制信息通过命令总线分别传输给所述执行模块。
在一些实施方式中,所述执行模块包括多个EU执行单元,所述EU执行单元从译码模块接收译码后的控制信息,对输入的多个操作数进行相应的指令操作运算,并输出运算结果。
在一些实施方式中,所述执行模块包括加法树操作执行单元,所述加法树操作执行单元用于对所述多个EU执行单元的运算结果进行相加操作,输出相加后的运算结果。
根据本发明的另一方面,提出一种基于可编程人工智能加速器的人工智能加速方法,包括:
步骤S21,获取人工智能加速程序指令,并控制程序执行的流程,所述人工智能加速程序基于人工智能加速器指令集编写;
步骤S22,根据获取的指令的类型进行译码操作,生成程序执行需要的控制信息;
步骤S23,根据译码生成的控制信息执行相应的运算操作,并输出执行结果。
在一些实施方式中,所述步骤S21包括:
步骤S211,开始运行基于人工智能加速器指令集编写的人工智能加速程序,控制人工智能加速程序指令的获取;
步骤S212,根据配置寄存器的配置和执行的程序地址,生成指令表索引;
步骤S213,根据生成的指令表索引从指令表获取需要执行的一组指令。
在一些实施方式中,所述步骤S22包括:
步骤S221,基于与获取的指令的类型对应的译码单元对指令进行译码操作,分别生成程序执行所需要的控制信息;
步骤S222,通过命令总线将生成的程序执行所需要的控制信息传输给相应的执行单元。
在一些实施方式中,所述步骤S23包括:
步骤S231,将执行运算操作所需的操作数据输入相应的执行单元进行运算,输出运算结果;
步骤S232,对各执行单元的运算结果进行加法树操作,输出相加后的运算结果。
本发明实施例提出的可编程人工智能加速器执行单元及其人工智能加速方法,通过可编程人工智能加速器执行单元执行人工智能加速器指令集编写的人工智能加速程序,通过细粒度的适配,使得一款人工智能加速器能够高效适配多种人工智能算法,从而有效利用了硬件算力,节约了硬件成本。
附图说明
图1是根据本发明一实施例的可编程人工智能加速器指令集的构建方法的流程示意图;
图2是根据本发明一实施例的EU执行单元的结构示意图;
图3是根据本发明一实施例的可编程人工智能加速器执行单元的结构示意图;
图4是根据本发明另一实施例的可编程人工智能加速器执行单元的结构示意图;
图5是根据本发明一实施例的基于可编程人工智能加速器的人工智能加速方法的流程示意图;
图6是根据本发明另一实施例的基于可编程人工智能加速器的人工智能加速方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1是根据本发明一实施例的可编程人工智能加速器指令集的构建方法的流程示意图。本发明实施例的可编程人工智能加速器指令集的构建方法包括以下步骤:
步骤S11,抽取不同人工智能算法的核心运算操作,定义为在人工智能加速器执行单元中执行的基本操作类型。
人工智能算法需要在人工智能加速器的EU执行单元中执行各种运算操作,从而完成算法的执行。本发明实施例通过对不同的人工智能算法进行分析和抽象,将各算法中的核心运算操作抽取出来,定义为人工智能加速器执行单元中执行的基本操作类型,具体包括:
1)加法操作OP_ADD
加法操作OP_ADD用于实现两个操作数的加法运算。
以两个操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该加法操作OP_ADD就相当于以下算式:
RESULT=OPA+OPB;
2)减法操作OP_SUB
减法操作OP_SUB用于实现两个操作数的减法运算。
以两个操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该减法操作OP_SUB就相当于以下算式:
RESULT=OPA-OPB;
3)乘法操作OP_MUL
乘法操作OP_MUL用于实现两个操作数的乘法运算。
以两个操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该乘法操作OP_MUL就相当于以下算式:
RESULT=OPA*OPB;
4)乘累加操作OP_MAC
乘累加操作OP_MAC用于实现两个操作数的乘积与另一操作数的累加运算。
以操作数OPA、OPB和OPD为例,假设运算结果用RESULT表示,那么该乘累加操作OP_MAC就相当于下面两个操作组合完成:
RESULT=OP_MUL(OPA,OPB);
OPD=OP_ADD(RE SULT,OPD);
5)最大值操作OP_MAX
最大值操作OP_MAX用于求两个操作数中的最大值MAX。
以操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该最大值操作OP_MAX就相当于下面算式组合完成:
RESULT=OP_SUB(OPA,OPB);
MAX=RESULT>0?OPA:OPB;
6)最小值操作OP_MIN
最小值操作OP_MIN用于求两个操作数中的最小值MIN。
以操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该最小值操作OP_MIN就相当于下面算式组合完成:
RESULT=OP_SUB(OPA,OPB);
MIN=RESULT<0?OPA:OPB;
7)逻辑与操作OP_AND
逻辑与操作OP_AND用于实现两个操作数的逻辑与操作。
以两个操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该逻辑与操作OP_AND就相当于以下算式:
RESULT=OPA&OPB;
8)逻辑或操作OP_OR
逻辑或操作OP_OR用于实现两个操作数的逻辑或操作。
以两个操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该逻辑或操作OP_OR就相当于以下算式:
RESULT=OPA|OPB;
9)逻辑异或操作OP_XOR
逻辑异或操作OP_XOR用于实现两个操作数的逻辑异或操作。
以两个操作数OPA和OPB为例,假设运算结果用RESULT表示,那么该逻辑异或操作OP_XOR就相当于以下算式:
RESULT=OPA^XOR;
10)移位操作OP_SHIFT
移位操作OP_SHIFT用于实现操作数的左移和右移运算。
以操作数OPA为例,假设运算结果用RESULT表示,那么该移位操作OP_SHIFT就相当于以下两个算式:
RESULT=OPA<<m;
RESULT=OPA>>m;
其中,m表示对操作数OPA进行左移和右移的位数。
11)出循环操作OP_CBZ
出循环操作OP_CBZ用于标识EU执行单元退出一个循环LOOP。
12)进循环操作OP_LOOP
进循环操作OP_LOOP用于标识EU执行单元进入一个循环LOOP。
13)加法树操作OP_ADDTREE
加法树操作OP_ADDTREE用于实现若干个数相加运算。
以若干个操作数OPA0,OPA1,…,OPAN为例,用算式表示如下:
RESULT=OPA0+OPA1+OPA2+…+OPAN。
步骤S12,定义人工智能加速器的执行单元所需要的操作数类型。
如图2所示,通常人工智能加速器中的一个EU执行单元包括两个或者若干个输入操作数(图中仅示出操作数OPA和OPB),一个或者若干个输出结果(图中仅示出一个运算结果RESULT),内部由若干个寄存器(图中仅示出SRC寄存器和DEST寄存器),用来保存操作数和执行结果。
如下表1所示,本发明实施例定义了4种EU操作数类型:
表1EU执行单元的操作数类型
操作数类型 功能描述
EU_OPA 标识从EU接口的OPA端口获得操作数
EU_OPB 标识从EU接口的OPB端口获得操作数
EU_SRC 标识从EU内部SRC寄存器获得操作数
EU_DEST 标识从EU内部DEST寄存器获得操作数
步骤S13,基于所述基本操作类型和操作数类型,构建面向人工智能算法的人工智能加速器指令集。
本发明实施例根据步骤S11中定义的人工智能加速器执行单元中执行的基本操作类型以及步骤S12中定义的操作数类型构建人工智能加速器指令集,如下表2所示:
表2人工智能加速器指令集
Figure BDA0001768136600000071
Figure BDA0001768136600000081
以表2中指令EU_ADD和EU_ADDD为例说明指令集命名的含义:
指令EU_ADD是一条OP_ADD操作类型的指令,hint标记值为2′b00,操作数OPA和OPB分别来自操作数类型EU_OPA和EU_OPB,执行结果保存在EU_DEST中。
同理,指令EU_ADDD也是一条OP_ADD操作类型的指令,hint标记值为2′b11,操作数OPA和OPB分别来自操作数类型EU_OPA和EU_DEST,执行结果保存在EU_DEST中。
根据上述指令集定义,以下举例说明如何基于上述指令集实现人工智能算法的核心运算。
1)卷积运算
卷积运算可以实现为以下指令步骤:
a)EU_LOOP
b)EU_MAC
c)EU_CBZ
d)EU_ADDD
上述指令步骤表示首先进入循环;然后执行乘累加运算;随后判断循环是否结束,如是则继续向下执行,如否则回到EU_LOOP继续执行;当循环结束后,对运算结果加偏移量。
2)最大池化(Max Pooling)
最大池化运算可以实现为以下指令步骤:
a)EU_LOOP
b)EU_MAXD
c)EU_CBZ
上述指令步骤表示首先进入循环;然后执行求最大值运算;随后判断循环是否结束,如是则继续向下执行,如否则回到EU_LOOP继续执行。
3)矩阵乘法(Matrix Multiply)
a)EU_LOOP
b)EU_MAC
c)EU_CBZ
上述指令步骤表示首先进入循环;然后执行乘累加运算;随后判断循环是否结束,如是则继续向下执行,如否则回到EU_LOOP继续执行。
本发明实施例通过抽象人工智能算法所需要的核心运算操作,构建面向人工智能算法的专用指令集,通过细粒度的适配,实现了一款人工智能加速器能够高效适配多种人工智能算法,从而有效利用了硬件算力,节约了硬件成本。
图3是根据本发明一实施例的可编程人工智能加速器执行单元的结构示意图。如图3所示,本发明实施例的可编程人工智能加速器执行单元包括以下功能模块:
取指模块11,用于获取人工智能加速程序指令,并控制程序执行的流程;
译码模块12,用于根据获取的指令的类型进行译码操作,生成程序执行需要的控制信息;
执行模块13,用于根据译码生成的控制信息执行相应的运算操作,并输出执行结果。
如图4所示,所述取指模块11包括取指控制模块110、表索引生成模块111、指令表112和配置寄存器113。取指控制模块110用于根据配置寄存器113的配置,开始运行基于人工智能加速器指令集编写的人工智能加速程序,控制人工智能加速程序指令的获取;表索引生成模块111根据配置寄存器113的配置和执行的程序地址,生成指令表索引,并按照指令表索引从指令表112中获取需要执行的一组指令。取指控制模块110还用于将获取的需要执行的一组指令发送给译码模块12。
译码模块12包括分别对应不同指令类型的多个译码单元,例如进出循环操作指令(LOOP/CBZ)译码单元、加法树操作指令(ADDTREE)译码单元,加法操作指令(ADD)译码单元,乘法操作指令(MUL)译码单元,移位操作指令(SHIFT)译码单元和逻辑运算操作指令(包含AND、OR、XOR等LOGIC逻辑操作)译码单元等。各指令类型的译码单元进行译码操作后获得的控制信息通过命令总线分别传输给执行模块13中相应的EU执行单元执行相应的操作。
执行模块13包括多个具体的EU执行单元以及加法树操作执行单元,EU执行单元从译码模块接收译码后的控制信息,对输入的操作数OPA和OPB进行相应的指令操作运算,并输出运算结果。加法树操作执行单元用于对各EU执行单元的运算结果进行相加操作,输出相加后的运算结果。
如图4所示,该可编程人工智能加速器运行一条指令,需要三个主要步骤:
首先由取指模块11的取指控制模块110开始,取指控制模块110根据配置寄存器113的内容,控制表索引生成模块111生成指令在指令表112中的索引,并从指令表112中将指令取出。
然后取指模块11将取出的指令送往译码模块12,译码模块12根据指令类型在相应的译码单元(LOOP/CBZ,ADDTREEE,ADD等)将指令信息解析出来,并通过命令总线送到执行模块13。
执行模块13根据命令总线上的信息,在EU执行单元上同时执行命令总线上指明的操作。若该指令需要加法树操作执行单元(ADDTREE)执行,则将EU执行单元的执行结果送往ADDTREE执行单元,否则EU执行单元的执行结果就是该指令的执行结果。
本发明实施例提出可编程人工智能加速器执行单元的基本结构和工作流程,能够保证高效执行面向人工智能算法的专用指令集,通过细粒度的适配,使得一款人工智能加速器能够高效适配多种人工智能算法。
图5是根据本发明一实施例的基于可编程人工智能加速器的人工智能加速方法的流程示意图。如图5所示,本发明实施例的基于可编程人工智能加速器的人工智能加速方法包括以下步骤:
步骤S21,获取人工智能加速程序指令,并控制程序执行的流程,所述人工智能加速程序基于人工智能加速器指令集编写;
步骤S22,根据获取的指令的类型进行译码操作,生成程序执行需要的控制信息;
步骤S23,根据译码生成的控制信息执行相应的运算操作,并输出执行结果。
图6是根据本发明另一实施例的基于可编程人工智能加速器的人工智能加速方法的流程示意图。如图6所示,在图5所示实施例基础上,上述步骤S21包括以下步骤:
步骤S211,开始运行基于人工智能加速器指令集编写的人工智能加速程序,控制人工智能加速程序指令的获取;
步骤S212,根据配置寄存器的配置和执行的程序地址,生成指令表索引;
步骤S213,根据生成的指令表索引从指令表获取需要执行的一组指令。
上述步骤S22包括以下步骤:
步骤S221,基于与获取的指令的类型对应的译码单元对指令进行译码操作,分别生成程序执行所需要的控制信息;
步骤S222,通过命令总线将生成的程序执行所需要的控制信息传输给相应的执行单元。
上述步骤S23包括以下步骤:
步骤S231,将执行运算操作所需的操作数据输入相应的执行单元进行运算,输出运算结果;
步骤S232,对各执行单元的运算结果进行加法树操作,输出相加后的运算结果。
本发明实施例提出的基于可编程人工智能加速器的人工智能加速方法,通过可编程人工智能加速器执行单元执行人工智能加速器指令集编写的人工智能加速程序,通过细粒度的适配,使得一款人工智能加速器能够高效适配多种人工智能算法,从而有效利用了硬件算力,节约了硬件成本。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种可编程人工智能加速器执行单元,其特征在于,包括:
取指模块,用于获取人工智能加速程序指令,并控制程序执行的流程;
译码模块,用于根据获取的指令的类型进行译码操作,生成程序执行需要的控制信息;
执行模块,用于根据译码生成的控制信息执行相应的运算操作,并输出执行结果;
其中,所述取指模块包括取指控制模块,用于根据配置寄存器的配置,开始运行基于人工智能加速器指令集编写的人工智能加速程序,控制人工智能加速程序指令的获取,
其中,所述人工智能加速器指令集的构建方法,包括:
抽取不同人工智能算法的核心运算操作,定义为在人工智能加速器执行单元中执行的基本操作类型;
定义所述人工智能加速器执行单元所需要的操作数类型;以及
基于所述基本操作类型和所述操作数类型,构建面向所述人工智能算法的人工智能加速器指令集;
其中,所述获取人工智能加速程序指令的方法,包括:
开始运行基于人工智能加速器指令集编写的人工智能加速程序,控制人工智能加速程序指令的获取;
根据配置寄存器的配置和执行的程序地址,生成指令表索引;
根据生成的指令表索引从指令表获取需要执行的一组指令。
2.根据权利要求1所述的可编程人工智能加速器执行单元,其特征在于,所述取指模块包括指令表和表索引生成模块,表索引生成模块用于根据配置寄存器的配置和执行的程序地址,生成指令表索引,并按照指令表索引从指令表中获取需要执行的一组指令。
3.根据权利要求2所述的可编程人工智能加速器执行单元,其特征在于,所述取指控制模块还用于将所述获取的需要执行的一组指令发送给所述译码模块。
4.根据权利要求3所述的可编程人工智能加速器执行单元,其特征在于,所述译码模块包括分别对应不同指令类型的多个译码单元。
5.根据权利要求4所述的可编程人工智能加速器执行单元,其特征在于,所述译码模块用于将所述译码单元进行译码操作后获得的控制信息通过命令总线分别传输给所述执行模块。
6.根据权利要求1所述的可编程人工智能加速器执行单元,其特征在于,所述执行模块包括多个EU执行单元,所述EU执行单元从译码模块接收译码后的控制信息,对输入的多个操作数进行相应的指令操作运算,并输出运算结果。
7.根据权利要求6所述的可编程人工智能加速器执行单元,其特征在于,所述执行模块包括加法树操作执行单元,所述加法树操作执行单元用于对所述多个EU执行单元的运算结果进行相加操作,输出相加后的运算结果。
8.一种基于可编程人工智能加速器的人工智能加速方法,其特征在于,包括:
步骤S21,获取人工智能加速程序指令,并控制程序执行的流程,所述人工智能加速程序基于人工智能加速器指令集编写;
步骤S22,根据获取的指令的类型进行译码操作,生成程序执行需要的控制信息;
步骤S23,根据译码生成的控制信息执行相应的运算操作,并输出执行结果;
其中,所述人工智能加速器指令集的构建方法,包括:
抽取不同人工智能算法的核心运算操作,定义为在人工智能加速器执行单元中执行的基本操作类型;
定义所述人工智能加速器执行单元所需要的操作数类型;以及
基于所述基本操作类型和所述操作数类型,构建面向所述人工智能算法的人工智能加速器指令集;
其中,所述获取人工智能加速程序指令的方法包括:
开始运行基于人工智能加速器指令集编写的人工智能加速程序,控制人工智能加速程序指令的获取;
根据配置寄存器的配置和执行的程序地址,生成指令表索引;
根据生成的指令表索引从指令表获取需要执行的一组指令。
9.根据权利要求8所述的人工智能加速方法,其特征在于,所述步骤S22包括:
步骤S221,基于与获取的指令的类型对应的译码单元对指令进行译码操作,分别生成程序执行所需要的控制信息;
步骤S222,通过命令总线将生成的程序执行所需要的控制信息传输给相应的执行单元。
10.根据权利要求9所述的人工智能加速方法,其特征在于,所述步骤S23包括:
步骤S231,将执行运算操作所需的操作数据输入相应的执行单元进行运算,输出运算结果;
步骤S232,对各执行单元的运算结果进行加法树操作,输出相加后的运算结果。
CN201810939839.XA 2018-08-16 2018-08-16 可编程人工智能加速器执行单元及人工智能加速方法 Active CN109189715B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810939839.XA CN109189715B (zh) 2018-08-16 2018-08-16 可编程人工智能加速器执行单元及人工智能加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810939839.XA CN109189715B (zh) 2018-08-16 2018-08-16 可编程人工智能加速器执行单元及人工智能加速方法

Publications (2)

Publication Number Publication Date
CN109189715A CN109189715A (zh) 2019-01-11
CN109189715B true CN109189715B (zh) 2022-03-15

Family

ID=64918667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810939839.XA Active CN109189715B (zh) 2018-08-16 2018-08-16 可编程人工智能加速器执行单元及人工智能加速方法

Country Status (1)

Country Link
CN (1) CN109189715B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003988A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于执行卷积运算的存储设备和方法
CN107239829A (zh) * 2016-08-12 2017-10-10 北京深鉴科技有限公司 一种优化人工神经网络的方法
CN108153686A (zh) * 2018-02-05 2018-06-12 中国铁道科学研究院 多接口cpu模块
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR900008242Y1 (ko) * 1987-12-31 1990-09-10 삼성전자 주식회사 16비트/32비트 산술 연산기 자동 선택회로
US9417754B2 (en) * 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
CN102270111B (zh) * 2011-08-11 2014-01-01 中国科学院声学研究所 一种指令译码方法和指令译码装置
US20130311753A1 (en) * 2012-05-19 2013-11-21 Venu Kandadai Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations
CN106598914A (zh) * 2015-10-15 2017-04-26 北京国双科技有限公司 数据处理的方法和装置
CN106610816B (zh) * 2016-12-29 2018-10-30 山东师范大学 一种risc-cpu中指令集之间冲突的规避方法及系统
CN109284822B (zh) * 2017-07-20 2021-09-21 上海寒武纪信息科技有限公司 一种神经网络运算装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003988A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于执行卷积运算的存储设备和方法
CN107239829A (zh) * 2016-08-12 2017-10-10 北京深鉴科技有限公司 一种优化人工神经网络的方法
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质
CN108153686A (zh) * 2018-02-05 2018-06-12 中国铁道科学研究院 多接口cpu模块

Also Published As

Publication number Publication date
CN109189715A (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
US11531540B2 (en) Processing apparatus and processing method with dynamically configurable operation bit width
CN110689125A (zh) 计算装置
CN1983235B (zh) 设置向量屏蔽的方法、设备、系统和处理器
CN117349584A (zh) 实行16位浮点矩阵点积指令的系统和方法
CN107315717B (zh) 一种用于执行向量四则运算的装置和方法
CN110147249B (zh) 一种网络模型的计算方法及装置
US20100205585A1 (en) Fast vector masking algorithm for conditional data selection in simd architectures
US20200334042A1 (en) Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations
CN109189475B (zh) 可编程人工智能加速器指令集的构建方法
JP2014096174A (ja) 範囲検出を行うための命令及びロジック
CN111124495B (zh) 一种数据处理方法、解码电路及处理器
CN112306660A (zh) 一种基于risc-v协处理器的数据处理方法及系统
Wang et al. Customized instruction on risc-v for winograd-based convolution acceleration
CN109189715B (zh) 可编程人工智能加速器执行单元及人工智能加速方法
CN112051981B (zh) 一种数据流水线计算路径结构及单线程数据流水线系统
CN113220306A (zh) 操作执行方法、装置和电子设备
CN115600664B (zh) 算子处理方法、电子设备及存储介质
Bira et al. Energy-efficient computation of l1 and l2 norms on a FPGA SIMD accelerator, with applications to visual search
CN115576606A (zh) 实现矩阵转置乘的方法、协处理器、服务器及存储介质
CN112799724B (zh) 一种稳定控制装置策略表解析计算方法及装置
CN111949317B (zh) 指令处理方法、装置及相关产品
Huang et al. Efficient multimedia coprocessor with enhanced SIMD engines for exploiting ILP and DLP
CN118012505A (zh) 人工智能处理器、集成电路芯片、板卡、电子设备
CA3225836A1 (en) Apparatus and method for energy-efficient and accelerated processing of an arithmetic operation
CN111930672B (zh) 异构智能处理器及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190418

Address after: 100192 2nd Floor, Building 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing

Applicant after: BEIJING BITMAIN TECHNOLOGY CO., LTD.

Address before: 100192 No.25 Building, No.1 Hospital, Baosheng South Road, Haidian District, Beijing

Applicant before: Feng Feng Technology (Beijing) Co., Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210813

Address after: 100192 Building No. 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing, No. 301

Applicant after: SUANFENG TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 100192 2nd Floor, Building 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing

Applicant before: BITMAIN TECHNOLOGIES Inc.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220301

Address after: 100176 901, floor 9, building 8, courtyard 8, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone)

Applicant after: Beijing suneng Technology Co.,Ltd.

Address before: 100192 Building No. 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing, No. 301

Applicant before: SUANFENG TECHNOLOGY (BEIJING) CO.,LTD.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant