CN113918233A - 一种ai芯片控制方法、电子设备及ai芯片 - Google Patents

一种ai芯片控制方法、电子设备及ai芯片 Download PDF

Info

Publication number
CN113918233A
CN113918233A CN202111067777.6A CN202111067777A CN113918233A CN 113918233 A CN113918233 A CN 113918233A CN 202111067777 A CN202111067777 A CN 202111067777A CN 113918233 A CN113918233 A CN 113918233A
Authority
CN
China
Prior art keywords
information
chip
data
register configuration
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.)
Pending
Application number
CN202111067777.6A
Other languages
English (en)
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.)
Shandong Industry Research Kunyun Artificial Intelligence Research Institute Co ltd
Original Assignee
Shandong Industry Research Kunyun Artificial Intelligence Research Institute 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 Shandong Industry Research Kunyun Artificial Intelligence Research Institute Co ltd filed Critical Shandong Industry Research Kunyun Artificial Intelligence Research Institute Co ltd
Priority to CN202111067777.6A priority Critical patent/CN113918233A/zh
Publication of CN113918233A publication Critical patent/CN113918233A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请适用于计算机技术领域,提供了一种AI芯片控制方法、电子设备及AI芯片。该方法包括:根据待计算任务的参数信息及AI芯片的架构参数信息,生成寄存器配置信息,AI芯片用于执行待计算任务;将寄存器配置信息写入AI芯片,以使AI芯片根据寄存器配置信息进行运算,能够将AI芯片运行过程简单化,从而提高运算效率,并且AI芯片根据寄存器配置信息进行运算的控制方法,能够解决AI芯片时序收敛困难的问题,从而提高工作频率;及使得AI芯片完成当前运算后能够立即切换至下一个运算,从而提高AI芯片的运行性能。

Description

一种AI芯片控制方法、电子设备及AI芯片
技术领域
本申请属于计算机技术领域,尤其涉及一种AI芯片控制方法、电子设备及AI芯片。
背景技术
随着深度学习算法能力的提高,深度学习算法的应用越来越广泛,进而催生了大量AI芯片,用于对深度学习算法进行硬件加速。当前的AI芯片采用的是指令集的架构,运行方式是指令控制方式,工作流程包括取指、译码、执行、写回寄存器或存储器等操作。
而通过指令方式控制AI芯片运行,会使得AI芯片运行过程复杂,影响运算效率,及使得AI芯片时序收敛困难,工作频率受制约。
发明内容
本申请实施例提供了一种AI芯片控制方法、电子设备及AI芯片,可以解决AI芯片运行过程复杂,运算效率受限,AI芯片时序收敛困难,工作频率受制约的问题。
第一方面,本申请实施例提供了一种AI芯片控制方法,包括:
获取待计算任务的参数信息以及AI芯片的架构参数信息;
根据所述待计算任务的参数信息及所述AI芯片的架构参数信息,生成寄存器配置信息,所述AI芯片用于执行所述待计算任务;
将所述寄存器配置信息写入所述AI芯片,以使所述AI芯片根据所述寄存器配置信息进行运算。
进一步的,所述待计算任务的参数信息包括数据信息、算法信息及对应所述算法信息的算法类型,所述AI芯片的架构参数信息包括缓存单元信息及运算单元信息;
根据所述待计算任务的参数信息及所述AI芯片的架构参数信息,生成寄存器配置信息,包括:
根据所述数据信息及所述缓存单元信息,确定缓存任务;
根据所述算法类型及所述运算单元信息,确定所述AI芯片的运算模式及数据流路径,或,根据所述数据信息、所述算法类型及所述运算单元信息,确定所述AI芯片的运算模式及数据流路径;
根据输入信息及生成信息,生成寄存器配置信息,所述输入信息包括所述待计算任务的参数信息及所述AI芯片的架构参数信息,所述生成信息包括所述缓存任务、所述运算模式及所述数据流路径。
进一步的,所述数据信息包括数据量信息及数据类型;
根据所述数据信息及所述缓存单元信息确定缓存任务,包括:
根据所述数据量信息,计算总数据量;
根据所述总数据量及所述缓存单元信息判断是否分配缓存空间。
进一步的,所述运算单元信息包括运算并行度及运算类型;
根据所述算法类型及所述运算单元信息确定所述AI芯片的运算模式及数据流路径,包括:
根据算法类型、所述运算并行度及所述运算类型,确定所述运算模式及所述数据流路径。
进一步的,所述运算单元信息包括运算并行度及运算类型;
根据所述数据信息、所述算法类型及所述运算单元信息,确定所述AI芯片的运算模式及数据流路径,包括:
根据判断结果、所述算法类型、所述运算并行度及所述运算类型确定所述运算模式及所述数据流路径,所述判断结果为判断是否分配缓存单元的缓存空间的结果。
进一步的,所述AI芯片包括至少一个执行模块;
根据输入信息及生成信息,生成寄存器配置信息,包括:
根据所述运算模式及所述数据流路径,确定每个所述执行模块对应的所述输入信息及所述生成信息;
将所述输入信息及所述生成信息进行运算,得到对应所述执行模块的寄存器配置信息。
第二方面,本申请实施例提供了一种AI芯片控制方法,包括:
AI芯片包括至少一个执行模块,所述方法包括:
接收来自外部设备的寄存器配置信息;
根据所述寄存器配置信息,将每个所述执行模块进行初始化;
获取待处理数据,所述待处理数据存储于外部存储设备;
初始化后的所述执行模块对所述待处理数据进行运算,得到运算结果;
向所述外部设备或所述外部存储设备传输所述运算结果。
进一步的,所述执行模块包括缓存单元及计算单元;
根据所述寄存器配置信息,将每个所述执行模块进行数据流初始化,包括:
根据所述寄存器配置信息,确定每个所述缓存单元对应的寻址方式及读取次数;
根据所述寄存器配置信息,确定每个计算单元的数据流路径。
第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中或第二方面中任一项所述的方法。
第四方面,本申请实施例提供了一种AI芯片,包括至少一个执行模块,所述执行模块执行时实现如第二方面中任一项所述的方法。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例通过根据待计算任务的参数信息及AI芯片的架构参数信息,生成寄存器配置信息,AI芯片用于执行待计算任务;将寄存器配置信息写入AI芯片,以使AI芯片根据寄存器配置信息进行运算,能够将AI芯片运行过程简单化,从而提高运算效率,并且AI芯片根据寄存器配置信息进行运算的控制方法,能够解决AI芯片时序收敛困难的问题,从而提高工作频率;及使得AI芯片完成当前运算后能够立即切换至下一个运算,从而提高AI芯片的运行性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的AI芯片控制方法的流程示意图;
图2是本申请另一实施例提供的AI芯片控制方法的流程示意图;
图3是本申请实施例提供的电子设备的结构示意图;
图4是本申请实施例提供的AI芯片的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
当前的AI芯片的特点为计算并行度高、算力大、控制逻辑简单。大部分的AI芯片采用的是基于指令集的架构,这种架构的AI芯片的工作过程包括取指、译码、执行、写回寄存器或存储器等操作。具体的,AI芯片首先从存储器中读取指令,然后经过逻辑电路对指令进行译码,分析指令获取待执行的具体操作和待处理的数据,接着通过寄存器件待处理的数据传递给ALU(Arithmetic&logical Unit,算术逻辑单元)或AI专用计算单元进行运算,最后将运算的结果写回寄存器或者存储器中。
但是因为基于指令集的架构源于CPU体系结构,其设计初衷是保证CPU尽量实现通用性,让CPU能够完成任何计算任务,因此该架构关注的是控制逻辑的通用性。这与AI芯片的设计初衷是提供大算力、高并行度、控制逻辑简单,能够承接海量计算任务相冲突,使得采用指令集架构的AI芯片运行过程复杂,影响运算效率,及使得AI芯片时序收敛困难,工作频率受制约。
图1是本申请一实施例提供的AI芯片控制方法的流程示意图,作为示例而非限定,该方法应用于电子设备,示例的,电子设备包括主机或服务器。
如图1所示,该方法包括:
S101:获取待计算任务的参数信息以及AI芯片的架构参数信息。
示例的,用户输入AI芯片当前需运行的计算任务的参数信息及AI芯片的架构参数信息。电子设备获取待计算任务的参数信息及AI芯片的架构参数信息。
S102:根据待计算任务的参数信息及AI芯片的架构参数信息,生成寄存器配置信息,AI芯片用于执行待计算任务。
具体的,根据参数信息及架构参数信息,生成AI芯片能够解析的寄存器配置信息。
S103:将寄存器配置信息写入AI芯片,以使AI芯片根据寄存器配置信息进行运算。
示例的,电子设备通过PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)总线将寄存器配置信息写入AI芯片。AI芯片接收到该寄存器配置信息后进行解析,并直接根据寄存器配置信息进行运算,使得AI芯片无需经过取指令、译码及写回寄存器的步骤,从而提高了AI芯片的运算效率。
需说明的是,通过电子设备生成寄存器配置信息,与AI芯片运算分开,因此,寄存器配置信息可随时生成,同时也可随时将寄存器配置信息录入AI芯片中,当AI芯片完成当前计算任务时可立即执行下一个计算任务,能够提高运算效率。
本实施例通过根据待计算任务的参数信息及AI芯片的架构参数信息,生成寄存器配置信息,AI芯片用于执行待计算任务;将寄存器配置信息写入AI芯片,以使AI芯片根据寄存器配置信息进行运算,能够将AI芯片运行过程简单化,从而提高运算效率,并且AI芯片根据寄存器配置信息进行运算的控制方法,能够解决AI芯片时序收敛困难的问题,从而提高工作频率;及使得AI芯片完成当前运算后能够立即切换至下一个运算,从而提高AI芯片的运行性能。
在另一实施例中,待计算任务的参数信息包括数据信息、算法信息及对应算法信息的算法类型,AI芯片的架构参数信息包括缓存单元信息及运算单元信息。
其中,数据信息包括数据量信息、数据类型信息等,数据量信息包括输入数据的数据量信息、输出数据的数据量信息。示例的,数据量信息包括宽度、高度、通道数。
缓存单元信息包括AI芯片的片上缓存单元的容量信息、运算单元信息包括AI芯片的计算单元的运算并行度、AI芯片支持的运算类型等。相应的,AI芯片包括至少一个执行模块,执行模块包括缓存单元及计算单元。
需要说明的是,参数信息会根据算法类型相应增添类型信息,该类型信息预先与对应的算法类型建立对应关系。示例的,若算法类型包括convolution,则参数信息相应增添卷积核信息、卷积窗口移动步长、填充量信息。
以及,输入数据的数据量信息会根据数据类型相应增添大小信息。示例的,若数据类型包括coefficient、shortcut,则输入数据的数据量信息会增添coefficient的数据量信息、shortcut的数据量信息。
根据待计算任务的参数信息及AI芯片的架构参数信息,生成寄存器配置信息,包括:
首先,根据数据信息及缓存单元信息,确定缓存任务。
具体的,其一,根据数据信息,计算总数据量。
根据数据信息中每组数据量信息,计算对应的总数据量。示例的,根据每组输入数据的宽度、高度、通道数,计算对应的总数据量。根据每组输出数据的宽度、高度、通道数,计算对应的总数据量。
其二,根据总数据量及缓存单元信息判断是否分配缓存空间。
根据输入数据的总数据量与片上缓存单元的容量信息进行比较,若容量信息的值大于总数据量的值,则判断为分配缓存空间。该缓存空间为输入缓存空间,用于存储该输入数据对应的待处理数据,并获取对应的地址。若容量信息的值小于总数据量的值,则判断为不分配缓存空间,相应的,AI芯片进行运算时,获取到待处理数据后直接进行运算。
根据输出数据的总数据量与片上缓存单元的容量信息进行比较,若容量信息的值大于总数据量的值,则判断为分配缓存空间。该缓存空间为输出缓存空间,用于存储该输出数据的数据量。若容量信息的值小于总数据量的值,则判断为不分配缓存空间,相应的,AI芯片进行运算后,直接将运算结果输出至电子设备。
每组输入数据及输出数据都需进行判断,确定是否需分配缓存空间。
接着,根据算法类型及运算单元信息,确定AI芯片的运算模式及数据流路径;
具体的,根据算法类型、运算并行度及运算类型,确定运算模式及数据流路径。其中,在AI芯片设计时,已设计具体哪些算法类型,可基于运算并行度及运算类型确定运算模式及数据流路径。当获取到这些算法类型,可根据运算并行度及运算类型,以此确定运算模式及数据流路径。示例的,A、B算法类型是可基于运算并行度及运算类型确定运算模式及数据流路径的类型。待计算任务包含A、B算法类型,并且根据运算并行度及运算类型得到AI芯片支持同时运算A、B,则对应的运算模式为并行运算A、B,且分配第一计算单元用于运算A,第二计算单元用于运算B。以及相应的数据流路径为第一计算单元从存储有待处理数据的存储空间中获取数据,第一计算单元运算A后,将得到的运算结果输出至第二计算单元,第二计算单元运算B后,将得到的运算结果输出至电子设备,以此形成了连接关系。
或,根据数据信息、算法类型及运算单元信息,确定AI芯片的运算模式及数据流路径;
具体的,根据判断结果、算法类型、运算并行度及运算类型确定运算模式及数据流路径。其中,判断结果为判断是否分配缓存单元的缓存空间的结果。在AI芯片设计时,已设计具体哪些算法类型,可基于判断结果、运算并行度及运算类型确定运算模式及数据流路径。当获取到这些算法类型,可根据判断结果、运算并行度及运算类型,以此确定运算模式及数据流路径。示例的,C、D、E算法类型是根据判断结果、运算并行度及运算类型确定运算模式及数据流路径的类型。待计算任务包含C、D、E算法类型,基于运算并行度及运算类型得到AI芯片支持同时运算C、D、E,在此基础上根据判断结果确定运算模式及数据流路径。
若判断结果为分配缓存空间,则运算模式为依次计算C、D、E,分配第一计算单元用于运算C、第二计算单元用于运算D、第三计算单元用于运算E。相应的数据流路径为第一计算单元从存储有待处理数据的缓存空间中获取数据,即从输入缓存空间获取数据,第一计算单元运算C后,将得到的运算结果输出至输出缓存空间上,第二计算单元从输出缓存空间获取结果,并运算D,将得到的运算结果输出至输出缓存空间上,第三计算单元从第二缓存单元获取结果,并运算E,将得到的运算结果输出至电子设备,以此形成了连接关系。
若判断结果为不分配缓存空间,则运算模式为并行计算C、D、E,分配第一计算单元用于运算C、第二计算单元用于运算D、第三计算单元用于运算E,则对应的运算模式为并行运算C、D、E,分配第一计算单元运算C、第二计算单元运算D、第三计算单元运算E。相应的数据流路径为第一计算单元从存储有待处理数据的缓存空间中获取数据,第一计算单元运算C后,将得到的运算结果输出至第二计算单元上,第二计算单元运算D,将得到的运算结果输出至第三计算单元上,第三计算单元运算E,将得到的运算结果输出至电子设备,以此形成了连接关系。
接着,根据输入信息及生成信息,生成寄存器配置信息,输入信息包括待计算任务的参数信息及AI芯片的架构参数信息,生成信息包括缓存任务、运算模式及数据流路径。
具体的,根据运算模式及数据流路径,确定每个执行模块对应的输入信息及生成信息。
将对应的输入信息及生成信息进行运算,得到对应执行模块的寄存器配置信息。其中,运算是根据对应的公式进行运算,该公式在AI芯片设计时确定。
需要说明的是,生成的寄存器配置信息可以直接对其进行修改,即当需求变化时,可以直接修改生成的寄存器配置信息,能够方便AI芯片的运行和测试,并且寄存器配置信息的生成是在电子设备中实现,可以随时生成,不影响AI芯片的运行和测试。
图2是本申请一实施例提供的AI芯片控制方法的流程示意图。作为示例而非限定,该方法应用于AI芯片上,其中,AI芯片包括至少一个执行模块。
如图2所示,该方法包括:
S201:接收来自外部设备的寄存器配置信息。
S202:根据寄存器配置信息,将每个执行模块进行初始化。
具体的,AI芯片基于地址将寄存器配置信息分配给每个执行模块。该地址在AI芯片设计时确定。
S203:获取待处理数据,待处理数据存储于外部存储设备。
当AI芯片上的缓存单元无法存储待处理数据时,需存储到外部存储设备。示例的,该外部存储设备为DDR(双倍速率同步动态随机存储器)。
S204:初始化后的执行模块对待处理数据进行运算,得到运算结果。
具体的,初始化后的执行模块根据数据流对待处理数据进行运算。
S205:向外部设备或外部存储设备传输运算结果。
其中,外部设备为电子设备。示例的,电子设备为主机或服务器。
具体的,根据寄存器配置信息,将运算结果传输至外部设备。示例的,通过PCIE总线传输至外部设备,以完成计算任务整个处理流程。
或根据寄存器配置信息,传输至外部存储设备,因该运算结果作为下一个任务的待处理数据。
本实施例通过接收来自外部设备的寄存器配置信息;根据寄存器配置信息,将每个执行模块进行初始化;获取待处理数据,待处理数据存储于外部存储设备;初始化后的执行模块对待处理数据进行运算,得到运算结果;向外部设备或外部存储设备传输运算结果,能够将AI芯片运行简单化,从而提高运算效率,并且AI芯片根据寄存器配置信息进行运算,能够解决AI芯片时序收敛困难的问题,从而提高工作频率;及使得AI芯片完成当前运算后能够立即切换至下一个运算,从而提高AI芯片的运行性能。
在另一实施例中,执行模块包括缓存单元及计算单元;
根据寄存器配置信息,将每个执行模块进行初始化,包括:
首先,根据寄存器配置信息,确定每个缓存单元对应的寻址方式及读取次数。
具体的,缓存单元根据寄存器配置信息确定用于存储待处理数据的空间对应寻址方式及与之交互的计算单元,以便与计算单元进行数据交互。且确定读取缓存单元的次数。
相应的,运算时,缓存单元根据寻址方式读取待处理数据,然后输出至对应的计算单元。
根据寄存器配置信息,确定每个计算单元的数据流路径。
具体的,计算单元根据寄存器配置信息确定数据流路径及运算模式,以此确定待处理数据及运算过程中产生的中间数据在AI芯片中经过的单元,即确定数据从哪个单元输入进来,输出至哪个单元。
相应的,运算时,计算单元从对应单元接收数据,得到运算结果后,将运算结果输出至对应的单元中。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图3为本申请一实施例提供的电子设备的结构示意图。如图3所示,该实施例的电子设备3包括:至少一个处理器30(图3中仅示出一个)、存储器31以及存储在所述存储器31中并可在所述至少一个处理器30上运行的计算机程序32,所述处理器30执行所述计算机程序32时实现上述应用于主机或服务器的任意方法实施例中的步骤。
所述电子设备3可以是主机或服务器等计算设备。该电子设备3可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是电子设备3的举例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),该处理器30还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器31在一些实施例中可以是所述电子设备3的内部存储单元,例如电子设备3的硬盘或内存。所述存储器31在另一些实施例中也可以是所述电子设备3的外部存储设备,例如所述电子设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括所述电子设备3的内部存储单元也包括外部存储设备。所述存储器31用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图4是本申请实施例提供的AI芯片的结构示意图。如图4所示,该实施例的AI芯片4,包括至少一个计算单元40、由缓存单元组成的输入缓存空间41及由缓存单元组成的输出缓存空间42。
所述计算单元40执行时实现上述应用于AI芯片的计算单元的任意方法实施例中的步骤。所述缓存单元执行时实现上述应用于AI芯片的缓存单元的任意方法实施例中的步骤。
该AI芯片4可包括,但不仅限于,计算单元40,输入缓存空间41及输出缓存空间42。本领域技术人员可以理解,图4仅仅是电子设备4的举例,并不构成对电子设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种AI芯片控制方法,其特征在于,包括:
获取待计算任务的参数信息以及AI芯片的架构参数信息;
根据所述待计算任务的参数信息及所述AI芯片的架构参数信息,生成寄存器配置信息,所述AI芯片用于执行所述待计算任务;
将所述寄存器配置信息写入所述AI芯片,以使所述AI芯片根据所述寄存器配置信息进行运算。
2.如权利要求1所述的方法,其特征在于,所述待计算任务的参数信息包括数据信息、算法信息及对应所述算法信息的算法类型,所述AI芯片的架构参数信息包括缓存单元信息及运算单元信息;
根据所述待计算任务的参数信息及所述AI芯片的架构参数信息,生成寄存器配置信息,包括:
根据所述数据信息及所述缓存单元信息,确定缓存任务;
根据所述算法类型及所述运算单元信息,确定所述AI芯片的运算模式及数据流路径,或,根据所述数据信息、所述算法类型及所述运算单元信息,确定所述AI芯片的运算模式及数据流路径;
根据输入信息及生成信息,生成寄存器配置信息,所述输入信息包括所述待计算任务的参数信息及所述AI芯片的架构参数信息,所述生成信息包括所述缓存任务、所述运算模式及所述数据流路径。
3.如权利要求2所述的方法,其特征在于,所述数据信息包括数据量信息及数据类型;
根据所述数据信息及所述缓存单元信息确定缓存任务,包括:
根据所述数据量信息,计算总数据量;
根据所述总数据量及所述缓存单元信息判断是否分配缓存空间。
4.如权利要求2所述的方法,其特征在于,所述运算单元信息包括运算并行度及运算类型;
根据所述算法类型及所述运算单元信息确定所述AI芯片的运算模式及数据流路径,包括:
根据算法类型、所述运算并行度及所述运算类型,确定所述运算模式及所述数据流路径。
5.如权利要求3所述的方法,其特征在于,所述运算单元信息包括运算并行度及运算类型;
根据所述数据信息、所述算法类型及所述运算单元信息,确定所述AI芯片的运算模式及数据流路径,包括:
根据判断结果、所述算法类型、所述运算并行度及所述运算类型确定所述运算模式及所述数据流路径,所述判断结果为判断是否分配缓存单元的缓存空间的结果。
6.如权利要求2所述的方法,其特征在于,所述AI芯片包括至少一个执行模块;
根据输入信息及生成信息,生成寄存器配置信息,包括:
根据所述运算模式及所述数据流路径,确定每个所述执行模块对应的所述输入信息及所述生成信息;
将所述输入信息及所述生成信息进行运算,得到对应所述执行模块的寄存器配置信息。
7.一种AI芯片控制方法,其特征在于,AI芯片包括至少一个执行模块,所述方法包括:
接收来自外部设备的寄存器配置信息;
根据所述寄存器配置信息,将每个所述执行模块进行初始化;
获取待处理数据,所述待处理数据存储于外部存储设备;
初始化后的所述执行模块对所述待处理数据进行运算,得到运算结果;
向所述外部设备或所述外部存储设备传输所述运算结果。
8.如权利要求7所述的方法,其特征在于,所述执行模块包括缓存单元及计算单元;
根据所述寄存器配置信息,将每个所述执行模块进行数据流初始化,包括:
根据所述寄存器配置信息,确定每个所述缓存单元对应的寻址方式及读取次数;
根据所述寄存器配置信息,确定每个计算单元的数据流路径。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法。
10.一种AI芯片,其特征在于,包括至少一个执行模块,所述执行模块执行时实现如权利要求7至8任一项所述的方法。
CN202111067777.6A 2021-09-13 2021-09-13 一种ai芯片控制方法、电子设备及ai芯片 Pending CN113918233A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111067777.6A CN113918233A (zh) 2021-09-13 2021-09-13 一种ai芯片控制方法、电子设备及ai芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111067777.6A CN113918233A (zh) 2021-09-13 2021-09-13 一种ai芯片控制方法、电子设备及ai芯片

Publications (1)

Publication Number Publication Date
CN113918233A true CN113918233A (zh) 2022-01-11

Family

ID=79234751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111067777.6A Pending CN113918233A (zh) 2021-09-13 2021-09-13 一种ai芯片控制方法、电子设备及ai芯片

Country Status (1)

Country Link
CN (1) CN113918233A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114429051A (zh) * 2022-04-01 2022-05-03 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质
CN116382880A (zh) * 2023-06-07 2023-07-04 成都登临科技有限公司 任务执行方法、装置、处理器、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111433758A (zh) * 2018-11-21 2020-07-17 吴国盛 可编程运算与控制芯片、设计方法及其装置
CN111611195A (zh) * 2019-02-26 2020-09-01 北京知存科技有限公司 可软件定义存算一体芯片及其软件定义方法
CN111611197A (zh) * 2019-02-26 2020-09-01 北京知存科技有限公司 可软件定义的存算一体芯片的运算控制方法和装置
US20210073169A1 (en) * 2019-09-09 2021-03-11 Shanghai Denglin Technologies Co., Ltd. On-chip heterogeneous ai processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111433758A (zh) * 2018-11-21 2020-07-17 吴国盛 可编程运算与控制芯片、设计方法及其装置
CN111611195A (zh) * 2019-02-26 2020-09-01 北京知存科技有限公司 可软件定义存算一体芯片及其软件定义方法
CN111611197A (zh) * 2019-02-26 2020-09-01 北京知存科技有限公司 可软件定义的存算一体芯片的运算控制方法和装置
US20210073169A1 (en) * 2019-09-09 2021-03-11 Shanghai Denglin Technologies Co., Ltd. On-chip heterogeneous ai processor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"提升嵌入式应用效能的下一大步 单芯片同步多任务处理功能", 电子与电脑, no. 08, 15 August 2008 (2008-08-15) *
刘芳;季晓勇;王元庆;黄前山;: "基于FPGA的CPRS混沌加解密芯片算法设计", 计算机工程与设计, no. 11, 16 June 2010 (2010-06-16) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114429051A (zh) * 2022-04-01 2022-05-03 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质
CN114429051B (zh) * 2022-04-01 2022-07-01 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质
CN116382880A (zh) * 2023-06-07 2023-07-04 成都登临科技有限公司 任务执行方法、装置、处理器、电子设备及存储介质
CN116382880B (zh) * 2023-06-07 2023-08-11 成都登临科技有限公司 任务执行方法、装置、处理器、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US8984043B2 (en) Multiplying and adding matrices
US8140780B2 (en) Systems, methods, and devices for configuring a device
TWI486810B (zh) 在狀態機晶格中之計數器操作
US8200940B1 (en) Reduction operations in a synchronous parallel thread processing system with disabled execution threads
KR101558069B1 (ko) 범용 그래픽스 프로세싱 유닛에서의 컴퓨테이션 리소스 파이프라이닝
US20200409664A1 (en) Transpose operations using processing element array
US11455781B2 (en) Data reading/writing method and system in 3D image processing, storage medium and terminal
US10761822B1 (en) Synchronization of computation engines with non-blocking instructions
CN113918233A (zh) 一种ai芯片控制方法、电子设备及ai芯片
CN110825436B (zh) 应用于人工智能芯片的计算方法和人工智能芯片
US11175919B1 (en) Synchronization of concurrent computation engines
US20210158131A1 (en) Hierarchical partitioning of operators
CN111208933A (zh) 数据访问的方法、装置、设备和存储介质
CN114443559A (zh) 可重构算子单元、处理器、计算方法、装置、设备及介质
CN110515872B (zh) 直接内存存取方法、装置、专用计算芯片及异构计算系统
US11562554B1 (en) Workload reduction for non-maximum suppression operation
CN111143240B (zh) 图像存储方法、系统及终端设备
US10922146B1 (en) Synchronization of concurrent computation engines
US11354130B1 (en) Efficient race-condition detection
CN115237349A (zh) 数据读写控制方法、控制装置、计算机存储介质和电子设备
US11803736B1 (en) Fine-grained sparsity computations in systolic array
US11868872B1 (en) Direct memory access operation for neural network accelerator
US11119787B1 (en) Non-intrusive hardware profiling
US11061654B1 (en) Synchronization of concurrent computation engines
CN112486904A (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