一种基于RISC-V的人工智能推理方法和系统技术方案

技术编号:28038639 阅读:20 留言:0更新日期:2021-04-09 23:21
本发明专利技术公开了一种基于RISC‑V的人工智能推理方法和系统,方法包括:直接存储器访问接口获取人工智能推理的指令和数据并写入存储器;从存储器获取和翻译指令,基于指令将数据从存储器加载到对应的寄存器;响应于指令是向量指令,而由卷积控制单元基于向量指令在向量处理单元处理对应的向量数据;反馈处理过的向量数据以完成推理。本发明专利技术能够将RISC‑V指令集应用到AI芯片的推理计算中,便于人工智能推理的应用和落地。

【技术实现步骤摘要】
一种基于RISC-V的人工智能推理方法和系统
本专利技术涉及人工智能领域,更具体地,特别是指一种基于RISC-V的人工智能推理方法和系统。
技术介绍
目前,人工智能(AI)芯片大致的分类如下:从应用场景角度看,AI芯片主要有两个方向,一个是在数据中心部署的云端,一个是在消费者终端部署的终端。从功能角度看,AI芯片主要做两个事情,一是Training(训练),二是Inference(推理)。目前AI芯片的大规模应用分别在云端和终端。云端的AI芯片同时做两个事情:Training和Inference。Training即用大量标记过的数据来“训练”相应的系统,使之可以适应特定的功能,比如给系统海量的“猫”的图片,并告诉系统这个就是“猫”,之后系统就“知道”什么是猫了;Inference即用训练好的系统来完成任务,接上面的例子,就是你将一张图给之前训练过的系统,让它得出这张图是不是猫这样的结论。云端的AI芯片目前主要是GPU,由于训练需要的数据量大、算力大、功耗大,需要大规模的散热,Training将在很长一段时间里集中在云端,Inference的完成目前也主要集中在云端,但随着越来越多厂商的努力,很多的应用将逐渐转移到终端,如目前应用比较多的自动驾驶芯片。在终端完成Inference,主要是满足终端低延时的需求,云端推理的延时与网络相关,一般延时较大,难以满足终端(如自动驾驶)的需求;满足终端多样化需求;以及初步筛选终端的数据,将有效数据传送到云端等等。RISC-V是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件而不必支付给任何公司专利费。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。RISC-V指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。指令集因为位于硬件和软件之间,所以是电脑主要的沟通桥梁,因此如果有一个设计良好的指令集是开源而且可以被任何人使用的,就可以让更多的资源能够重复利用,而大大的减少软件的成本。而这样的指令集也会增加硬件供应商市场的竞争力,因为硬件供应商们可以挪用更多资源来进行设计,减少处理软件支持的事务。然而,RISC-V指令集缺少处理器的硬件设计和软件支持,导致其不能用作AI芯片的推理计算。针对现有技术中RISC-V指令集缺少处理器的硬件设计和软件支持、不能用作AI芯片的推理计算的问题,目前尚无有效的解决方案。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种基于RISC-V的人工智能推理方法和系统,能够将RISC-V指令集应用到AI芯片的推理计算中,便于人工智能推理的应用和落地。基于上述目的,本专利技术实施例的第一方面提供了一种基于RISC-V的人工智能推理方法,包括执行以下步骤:通过直接存储器访问接口获取人工智能推理的指令和数据并写入存储器;从存储器获取和翻译指令,基于指令将数据从存储器加载到对应的寄存器;响应于指令是向量指令,而由卷积控制单元基于向量指令在向量处理单元处理对应的向量数据;反馈处理过的向量数据以完成推理。在一些实施方式中,存储器包括向量数据存储器、指令存储器、和标量数据存储器;寄存器包括向量寄存器和标量寄存器。在一些实施方式中,基于指令将数据从存储器加载到对应的寄存器包括:基于环境参数确定单次向量操作个数,以使用指令中的向量加载指令将单次向量操作个数个向量数据加载到向量寄存器。在一些实施方式中,方法还包括:由卷积控制单元基于指令中的寄存器配置指令确定环境参数,环境参数包括向量有效位宽、向量寄存器每组个数、寄存器位宽、和当前需要操作向量个数;基于环境参数确定单次向量操作个数包括:基于寄存器位宽除以向量有效位宽乘以向量寄存器每组个数而确定允许操作向量最大个数,并将允许操作向量最大个数和当前需要操作向量个数中的较小值确定为单次向量操作个数。在一些实施方式中,由卷积控制单元基于向量指令在向量处理单元处理对应的向量数据包括:响应于向量寄存器有数据、向量处理单元的影子寄存器为空、并且卷积控制单元允许,将向量数据从向量寄存器缓存到影子寄存器;在影子寄存器中依次对向量数据执行重排序处理和预处理,并存入向量处理单元的乘法器输入缓存;由向量处理单元的乘法器阵列从乘法器输入缓存获取向量数据以在卷积控制单元的控制下执行乘积运算;由向量处理单元的乘积累加器从乘法器阵列获取向量数据以在卷积控制单元的控制下执行累加运算;由向量处理单元的向量激活单元从乘积累加器获取向量数据以在卷积控制单元的控制下使用查找表执行非线性向量运算。在一些实施方式中,方法还包括:由卷积控制单元基于指令中的查找表激活指令为向量激活单元配置查找表的缓存区;由卷积控制单元基于指令中的实时控制指令使向量数据选择性地执行乘积运算、累加运算、或非线性向量运算。在一些实施方式中,方法还包括执行以下步骤:响应于指令是标量指令,而基于标量指令在算数/逻辑运算单元处理对应的标量数据;反馈处理过的标量数据以完成推理。本专利技术实施例的第二方面提供了一种基于RISC-V的人工智能推理系统,包括:处理器;和存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:通过直接存储器访问接口获取人工智能推理的指令和数据并写入存储器;从存储器获取和翻译指令,基于指令将数据从存储器加载到对应的寄存器;响应于指令是向量指令,而由卷积控制单元基于向量指令在向量处理单元处理对应的向量数据;反馈处理过的向量数据以完成推理。在一些实施方式中,存储器包括向量数据存储器、指令存储器、和标量数据存储器;寄存器包括向量寄存器和标量寄存器;基于指令将数据从存储器加载到对应的寄存器包括:基于环境参数确定单次向量操作个数,以使用指令中的向量加载指令将单次向量操作个数个向量数据加载到向量寄存器;步骤还包括:由卷积控制单元基于指令中的寄存器配置指令确定环境参数,环境参数包括向量有效位宽、向量寄存器每组个数、寄存器位宽、和当前需要操作向量个数;基于环境参数确定单次向量操作个数包括:基于寄存器位宽除以向量有效位宽乘以向量寄存器每组个数而确定允许操作向量最大个数,并将允许操作向量最大个数和当前需要操作向量个数中的较小值确定为单次向量操作个数。在一些实施方式中,由卷积控制单元基于向量指令在向量处理单元处理对应的向量数据包括:响应于向量寄存器有数据、向量处理单元的影子寄存器为空、并且卷积控制单元允许,将向量数据从向量寄存器缓存到影子寄存器;在影子寄存器中依次对向量数据执行重排序处理和预处理,并本文档来自技高网
...

【技术保护点】
1.一种基于RISC-V的人工智能推理方法,其特征在于,包括执行以下步骤:/n通过直接存储器访问接口获取人工智能推理的指令和数据并写入存储器;/n从所述存储器获取和翻译所述指令,基于所述指令将所述数据从所述存储器加载到对应的寄存器;/n响应于所述指令是向量指令,而由卷积控制单元基于所述向量指令在向量处理单元处理对应的向量数据;/n反馈处理过的所述向量数据以完成推理。/n

【技术特征摘要】
1.一种基于RISC-V的人工智能推理方法,其特征在于,包括执行以下步骤:
通过直接存储器访问接口获取人工智能推理的指令和数据并写入存储器;
从所述存储器获取和翻译所述指令,基于所述指令将所述数据从所述存储器加载到对应的寄存器;
响应于所述指令是向量指令,而由卷积控制单元基于所述向量指令在向量处理单元处理对应的向量数据;
反馈处理过的所述向量数据以完成推理。


2.根据权利要求1所述的方法,其特征在于,所述存储器包括向量数据存储器、指令存储器、和标量数据存储器;所述寄存器包括向量寄存器和标量寄存器。


3.根据权利要求2所述的方法,其特征在于,基于所述指令将所述数据从所述存储器加载到对应的寄存器包括:基于环境参数确定单次向量操作个数,以使用所述指令中的向量加载指令将单次向量操作个数个所述向量数据加载到所述向量寄存器。


4.根据权利要求3所述的方法,其特征在于,还包括:由所述卷积控制单元基于所述指令中的寄存器配置指令确定环境参数,所述环境参数包括向量有效位宽、向量寄存器每组个数、寄存器位宽、和当前需要操作向量个数;
基于环境参数确定单次向量操作个数包括:基于所述寄存器位宽除以所述向量有效位宽乘以所述向量寄存器每组个数而确定允许操作向量最大个数,并将所述允许操作向量最大个数和所述当前需要操作向量个数中的较小值确定为所述单次向量操作个数。


5.根据权利要求1所述的方法,其特征在于,由卷积控制单元基于所述向量指令在向量处理单元处理对应的向量数据包括:
响应于所述向量寄存器有数据、所述向量处理单元的影子寄存器为空、并且所述卷积控制单元允许,将所述向量数据从所述向量寄存器缓存到所述影子寄存器;
在所述影子寄存器中依次对所述向量数据执行重排序处理和预处理,并存入所述向量处理单元的乘法器输入缓存;
由所述向量处理单元的乘法器阵列从所述乘法器输入缓存获取所述向量数据以在所述卷积控制单元的控制下执行乘积运算;
由所述向量处理单元的乘积累加器从所述乘法器阵列获取所述向量数据以在所述卷积控制单元的控制下执行累加运算;
由所述向量处理单元的向量激活单元从所述乘积累加器获取所述向量数据以在所述卷积控制单元的控制下使用查找表执行非线性向量运算。


6.根据权利要求5所述的方法,其特征在于,还包括:
由所述卷积控制单元基于所述指令中的查找表激活指令为所述向量激活单元配置所述查找表的缓存区;
由所述卷积控制单元基于所述指令中的实时控制指令使所述向...

【专利技术属性】
技术研发人员:贾兆荣
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1