CN115099398A - 硬件加速器运行优化方法、装置、电子设备及存储介质 - Google Patents

硬件加速器运行优化方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115099398A
CN115099398A CN202210679596.7A CN202210679596A CN115099398A CN 115099398 A CN115099398 A CN 115099398A CN 202210679596 A CN202210679596 A CN 202210679596A CN 115099398 A CN115099398 A CN 115099398A
Authority
CN
China
Prior art keywords
neural network
hardware
hardware accelerator
acceleration
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
CN202210679596.7A
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.)
Shenzhen Echiev Autonomous Driving Technology Co ltd
Original Assignee
Shenzhen Echiev Autonomous Driving 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 Shenzhen Echiev Autonomous Driving Technology Co ltd filed Critical Shenzhen Echiev Autonomous Driving Technology Co ltd
Priority to CN202210679596.7A priority Critical patent/CN115099398A/zh
Publication of CN115099398A publication Critical patent/CN115099398A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了硬件加速器运行优化方法、装置、电子设备及存储介质,应用于大数据技术领域,所述硬件加速器运行优化方法包括:依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。本申请解决了无法兼顾对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率的技术问题。

Description

硬件加速器运行优化方法、装置、电子设备及存储介质
技术领域
本申请涉及大数据技术领域,尤其涉及一种硬件加速器运行优化方法、装置、电子设备及存储介质。
背景技术
随着科技的高速发展,循环神经网络硬件技术也发展地越来越成熟,在循环神经网络硬件的端侧应用场景较复杂时,循环神经网络硬件的处理数据种类和处理数据数量较多,容易出现数据处理的效率低,目前,通过单一且固定的硬件载体对循环神经网络硬件的数据处理过程进行加速,例如,当采用CPU(central processing unit,中央处理器)硬件载体时,虽对于循环神经网络硬件的通用性较高,但容易出现延迟严重,加速效率低的情况,当采用ASIC(Application Specific Integrated Circuit,专用集成电路)硬件载体时,虽可通过优化循环神经网络硬件从而提高加速效率,但容易出现对于循环神经网络硬件的通用性较低的情况,导致无法兼顾对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率。
发明内容
本申请的主要目的在于提供一种硬件加速器运行优化方法、装置、电子设备及存储介质,旨在解决现有技术中无法兼顾对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率的技术问题。
为实现上述目的,本申请提供一种硬件加速器运行优化方法,应用于硬件加速器,所述硬件加速器用于为循环神经网络硬件提供硬件加速服务,所述硬件加速器运行优化方法包括:
依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;
依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;
控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。
为实现上述目的,本申请还提供一种硬件加速器运行优化装置,应用于硬件加速器,所述硬件加速器用于为循环神经网络硬件提供硬件加速服务,所述硬件加速器运行优化装置包括:
确定模块,用于依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;
选取模块,用于依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;
控制模块,用于控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。
本申请还提供一种电子设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述硬件加速器运行优化方法的程序,所述硬件加速器运行优化方法的程序被处理器执行时可实现如上述的硬件加速器运行优化方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现硬件加速器运行优化方法的程序,所述硬件加速器运行优化方法的程序被处理器执行时实现如上述的硬件加速器运行优化方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的硬件加速器运行优化方法的步骤。
本申请提供了一种硬件加速器运行优化方法、装置、电子设备及存储介质,相比于通过单一且固定的硬件载体对循环神经网络硬件的数据处理过程进行加速的方法,本申请通过依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行,实现了根据循环神经网络硬件的神经网络类型和神经网络结构,适配硬件加速器的加速单元参数以及单元处理粒度,始终为循环神经网络硬件提供合适的加速单元参数以及单元处理粒度,克服了当采用CPU硬件载体时,虽对于循环神经网络硬件的通用性较高,但容易出现延迟严重,加速效率低的情况,当采用ASIC硬件载体时,虽可通过优化循环神经网络硬件从而提高加速效率,但容易出现对于循环神经网络硬件的通用性较低情况的技术缺陷,从而兼顾了对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请硬件加速器运行优化方法第一实施例的流程示意图;
图2为本申请硬件加速器运行优化方法中一实施例的硬件加速器的运行优化示意图;
图3为本申请实施例中硬件加速器运行优化方法涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本申请保护的范围。
实施例一
本申请实施例提供一种硬件加速器运行优化方法,在本申请硬件加速器运行优化方法的第一实施例中,应用于硬件加速器,所述硬件加速器用于为循环神经网络硬件提供硬件加速服务,参照图1,所述硬件加速器运行优化方法包括:
步骤S10,依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;
步骤S20,依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;
步骤S30,控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。
在本实施例中,需要说明的是,所述神经网络类型可以为常规RNN(RecurrentNeural Network,循环神经网络)模型,也可以为GRU(Gated Recurrent Unit,门控循环单元神经网络)模型,还可以为LSTM(Long Short-Term Memory,长短期记忆人工神经网络)模型。
示例性地,步骤S10至步骤S30包括:依据所述循环神经网络硬件对应的神经网络类型,确定所述循环神经网络硬件对应的加速需求,选取所述加速需求对应的加速单元参数,例如,当所述神经网络类型为所述常规RNN模型时,加速需求为1,当所述神经网络类型为所述GRU模型时,加速需求为2,当所述神经网络类型为所述LSTM模型时,加速需求为3;依据各所述神经网络类型对应的神经网络结构,确定所述硬件加速器的处理能力阈值,依据所述处理能力阈值,选取所述硬件加速器中各子加速单元的单元处理粒度;将所述加速单元参数以及各所述单元处理粒度添加至所述硬件加速器的片内RAM(Random AccessMemory,随机存取存储器),以供所述硬件加速器调动所述片内RAM运行。
其中,在步骤S10中,在所述依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数的步骤之前,还包括:
步骤A10,获取所述循环神经网络硬件的硬件参数,其中,所述硬件参数至少包括输入向量维度数量、隐藏层节点数量以及隐藏层数量中的一种;
步骤A20,依据所述硬件参数,确定所述循环神经网络硬件对应的神经网络类型。
示例性地,步骤A10至步骤A20包括:获取所述循环神经网络硬件的输入向量维度数量、隐藏层节点数量以及隐藏层数量;依据所述输入向量维度数量、所述隐藏层节点数量以及所述隐藏层数量,生成所述循环神经网络硬件对应的神经网络类型标签,得到所述神经网络类型,其中,所述神经网络类型标签至少包括常规RNN模型标签、GRU模型标签以及LSTM模型标签中的一种。
其中,所述加速单元参数包括加速控制类别和子单元状态,所述依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数的步骤包括:
步骤S11,依据所述神经网络类型,确定所述硬件加速器对应的加速控制类别;
在本实施例中,需要说明的是,所述加速控制类别为所述硬件加速器的加速控制方式的类别。
作为一种示例,步骤S11包括:依据所述神经网络类型,选取所述硬件加速器对应的加速控制类别。
作为一种示例,步骤S11包括:依据所述输入向量维度数量、所述隐藏层节点数量以及所述隐藏层数量,选取所述硬件加速器对应的加速控制类别。
其中,在步骤S11中,所述依据所述神经网络类型,确定所述硬件加速器对应的加速控制类别的步骤包括:
步骤B10,依据所述神经网络类型,选取为所述循环神经网络硬件提供的加速服务对应的所述循环神经网络硬件的加速控制结构;
步骤B20,依据所述加速控制结构的结构类型,确定各所述加速控制结构对应的加速控制类别,其中,所述加速控制类别至少包括矩阵向量控制、非线性控制和按元素控制中的一种。
在本实施例中,需要说明的是,所述加速控制结构至少包括遗忘门、输出门、存储单元、输入门、隐状态、重置门、更新门、输出单元、候选集、更新表达式、记忆单元中的一种。所述结构类型至少包括门值类型、单元类型、数据集类型以及数据表达式中的一种。
示例性地,步骤B10至步骤B20包括:依据所述神经网络类型或者所述输入向量维度数量、所述隐藏层节点数量以及所述隐藏层数量,选取所述循环神经网络硬件的加速控制结构;确定各所述加速控制结构对应的加速控制类别。
作为一种示例,步骤B10至步骤B20包括:当所述神经网络类型为常规RNN模型时,选取所述循环神经网络硬件的加速控制结构为所述记忆单元和所述输出单元;确定所述记忆单元对应的加速控制类别为所述矩阵向量控制和所述非线性控制,确定所述输出单元对应的加速控制类别为所述矩阵向量控制和所述非线性控制。
作为一种示例,步骤B10至步骤B20包括:当所述神经网络类型为常规GRU模型时,选取所述循环神经网络硬件的加速控制结构为所述重置门、所述更新门、所述候选集、所述更新表达式和所述输出单元;确定所述重置门对应的加速控制类别为所述矩阵向量控制和所述非线性控制,确定所述更新门对应的加速控制类别为所述矩阵向量控制和所述非线性控制,确定所述候选集对应的加速控制类别为所述矩阵向量控制、所述非线性控制和所述按元素控制,确定所述更新表达式对应的加速控制类别为所述按元素控制,确定所述输出单元对应的加速控制类别为所述矩阵向量控制和所述非线性控制。
作为一种示例,步骤B10至步骤B20包括:当所述神经网络类型为常规LSTM模型时,选取所述循环神经网络硬件的加速控制结构为所述遗忘门、所述输出门、所述存储单元、所述输入门以及所述隐状态;确定所述遗忘门对应的加速控制类别为所述矩阵向量控制和所述非线性控制,确定所述输入门对应的加速控制类别为所述矩阵向量控制和所述非线性控制,确定所述输出门对应的加速控制类别为所述矩阵向量控制和所述非线性控制,确定所述输出门对应的加速控制类别为所述矩阵向量控制和所述非线性控制,确定所述存储单元对应的加速控制类别为所述矩阵向量控制、所述非线性控制和所述按元素控制,确定所述隐状态对应的加速控制类别为所述按元素控制。
步骤S12,依据所述加速控制类别,为所述硬件加速器中各加速计算子单元选取对应的子单元状态。
示例性地,步骤S12包括:依据所述加速控制类别以及所述加速控制类别对应的加速控制结构,为所述硬件加速器中各加速计算子单元选取对应的子单元状态。
其中,在步骤S12中,依据所述加速控制类别,为所述硬件加速器中各加速计算子单元选取对应的子单元状态的步骤包括:
步骤C10,获取各所述加速控制类别对应的加速计算子单元;
步骤C20,选取所述神经网络类型对应的各所述加速计算子单元的子单元状态。
在本实施例中,需要说明的是,各所述加速计算子单元组成加速计算单元,所述加速计算子单元至少包括第一矩阵向量控制单元、第二矩阵向量控制单元、第三矩阵向量控制单元、第一非线性控制单元、第二非线性控制单元、第三非线性控制单元、第一按元素控制单元、第二按元素控制单元以及第三按元素控制单元中的一种。所述加速计算单元至少包括第一加速计算单元、第二加速计算单元、第三加速计算单元中的一种。所述第一加速计算单元至少包括第一矩阵向量控制单元、第一非线性控制单元以及第一按元素控制单元中的一种,所述第二加速计算单元至少包括第二矩阵向量控制单元、第二非线性控制单元以及第二按元素控制单元中的一种,所述第三加速计算单元至少包括第三矩阵向量控制单元、第三非线性控制单元以及第三按元素控制单元中的一种。
示例性地,步骤C10至步骤C20包括:依据所述加速控制类别以及所述加速控制类别对应的加速控制结构,确定各所述加速控制类别对应的加速计算子单元;选取所述神经网络类型对应的各所述加速计算子单元的子单元状态,其中,所述子单元状态包括激活状态和无效状态。
作为一种示例,步骤C20包括:当所述神经网络类型为常规RNN模型时,所述第一矩阵向量控制单元与所述第一非线性控制单元的子单元状态为所述激活状态,所述第一按元素控制单元为所述无效状态,所述第二矩阵向量控制单元与所述第二非线性控制单元的子单元状态为所述激活状态,所述第二按元素控制单元为所述无效状态,所述第三矩阵向量控制单元、所述第三非线性控制单元与所述第三按元素控制单元的子单元状态为所述无效状态。
作为一种示例,步骤C20包括:当所述神经网络类型为常规GRU模型时,所述第一矩阵向量控制单元、所述第一按元素控制单元与所述第一非线性控制单元的子单元状态为所述激活状态,所述第二矩阵向量控制单元、所述第二非线性控制单元与所述第二按元素控制单元的子单元状态为所述激活状态,所述第三矩阵向量控制单元与所述第三非线性控制单元的子单元状态为所述激活状态,所述第三按元素控制单元的子单元状态为所述无效状态。
作为一种示例,步骤C20包括:当所述神经网络类型为常规LSTM模型时,所述第一矩阵向量控制单元、所述第一按元素控制单元与所述第一非线性控制单元的子单元状态为所述激活状态,所述第二矩阵向量控制单元的子单元状态为所述无效状态,所述第二非线性控制单元与所述第二按元素控制单元的子单元状态为所述激活状态,所述第三矩阵向量控制单元、所述第三非线性控制单元与所述第三按元素控制单元的子单元状态为所述无效状态。
本申请实施例提供了一种硬件加速器运行优化方法,相比于通过单一且固定的硬件载体对循环神经网络硬件的数据处理过程进行加速的方法,本申请实施例通过依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行,实现了根据循环神经网络硬件的神经网络类型和神经网络结构,适配硬件加速器的加速单元参数以及单元处理粒度,始终为循环神经网络硬件提供合适的加速单元参数以及单元处理粒度,克服了当采用CPU硬件载体时,虽对于循环神经网络硬件的通用性较高,但容易出现延迟严重,加速效率低的情况,当采用ASIC硬件载体时,虽可通过优化循环神经网络硬件从而提高加速效率,但容易出现对于循环神经网络硬件的通用性较低情况的技术缺陷,从而兼顾了对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率。
实施例二
进一步地,基于本申请第一实施例,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,在步骤S20中,所述依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度的步骤包括:
步骤S21,获取各所述神经网络结构的结构复杂度,在各所述神经网络结构中选取结构复杂度大于或等于预设结构复杂度阈值的目标神经网络架构;
步骤S22,依据所述目标神经网络架构,选取所述硬件加速器中各子加速单元的单元处理粒度,其中,所述单元处理粒度至少包括并行处理门数量、并行输入向量维数量以及并行计算隐藏层节点数量中的一种。
在本实施例中,需要说明的是,所述预设结构复杂度阈值为预先设置的判定神经网络结构复杂的复杂度临界值。
可选地,所述依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度的步骤包括:获取所述循环神经网络硬件对应的神经网络结构,选取所述神经网络结构对应的所述硬件加速器中各子加速单元的单元处理粒度。
而在所述硬件加速器中配置各神经网络结构对应的单元处理粒度时,为各所述神经网络结构适配合适的单元处理粒度,使得硬件加速器中各子加速单元的运行占用和加速处理效率相互均衡,而配置多个单元处理粒度容易使得所述硬件加速器的资源占用过多,导致所述硬件加速器的可用内存较低。
因此,本实施例优选在所述硬件加速器中配置复杂度高的神经网络结构对应的单元处理粒度,从而提高了所述硬件加速器的通用性。
示例性地,步骤S21至步骤S22包括:依据各所述神经网络结构对应的输入向量维度数量、隐藏层节点数量和隐藏层数量,确定各所述神经网络结构的结构复杂度,在各所述神经网络结构中选取结构复杂度大于或等于预设结构复杂度阈值的目标神经网络架构;依据所述目标神经网络架构对应的目标输入向量维度数量、目标隐藏层节点数量以及目标隐藏层数量,选取所述硬件加速器中各子加速单元的并行处理门数量、并行输入向量维数量以及并行计算隐藏层节点数量,例如,选取所述并行处理门数量为4,所述并行输入向量维数量为16以及所述并行计算隐藏层节点数量为16。
其中,在步骤S30中,在所述控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行的步骤之后,还包括:
步骤S40,当所述硬件加速器的工作状态为调试状态时,将所述硬件加速器的工作模式配置为手动模式;
步骤S50,当所述硬件加速器的工作状态为业务状态时,将所述硬件加速器的工作模式配置为自动模式。
示例性地,步骤S40至步骤S50包括:当检测到所述硬件加速器的工作状态为调试状态时,将所述硬件加速器的工作模式配置为手动模式,其中,所述手动模式的运行全程信号由外部CPU发送;当检测到所述硬件加速器的工作状态为业务状态时,将所述硬件加速器的工作模式配置为自动模式,其中,所述自动模式的触发运行信号由外部CPU发送。
作为一种示例,参照图2,硬件加速器包括ARM处理器、DDR4同步动态存储器、RNN硬件加速器IP、AXI4-Lite接口和AXI总线,所述RNN硬件加速器IP包括系统配置、全局控制单元、输入输出数据处理、以及PE阵列,通过所述ARM处理器将训练得到的权值和偏置以及激励数据通过所述AXI总线写入所述DDR同步动态存储器,依据循环神经网络硬件对应的神经网络类型,通过所述系统配置确定所述硬件参数、所述加速单元参数以及各所述子加速单元的单元处理粒度,得到硬件加速器对应的配置信息,并将所述配置信息同步更新至所述全局控制单元,通过所述全局控制单元,向所述RNN硬件加速器IP的各结构发送所述配置信息,通过所述输入输出数据处理对所述权值和偏置以及激励数据进行处理,得到处理结果,并将所述处理结果发送至所述PE阵列,通过所述PE阵列对所述处理结果进行计算,得到计算结果,并将所述计算结果发送至所述输入输出数据处理,所述输入输出数据处理通过所述AXI总线将所述计算结果发送至所述DDR同步动态存储器,通过从所述DDR同步动态存储器中取出所述计算结果进行相应后处理。
本申请实施例提供了一种硬件加速器运行优化方法,相比于通过单一且固定的硬件载体对循环神经网络硬件的数据处理过程进行加速的方法,本申请实施例通过依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行,实现了根据循环神经网络硬件的神经网络类型和神经网络结构,适配硬件加速器的加速单元参数以及单元处理粒度,始终为循环神经网络硬件提供合适的加速单元参数以及单元处理粒度,克服了当采用CPU硬件载体时,虽对于循环神经网络硬件的通用性较高,但容易出现延迟严重,加速效率低的情况,当采用ASIC硬件载体时,虽可通过优化循环神经网络硬件从而提高加速效率,但容易出现对于循环神经网络硬件的通用性较低情况的技术缺陷,从而兼顾了对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率。
实施例三
本申请实施例还提供一种硬件加速器运行优化装置,应用于硬件加速器,所述硬件加速器用于为循环神经网络硬件提供硬件加速服务,所述硬件加速器运行优化装置包括:
确定模块,用于依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;
选取模块,用于依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;
控制模块,用于控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。
可选地,在所述依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数的步骤之前,所述硬件加速器运行优化装置还用于:
获取所述循环神经网络硬件的硬件参数,其中,所述硬件参数至少包括输入向量维度数量、隐藏层节点数量以及隐藏层数量中的一种;
依据所述硬件参数,确定所述循环神经网络硬件对应的神经网络类型。
可选地,所述加速单元参数包括加速控制类别和子单元状态,所述确定模块还用于:
依据所述神经网络类型,确定所述硬件加速器对应的加速控制类别;
依据所述加速控制类别,为所述硬件加速器中各加速计算子单元选取对应的子单元状态。
可选地,所述确定模块还用于:
依据所述神经网络类型,选取为所述循环神经网络硬件提供的加速服务对应的所述循环神经网络硬件的加速控制结构;
依据所述加速控制结构的结构类型,确定各所述加速控制结构对应的加速控制类别,其中,所述加速控制类别至少包括矩阵向量控制、非线性控制和按元素控制中的一种。
可选地,所述确定模块还用于:
获取各所述加速控制类别对应的加速计算子单元;
选取所述神经网络类型对应的各所述加速计算子单元的子单元状态。
可选地,所述选取模块还用于:
获取各所述神经网络结构的结构复杂度,在各所述神经网络结构中选取结构复杂度大于或等于预设结构复杂度阈值的目标神经网络架构;
依据所述目标神经网络架构,选取所述硬件加速器中各子加速单元的单元处理粒度,其中,所述单元处理粒度至少包括并行处理门数量、并行输入向量维数量以及并行计算隐藏层节点数量中的一种。
可选地,在所述控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行的步骤之后,所述硬件加速器运行优化装置还用于:
当所述硬件加速器的工作状态为调试状态时,将所述硬件加速器的工作模式配置为手动模式;
当所述硬件加速器的工作状态为业务状态时,将所述硬件加速器的工作模式配置为自动模式。
本申请提供的硬件加速器运行优化装置,采用上述实施例中的硬件加速器运行优化方法,解决了无法兼顾对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率的技术问题。与现有技术相比,本申请实施例提供的硬件加速器运行优化装置的有益效果与上述实施例提供的硬件加速器运行优化方法的有益效果相同,且该硬件加速器运行优化装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
实施例四
本申请实施例提供一种电子设备,所述电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例中的硬件加速器运行优化方法。
下面参考图3,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图3所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)中的程序或者从存储装置加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
通常,以下系统可以连接至I/O接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
本申请提供的电子设备,采用上述实施例中的硬件加速器运行优化方法,解决了无法兼顾对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率的技术问题。与现有技术相比,本申请实施例提供的电子设备的有益效果与上述实施例提供的硬件加速器运行优化方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
实施例五
本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例中的硬件加速器运行优化方法的方法。
本申请实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本申请提供的计算机可读存储介质,存储有用于执行上述硬件加速器运行优化方法的计算机可读程序指令,解决了无法兼顾对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率的技术问题。与现有技术相比,本申请实施例提供的计算机可读存储介质的有益效果与上述实施提供的硬件加速器运行优化方法的有益效果相同,在此不做赘述。
实施例六
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的硬件加速器运行优化方法的步骤。
本申请提供的计算机程序产品解决了无法兼顾对于循环神经网络硬件的通用性以及对于循环神经网络硬件的加速效率的技术问题。与现有技术相比,本申请实施例提供的计算机程序产品的有益效果与上述实施例提供的硬件加速器运行优化方法的有益效果相同,在此不做赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。

Claims (10)

1.一种硬件加速器运行优化方法,其特征在于,应用于硬件加速器,所述硬件加速器用于为循环神经网络硬件提供硬件加速服务,所述硬件加速器运行优化方法包括:
依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;
依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;
控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。
2.如权利要求1所述硬件加速器运行优化方法,其特征在于,在所述依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数的步骤之前,还包括:
获取所述循环神经网络硬件的硬件参数,其中,所述硬件参数至少包括输入向量维度数量、隐藏层节点数量以及隐藏层数量中的一种;
依据所述硬件参数,确定所述循环神经网络硬件对应的神经网络类型。
3.如权利要求2所述硬件加速器运行优化方法,其特征在于,所述加速单元参数包括加速控制类别和子单元状态,所述依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数的步骤包括:
依据所述神经网络类型,确定所述硬件加速器对应的加速控制类别;
依据所述加速控制类别,为所述硬件加速器中各加速计算子单元选取对应的子单元状态。
4.如权利要求3所述硬件加速器运行优化方法,其特征在于,所述依据所述神经网络类型,确定所述硬件加速器对应的加速控制类别的步骤包括:
依据所述神经网络类型,选取为所述循环神经网络硬件提供的加速服务对应的所述循环神经网络硬件的加速控制结构;
依据所述加速控制结构的结构类型,确定各所述加速控制结构对应的加速控制类别,其中,所述加速控制类别至少包括矩阵向量控制、非线性控制和按元素控制中的一种。
5.如权利要求3所述硬件加速器运行优化方法,其特征在于,依据所述加速控制类别,为所述硬件加速器中各加速计算子单元选取对应的子单元状态的步骤包括:
获取各所述加速控制类别对应的加速计算子单元;
选取所述神经网络类型对应的各所述加速计算子单元的子单元状态。
6.如权利要求1所述硬件加速器运行优化方法,其特征在于,所述依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度的步骤包括:
获取各所述神经网络结构的结构复杂度,在各所述神经网络结构中选取结构复杂度大于或等于预设结构复杂度阈值的目标神经网络架构;
依据所述目标神经网络架构,选取所述硬件加速器中各子加速单元的单元处理粒度,其中,所述单元处理粒度至少包括并行处理门数量、并行输入向量维数量以及并行计算隐藏层节点数量中的一种。
7.如权利要求1所述硬件加速器运行优化方法,其特征在于,在所述控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行的步骤之后,还包括:
当所述硬件加速器的工作状态为调试状态时,将所述硬件加速器的工作模式配置为手动模式;
当所述硬件加速器的工作状态为业务状态时,将所述硬件加速器的工作模式配置为自动模式。
8.一种硬件加速器运行优化装置,其特征在于,应用于硬件加速器,所述硬件加速器用于为循环神经网络硬件提供硬件加速服务,所述硬件加速器运行优化装置包括:
确定模块,用于依据所述循环神经网络硬件对应的神经网络类型,确定所述硬件加速器对应的加速单元参数;
选取模块,用于依据各所述神经网络类型对应的神经网络结构,选取所述硬件加速器中各子加速单元的单元处理粒度;
控制模块,用于控制所述硬件加速器以所述加速单元参数以及各所述单元处理粒度运行。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的硬件加速器运行优化方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现硬件加速器运行优化方法的程序,所述实现硬件加速器运行优化方法的程序被处理器执行以实现如权利要求1至7中任一项所述硬件加速器运行优化方法的步骤。
CN202210679596.7A 2022-06-16 2022-06-16 硬件加速器运行优化方法、装置、电子设备及存储介质 Pending CN115099398A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210679596.7A CN115099398A (zh) 2022-06-16 2022-06-16 硬件加速器运行优化方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210679596.7A CN115099398A (zh) 2022-06-16 2022-06-16 硬件加速器运行优化方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115099398A true CN115099398A (zh) 2022-09-23

Family

ID=83291876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210679596.7A Pending CN115099398A (zh) 2022-06-16 2022-06-16 硬件加速器运行优化方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115099398A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115860049A (zh) * 2023-03-02 2023-03-28 瀚博半导体(上海)有限公司 一种数据调度方法和设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115860049A (zh) * 2023-03-02 2023-03-28 瀚博半导体(上海)有限公司 一种数据调度方法和设备

Similar Documents

Publication Publication Date Title
CN109032706B (zh) 智能合约执行方法、装置、设备和存储介质
CN113742153B (zh) 设备测试方法、装置、可读介质及电子设备
CN110865898B (zh) 崩溃调用栈聚合的方法、装置、介质和设备
JP2017530350A (ja) 要求されたセンサ特性に基づく自動センサ選択
CN115099398A (zh) 硬件加速器运行优化方法、装置、电子设备及存储介质
CN113392018B (zh) 流量分发方法、装置、存储介质及电子设备
CN111858381B (zh) 应用程序容错能力测试方法、电子设备及介质
CN111654539B (zh) 基于云原生的物联网操作系统构建方法、系统及电子设备
CN111324258B (zh) 多级下拉菜单配置项内容生成方法、装置、设备和介质
CN110333843B (zh) 虚拟机高精度定时器的实现方法、装置及电子设备
CN111339643B (zh) 资源消耗评估方法、装置、电子设备及存储介质
CN113709573B (zh) 配置视频特效方法、装置、设备及存储介质
CN112506781B (zh) 测试监控方法、装置、电子设备、存储介质及程序产品
CN114968644A (zh) 系统软件转储方法、装置、电子设备及可读存储介质
CN111309323B (zh) 参数初始化方法、装置和电子设备
CN111338827B (zh) 表格数据的粘贴方法、装置以及电子设备
EP3191915A1 (en) Individual device reset and recovery in a computer
US20210173705A1 (en) Method and apparatus for software isolation and security utilizing multi-soc orchestration
CN115827415B (zh) 系统进程性能测试方法、装置、设备和计算机介质
CN115470292B (zh) 区块链共识方法、装置、电子设备及可读存储介质
CN112904366B (zh) 应用于扫地机的重定位方法、装置、电子设备和介质
CN113448550B (zh) 实现类的收集管理方法、装置、电子设备及计算机介质
CN114116238B (zh) 数据处理优化方法、装置、电子设备及可读存储介质
CN112688863B (zh) 网关数据处理方法、装置及电子设备
WO2022033446A1 (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