自动驾驶辅助控制方法、系统及其AI计算方法、装置
技术领域
本发明涉及自动驾驶技术领域的一种AI计算技术,具体地,涉及一种自动驾驶辅助控制方法、系统及其AI(人工智能)计算方法、装置。
背景技术
传统定点乘法器可以实现准确量化计算,但是由于目前神经网络结构具有一定的冗余性,且网络任务多为分类等基于相对结果大小的比较,整体网络计算具有一定的容错性,每个乘法并不需要完全bit精确。
随机计算乘法器通过随机bit流相与和累加来计算得到结果,将乘法器的逻辑开销大幅度降低到一个与门和一个累加器。但是传统随机计算乘法器的串行运算,导致运算延迟无法满足自动驾驶处理器的实时处理需求;随机计算引入的随机误差在较为复杂的运算任务中会引来较大的精度损失,不符合自动驾驶安全性的要求。
经过检索发现:
1、Z.Xia,J.Chen,Q.Huang,J.Luo and J.Hu,"Neural Synaptic Plasticity-Inspired Computing:A High Computing Efficient Deep Convolutional NeuralNetwork Accelerator,"in IEEE Transactions on Circuits and Systems I:RegularPapers,vol.68,no.2,pp.728-740,Feb.2021,doi:10.1109/TCSI.2020.3039346.,提出了一种基于线扩的设计思路,对输入二进制数的每个bit根据其所带的二进制权重进行对应的bit扩展,得到在该模式下的计算序列。之后根据另一个乘数的数值大小对扩展后的bit进行选取,得到最后的乘法结果。如图1所示。
该技术不具备灵活性,乘法器的其中一个乘数变成固定的数字,由于bit展开的策略固定型,导致在硬件实现的时候,网络结构和权重值是确定的,这样无法支持其他的应用。另外,在支持大网络结构的时候,由于层数增加会导致硬件面积增大到几十平方毫米,不符合现实实现情况。
2、S.Asadi,M.H.Najafi and M.Imani,"A Low-Cost FSM-based Bit-StreamGenerator for Low-Discrepancy Stochastic Computing,"2021Design,Automation&Test in Europe Conference&Exhibition(DATE),2021,pp.908-913,doi:10.23919/DATE51398.2021.9474143.,提出了一种基于低相关性的sobol序列生成器,基于一个8状态的有限状态机来指示当前应该选取原二进制输入的哪个bit,节省了传统随机计算乘法器的比较器开销。如图2所示。
该技术随机序列的产生仍然需要串行生成,一个乘法器的运算会因为序列生成器而增大到64-128个周期,从而导致整体硬件的延迟大幅度增加,严重影响硬件的能效。
3、Y.Zhang,R.Wang,X.Zhang,Y.Wang and R.Huang,"Parallel HybridStochastic-Binary-Based Neural Network Accelerators,"in IEEE Transactions onCircuits and Systems II:Express Briefs,vol.67,no.12,pp.3387-3391,Dec.2020,doi:10.1109/TCSII.2020.2994464.,提出了一种基于温度计编码的随机计算产生器与计算单元,可以实现一个周期并行生成所有数据,并且实现精确运算。如图3所示。
该技术必须进行全精度运算,不支持近似随机运算,实际硬件开销是要比二进制乘法器高的,但是实际上的神经网络运算是不需要全精度运算的。
发明内容
本发明针对现有技术中传统定点乘法器硬件开销大和随机计算乘法器延迟较高精度较差的问题,提供了一种自动驾驶辅助控制方法、系统及其AI(人工智能)计算方法、装置,结合混合二进制和随机计算,实现了一种高性能高精度乘法器,对传统定点乘法器进行优化设计,进而应用于对于精度和延迟要求较高的自动驾驶感知场景。
本发明是通过以下技术方案实现的。
根据本发明的一个方面,提供了一种用于自动驾驶辅助的AI计算方法,包括:
构建并行加权随机序列生成器和混合二进制-随机计算乘法器,其中,所述混合二进制-随机计算乘法器包括:二进制乘法器、随机计算乘法器和移位加法器;
通过所述并行加权随机序列生成器,在一个时钟周期内,获取自动驾驶感知神经网络输入特征图x和权重数据y,并按照位宽划分为xhigh,xlow,yhigh和ylow,并将所述xlow和ylow数据生成所需要的均匀分布和集中分布随机序列,与所述xhigh和yhigh构成均匀分布或集中分布的用于计算的随机序列;其中,下标high和low分别表示高位宽部分和低位宽部分;
通过所述随机计算乘法器对输入的所述用于计算的随机序列中的xhigh,xlow,yhigh和ylow进行随机计算近似乘法操作,得到近似乘法结果;
通过所述二进制乘法器对输入的所述用于计算的随机序列中的xhigh和yhigh进行准确乘法操作,得到精确乘法结果;
通过所述移位累加器对所述随机计算乘法器和所述二进制乘法器的计算结果根据各自在计算中的二进制权重进行移位累加,得到自动驾驶感知神经网络中的乘累加运算结果,所述乘累加运算结果作为自动驾驶过程中的目标检测、车道线检测和/或轨迹预测任务的参考数据。
可选地,所述并行加权随机序列生成器,根据固定位宽的输入数据中每个bit在均匀分布和集中分布情况下的序列bit排列情况进行合并和加权,从而得到更短的随机序列,所述更短的序列长度用于降低对应的与门和累加器的逻辑开销;
所述获取自动驾驶感知神经网络输入特征图x和权重数据y,并按照位宽划分为xhigh、xlow、yhigh和ylow,并将所述xlow和ylow数据生成所需要的均匀分布和集中分布随机序列,包括:
将所述自动驾驶感知神经网络中的输入特征图x和权重数据y按照位宽bw划分为高bw/2bits部分数据和低bw/2bits部分数据;
将所述低bw/2bits部分数据在均匀分布和集中分布情况下进行序列相与计算,得到每个bit在新的序列中对应的二进制权重,得到所需要的均匀分布和集中分布随机序列。
可选地,所述随机计算近似乘法操作,包括:xhigh×ylow和xlow×yhigh。
可选地,所述准确乘法操作,包括:xhigh×yhigh。
可选地,所述通过所述移位累加器对所述随机计算乘法器和所述二进制乘法器的计算结果根据各自在计算中的二进制权重进行移位累加,包括:
以每个bit在随机序列中出现的频率作为权重,得到每个计算结果bit的权重;
根据所述每个计算结果bit的权重,对所述随机计算乘法器和所述二进制乘法器的计算结果进行带权相与累加。
可选地,所述并行加权随机序列生成器为四个,所述二进制乘法器为一个、所述随机计算乘法器为两个,所述移位加法器为一个;其中,四个所述并行加权随机序列生成器的输出端分别与一个所述二进制乘法器和两个所述随机计算乘法器的输入端相连接,一个所述二进制乘法器和两个所述随机计算乘法器的输出端均与一个所述移位加法器的输入端相连接。
可选地,权重数据y以及每个bit所对应的权重均为2的幂次。
根据本发明的另一个方面,提供了一种用于自动驾驶辅助的AI计算装置,包括:并行随机计算生成器和混合二进制-随机计算乘法器;其中:所述混合二进制-随机计算乘法器,包括:二进制乘法器、随机计算乘法器和移位加法器,所述并行加权随机序列生成器的输出端分别与所述二进制乘法器和所述随机计算乘法器的输入端相连接,所述二进制乘法器和所述随机计算乘法器的输出端均与所述移位加法器的输入端相连接;其中:
所述并行加权随机序列生成器,用于在一个时钟周期内,获取自动驾驶感知神经网络输入特征图x和权重数据y,并按照位宽划分为xhigh,xlow,yhigh和ylow,并将所述xlow和ylow数据生成所需要的均匀分布和集中分布随机序列,与所述xhigh和yhigh构成均匀分布或集中分布的用于计算的随机序列;其中,下标high和low分别表示高位宽部分和低位宽部分;
所述随机计算乘法器,用于对输入的所述用于计算的随机序列中的xhigh,xlow,yhigh和xlow进行随机计算近似乘法操作,得到近似乘法结果;
所述二进制乘法器,用于对输入的所述用于计算的随机序列中的xhigh和yhigh进行准确乘法操作,得到精确乘法结果;
所述移位累加器,用于对所述随机计算乘法器和所述二进制乘法器的计算结果根据各自在计算中的二进制权重进行移位累加,得到自动驾驶感知神经网络中的乘累加运算结果。
可选地,所述并行加权随机序列生成器为四个,所述二进制乘法器为一个、所述随机计算乘法器为两个,所述移位加法器为一个;其中,四个所述并行加权随机序列生成器的输出端分别与一个所述二进制乘法器和两个所述随机计算乘法器的输入端相连接,一个所述二进制乘法器和两个所述随机计算乘法器的输出端均与一个所述移位加法器的输入端相连接。
根据本发明的第三个方面,提供了一种自动驾驶辅助控制方法,采用上述任一项所述的AI计算方法或上述任一项所述的AI计算装置,获得自动驾驶感知神经网络中的乘累加运算结果,所述乘累加运算结果用于作为自动驾驶过程中检测车辆行驶中的偏移和/或与目标物之间距离的参考数据,从而对目前运行状态进行判断,对后续运行轨迹和行为进行预测和控制。
根据本发明的第四个方面,提供了一种自动驾驶辅助控制系统,采用上述任一项所述的AI计算方法或上述任一项所述的AI计算装置,获得自动驾驶感知神经网络中的乘累加运算结果,所述乘累加运算结果用于作为自动驾驶过程中检测车辆行驶中的偏移和/或与目标物之间距离的参考数据,从而对目前运行状态进行判断,对后续运行轨迹和行为进行预测和控制。
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
本发明提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,引入随机计算思想,优化传统二进制乘法器的高硬件开销。
本发明提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,深度融合二进制和随机计算,解决传统随机计算乘法器的高延迟缺陷。
本发明提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,优化随机计算引入的随机误差,使其满足自动驾驶感知场景需求。
本发明提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,可以替换传统二进制乘法器,有效降低计算单元的逻辑开销。
本发明提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,可以在引入随机计算降低硬件开销的前提下,尽可能保持近似准确的运算结果。
本发明提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,可以降低乘法器功耗,提升计算单元的硬件效率。
本发明提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,可以大幅提升自动驾驶芯片矩阵运算单元的能效,解决当前大算力自动驾驶芯片能效较低的问题,同等算力下可以提升1.5倍以上。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为背景技术中基于线扩设计思路实现深度卷积神经网络计算的示意图。
图2为背景技术中基于低相关性的sobol序列生成器的示意图。
图3为背景技术中基于温度计编码的随机计算产生器与计算单元的设计示意图。
图4为本发明一实施例中用于自动驾驶辅助的AI计算装置的组成结构示意图。
图5为本发明一实施例中用于自动驾驶辅助的AI计算方法的工作流程图。
图6为本发明一优选实施例中并行加权随机序列生成器结构示意图。
图7为本发明一具体应用实例中加权随机序列生成器工作示意图。
图8为本发明一具体应用实例中混合二进制-随机计算乘法器工作示意图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
图4为本发明一实施例中提供的用于自动驾驶辅助的AI计算装置的组成结构示意图。
如图4所示,该实施例提供的提供的用于自动驾驶辅助的AI计算装置,可以包括:并行加权随机序列生成器和混合二进制-随机计算乘法器;其中:
混合二进制-随机计算乘法器,可以包括:二进制乘法器、随机计算乘法器和移位加法器,其中,并行加权随机序列生成器的输出端分别与二进制乘法器和随机计算乘法器的输入端相连接,二进制乘法器和随机计算乘法器的输出端均与移位加法器的输入端相连接。
在该实施例中:
并行加权随机序列生成器,用于在一个时钟周期内,获取自动驾驶感知神经网络输入特征图x和权重数据y,并按照位宽划分为xhigh,xlow,yhigh和ylow,并将xlow和ylow数据生成所需要的均匀分布和集中分布随机序列,与xhigh和yhigh构成均匀分布或集中分布的用于计算的随机序列;其中,下标high和low分别表示高位宽部分和低位宽部分;
随机计算乘法器,用于对输入的用于计算的随机序列中的xhigh,xlow,yhigh和xlow进行随机计算近似乘法操作,得到近似乘法结果;
二进制乘法器,用于对输入的用于计算的随机序列中的xhigh和yhigh进行准确乘法操作,得到精确乘法结果;
移位累加器,用于对随机计算乘法器和二进制乘法器的计算结果根据各自在计算中的二进制权重进行移位累加,得到自动驾驶感知神经网络中的乘累加运算结果。该乘累加运算结果作为自动驾驶过程中的目标检测、车道线检测和/或轨迹预测任务的参考数据。
在该实施例中,自动驾驶感知神经网络输入特征图x为自动驾驶感知网络输入特征图数据或者为自动驾驶芯片中矩阵乘法单元输入,即自动驾驶过程中道路或环境图像预处理之后的增强数据。得到的自动驾驶感知神经网络中的乘累加运算结果,是自动驾驶感知网络的矩阵乘累加运算中,前两个近似乘法结果和精确乘法结果通过移位累加得到的最终乘累加运算结果,是自动驾驶感知网络最终运算结果,即环境感知特征提取结果。在自动驾驶中,该结果用于后续车辆/行人目标检测、车道线识别等任务的数据。近似乘法结果是自动驾驶感知网络的矩阵乘累加运算中,通过随机计算乘法器得到的低位近似乘法结果。精确乘法结果是自动驾驶感知网络的矩阵乘累加运算中,通过二进制乘法器得到的高位准确乘法结果。
进一步地,在一优选实施例中,并行加权随机序列生成器为四个,二进制乘法器为一个,随机计算乘法器为两个,移位加法器为一个;其中,四个并行加权随机序列生成器的输出端分别与一个二进制乘法器和两个随机计算乘法器的输入端相连接,一个二进制乘法器和两个随机计算乘法器的输出端均与一个移位加法器的输入端相连接。
图5为本发明一实施例中提供的用于自动驾驶辅助的AI计算方法的工作流程图。
如图5所示,该实施例提供的用于自动驾驶辅助的AI计算方法,可以包括:
S1,构建并行加权随机序列生成器和混合二进制-随机计算乘法器,混合二进制-随机计算乘法器包括:二进制乘法器、随机计算乘法器和移位加法器;
S2,通过并行加权随机序列生成器,在一个时钟周期内,获取自动驾驶感知神经网络输入特征图x和权重数据y,并按照位宽划分为xhigh,xlow,yhigh和ylow;将xlow和ylow数据生成所需要的均匀分布和集中分布随机序列,并与xhigh和yhigh构成均匀分布或集中分布的用于计算的随机序列;其中,下标high和low分别表示高位宽部分和低位宽部分;
S3,通过随机计算乘法器对输入的用于计算的随机序列中的xhigh,xlow,yhigh和ylow进行随机计算近似乘法操作,得到近似乘法结果;
S4,通过二进制乘法器对输入的用于计算的随机序列中的xhigh和yhigh进行准确乘法操作,得到精确乘法结果;
S5,通过移位累加器对随机计算乘法器和二进制乘法器的计算结果根据各自在计算中的二进制权重进行移位累加,得到自动驾驶感知神经网络中的乘累加运算结果。
在一优选实施例中,并行加权随机序列生成器,根据固定位宽的输入数据中每个bit在均匀分布和集中分布情况下的序列bit排列情况进行合并和加权,从而得到更短的随机序列。更短的序列长度可以降低对应的与门和累加器的逻辑开销。
在一优选实施例中,获取自动驾驶感知神经网络输入特征图x和权重数据y,并按照位宽划分为xhigh、xlow、yhigh和ylow,并将xlow和ylow数据生成所需要的均匀分布和集中分布随机序列,包括:
将自动驾驶感知神经网络中的输入特征图x和权重数据y按照位宽bw划分为高bw/2bits部分数据和低bw/2bits部分数据;
将低bw/2bits部分数据在均匀分布和集中分布情况下进行序列相与计算,得到每个bit在新的序列中对应的二进制权重,得到所需要的均匀分布和集中分布随机序列。
在一优选实施例中,随机计算近似乘法操作,包括:xhigh×ylow和xlow×yhigh。
在一优选实施例中,准确乘法操作,包括:xhigh×yhigh。
在一优选实施例中,通过移位累加器对随机计算乘法器和二进制乘法器的计算结果根据各自在计算中的二进制权重进行移位累加,包括:
以每个bit在随机序列中出现的频率作为权重,得到每个计算结果bit的权重;
根据每个计算结果bit的权重,对随机计算乘法器和二进制乘法器的计算结果进行带权相与累加。
在一优选实施例中,并行加权随机序列生成器为四个,二进制乘法器为一个、随机计算乘法器为两个,移位加法器为一个;其中,四个并行加权随机序列生成器的输出端分别与一个二进制乘法器和两个随机计算乘法器的输入端相连接,一个二进制乘法器和两个随机计算乘法器的输出端均与一个移位加法器的输入端相连接。
在一优选实施例中,上述的所有权重均为2的幂次。
本发明上述实施例提供的用于自动驾驶辅助的AI计算方法,两个随机计算乘法器分别完成xhigh×ylow和xlow×yhigh的随机计算近似乘法,而对于xlow×ylow对应的乘法,由于几乎不影响计算精度,因此进行了省略。这种结构的混合二进制-随机计算乘法器,既可以保证了计算的近似准确,又因为随机计算的引入而有效降低逻辑开销。针对目前自动驾驶领域常用的transformer和卷积神经网络等网络结构中的矩阵乘法计算,该AI计算方法可以优化其中的乘法器开销,在相似的精度下达到更好的运算能效,作为一种硬件改进,实现了自动驾驶芯片的能效提升。其运算结果是transformer网络的运算结果即自动驾驶环境感知的结果,可以作为后续目标检测、车道线检测和轨迹预测等任务的参考数据。
需要说明的是,本发明提供的方法中的步骤,可以利用装置中对应的模块、装置、单元等予以实现,本领域技术人员可以参照方法的技术方案实现装置的组成,即,方法中的实施例可理解为构建装置的优选例。
下面结合附图以及具体应用实例,对本发明上述实施例提供的技术方案进一步说明。
该具体应用实例提供的用于自动驾驶辅助的AI计算装置及方法,其核心为构建的混合二进制-随机计算乘法器,该混合二进制-随机计算乘法器包含一个二进制乘法器、两个随机计算乘法器、四个并行加权随机序列生成器和一个移位加法器组成,具体结构如图4所示。
在该混合二进制-随机计算乘法器的部分实施例中:
四个并行加权随机序列生成器可以在一个时钟周期内生成所需要的随机序列,给到后面的随机计算乘法器。
二进制乘法器完成对两个输入x,y的高bitwidth/2bits-xhigh,yhigh进行准确乘法,两个随机计算乘法器完成xhigh×ylow和xlow×yhigh的随机计算近似乘法,xlow×ylow对应的乘法由于几乎不影响计算精度,因此可以省略。这种结构既可以保证了计算的近似准确,又因为随机计算的引入而有效降低逻辑开销。
移位累加器完成对上述三个乘法部分结果的移位累加,根据各自在计算中的权重。累加后的结果即最终的乘法结果。
图4中的序列生成器是经过优化的并行加权随机序列生成器,优化细节如图6所示。其中:
原始随机计算乘法器需要将两个输入转换为全长度的随机计算序列后,对应bit进行与运算,得到的结果进行累加就可以得到最终的结果。
该并行加权随机序列生成器在上述基础上进行优化,可以根据固定位宽的输入数据中每个bit在均匀分布和集中分布情况下的序列bit排列情况进行合并和加权,从而得到更短的随机序列。更短的序列长度可以降低对应的与门和累加器的逻辑开销。
针对该并行加权随机序列生成器。
对于自动驾驶感知神经网络4-bit二进制输入特征图或者权重数据,序列展开方式如图7所示。假设输入x(输入特征图数据)的4个bit分别为{x3 x2 x1 x0},根据均匀分布与集中分布序列相与的结果,可以得到每个bit在新的16bits序列中的出现时对应的权重,如x3会出现8次,但是与y3会相与4次,则在新的序列中有1bit的x3附带权重为4。其他可以以此类推。
在实际的生成器中,上述生成流程可以直接将对应bit的线(即硬件设计中bit对应的wire)连接出来即可,不需要额外的逻辑开销。
生成的序列可以在后续与对应的另一个输入的序列相与,在累加的时候根据每个AND-pair的权重进行带权重累加,此处累加可以使用移位器因为所有的权重均为2的幂次。
图8为两个8bits输入的乘法器计算流程。在本发明技术方案中,将两个8bits输入分解为高/低4bits,最终的计算结果可以表示为:
results=(xhigh×yhigh)<<8+
(xhigh×ylow)<<4+
(xlow×yhigh)<<4+
xlow×xlow
在本具体应用实例中,高bit相乘的xhigh×yhigh使用的是二进制乘法器,可以得到准确的结果,xhigh×ylow和xlow×yhigh是用实施举例1中的随机计算序列生成器生成的序列来进行的随机计算的乘法运算。低4bits运算xlow×ylow由于对精度影响较小,所以可以不进行运算。
得到三个部分和结果之后进入移位加的模块,根据上述公式中的移位数进行运算,就可以得到最后的乘法结果。
需要说明的是,本发明提供的方法中的步骤,可以利用装置中对应的模块、单元等予以实现,本领域技术人员可以参照方法的技术方案实现装置的组成,也可以参照装置的技术方案实现方法的步骤,即,方法中的实施例和装置中的实施例可理解为互为优选例,在此不予赘述。
本发明一实施例提供了一种自动驾驶辅助控制方法,采用本发明上述实施例中任一项的AI计算方法或本发明上述实施例中任一项的AI计算装置,获得自动驾驶感知神经网络中的乘累加运算结果,乘累加运算结果用于作为自动驾驶过程中检测车辆行驶中的偏移和/或与目标物之间距离的参考数据,从而对目前运行状态进行判断,对后续运行轨迹和行为进行预测和控制。
本发明一实施例还提供了一种自动驾驶辅助控制系统,采用本发明上述实施例中任一项的AI计算方法或本发明上述实施例中任一项的AI计算装置,获得自动驾驶感知神经网络中的乘累加运算结果,乘累加运算结果用于作为自动驾驶过程中检测车辆行驶中的偏移和/或与目标物之间距离的参考数据,从而对目前运行状态进行判断,对后续运行轨迹和行为进行预测和控制。
本发明上述实施例提供的自动驾驶辅助控制方法、系统及其AI计算方法、装置,引入随机计算思想,优化传统二进制乘法器的高硬件开销;深度融合二进制和随机计算,解决传统随机计算乘法器的高延迟缺陷;优化随机计算引入的随机误差,使其满足自动驾驶感知场景需求;可以替换传统二进制乘法器,有效降低计算单元的逻辑开销;可以在引入随机计算降低硬件开销的前提下,尽可能保持近似准确的运算结果;可以降低乘法器功耗,提升计算单元的硬件效率。
本发明上述实施例中未尽事宜均为本领域公知技术。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。