CN114648103A - 用于处理深度学习网络的自动多目标硬件优化 - Google Patents
用于处理深度学习网络的自动多目标硬件优化 Download PDFInfo
- Publication number
- CN114648103A CN114648103A CN202111353238.9A CN202111353238A CN114648103A CN 114648103 A CN114648103 A CN 114648103A CN 202111353238 A CN202111353238 A CN 202111353238A CN 114648103 A CN114648103 A CN 114648103A
- Authority
- CN
- China
- Prior art keywords
- workload
- processing
- deep learning
- learning process
- search
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 80
- 238000013135 deep learning Methods 0.000 title claims abstract description 64
- 238000005457 optimization Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 87
- 230000008569 process Effects 0.000 claims abstract description 80
- 238000013507 mapping Methods 0.000 claims abstract description 37
- 238000010801 machine learning Methods 0.000 claims abstract description 28
- 238000013528 artificial neural network Methods 0.000 claims description 44
- 230000002787 reinforcement Effects 0.000 claims description 42
- 230000002068 genetic effect Effects 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 17
- 239000000872 buffer Substances 0.000 claims description 10
- 230000001537 neural effect Effects 0.000 claims description 9
- 239000003795 chemical substances by application Substances 0.000 description 18
- 208000018910 keratinopathic ichthyosis Diseases 0.000 description 16
- 238000013527 convolutional neural network Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 12
- 230000004913 activation Effects 0.000 description 11
- 238000001994 activation Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000009471 action Effects 0.000 description 9
- 210000002569 neuron Anatomy 0.000 description 9
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004146 energy storage Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013178 mathematical model Methods 0.000 description 3
- 230000035772 mutation Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100005911 Mus musculus Cer1 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Neurology (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开涉及用于处理深度学习网络的自动多目标硬件优化。公开了用于处理深度学习网络的自动多目标硬件优化。存储介质的实施例包括指令,这些指令用于:获取用于处理深度学习工作负载的多个性能指标的客户偏好;生成所述深度学习工作负载的工作负载表示;将所述工作负载表示提供至机器学习处理;基于所述机器学习处理生成具有硬件映射的工作负载可执行文件;以及将所述工作负载可执行文件应用于对所述深度学习工作负载的处理。
Description
技术领域
本公开总体涉及机器学习,并且更具体地,涉及用于处理深度学习网络的硬件优化。
背景技术
随着神经网络的能力指向深度学习的更多目标,此类网络以渐增数量的操作和设置运行。然而,神经网络处理的有效性受到用于网络推理的硬件选择的极大影响。
对深度学习工作负载的性能的优化通常为高度耗时的工作。当性能可由一些不同性能指标(诸如吞吐量、延迟、核覆盖和功率消耗)来限定时,尤其如此。通常,针对深度学习工作负载启用的优化过程很大程度上手动地执行。
例如,某些启发式方法可用于将各种张量映射至板载存储器,或将原子操作映射至板载计算核。所得的网络性能通常显著地取决于这种硬件映射的高效性。此外,适用的性能测量的任何调整可能需要重复硬件映射,而进一步增加操作的成本。
发明内容
根据本公开的一个方面,提供了一种装置,包括:获取组件,用于获取用于处理深度学习工作负载的多个性能指标的客户偏好;生成组件,用于生成所述深度学习工作负载的工作负载表示;提供组件,用于将所述工作负载表示提供至机器学习处理以生成工作负载可执行文件,所述工作负载可执行文件包括基于所述多个性能指标的客户偏好的硬件映射;以及应用组件,用于将所述工作负载可执行文件应用于对所述深度学习工作负载的处理。
根据本公开的另一方面,提供了一种装置,包括:一个或多个处理器;以及用于存储数据的存储器,该数据包括用于一个或多个神经网络的数据;其中所述一个或多个处理器用于:获取用于处理深度学习工作负载的多个性能指标的客户偏好;生成所述深度学习工作负载的工作负载表示;将所述工作负载表示提供至机器学习处理以生成工作负载可执行文件,所述工作负载可执行文件包括基于所述多个性能指标的客户偏好的硬件映射,所述机器学习处理包括强化学习处理;以及将所述工作负载可执行文件应用于对所述深度学习工作负载的处理。
根据本公开的另一方面,提供了一种计算***,包括:一个或多个处理器;以及用于存储数据的存储器,该数据包括用于一个或多个神经网络的数据;其中所述计算***包括优化工具以优化神经网络的处理,所述计算***应用所述优化工具以执行以下操作:获取用于处理深度学习工作负载的多个性能指标的客户偏好;生成所述深度学习工作负载的工作负载表示;将所述工作负载表示提供至机器学习处理以生成工作负载可执行文件,所述工作负载可执行文件包括基于所述多个性能指标的客户偏好的硬件映射;以及将所述工作负载可执行文件应用于对所述深度学习工作负载的处理,包括将所述工作负载可执行文件应用于推理处理。
附图说明
为了可以详细地理解本公开实施方式的上述特征的方式,对上文简要地概述的实施方式的更具体描述可参考实施方式,这些实施方式中的一些在附图中示出。然而,应当注意,附图示出了典型实施方式,并且因此不应视为限制其范围。附图未按比例绘制。一般来讲,相同的附图标号将在(一个或多个)附图和所附书面描述中通篇用于指代相同或类似部分。
图1是根据一些实施方式的用于深度学习的多目标硬件优化的图示;
图2根据一些实施方式示出了用于输入性能指标偏好的界面的实施例;
图3是根据一些实施方式的用于利用强化学习来优化硬件映射的操作的图示;
图4是根据一些实施方式的在用于硬件映射优化的基于群体的强化学习***中产生代理奖励的操作的图示;
图5是根据一些实施方式的用于硬件优化的基于群体的强化学习方法的图示;
图6是示出用于深度学习执行的自动硬件优化的过程的流程图;
图7A至图7C根据一些实施方式示出了可利用处理硬件进行处理的神经网络的实施例,该处理硬件已根据客户偏好进行配置;以及
图8是根据一些实施方式的实现用于处理深度学习网络的自动硬件优化的例示性电子计算设备的示意图。
具体实施方式
本公开的实施方式描述了用于处理深度学习网络的自动多目标硬件优化。在一些实施方式中,设备、***或过程提供了能够对神经网络推理硬件的一定范围的性能目标进行共同优化的自动数据驱动优化框架。
在深度学习中,用于深度学习的处理硬件的高效映射对于处理特定工作负载的神经网络的性能可具有极大影响。另外,在许多实施方式中,客户可能不能识别单个性能目标或指标(其可能称为KPI(关键性能指标)、称为优化目标)而是可能将多个KPI视为是重要的。在此类情况下,客户通常必须呈现所有的可用选项以在权衡之间做出熟练选择。
为了向客户呈现可用权衡的视图,所需的优化工作随着性能指标的数量呈指数增长。手动地优化单个性能指标是困难的,但同时优化多个性能指标对于手动或规则驱动的优化是不切实际的。
用于管理多个子KPI的典型方法是创建主要或主KPI,该主要或主KPI经由子KPI的线性或非线性组合来囊括预期优化目标。这种方法的显著缺点在于,对于给定推理硬件和工作负载,每次主KPI改变时,硬件映射策略必须重新进行。这可能发生在以下情况下,例如,两个不同的客户希望在同一硬件上运行相同或类似的工作负载,但对不同的子KPI评价不同。
在一些实施方式中,设备、***或过程提供了能够对神经网络推理计算硬件的多个性能指标进行共同优化的自动数据驱动优化框架。该优化框架可实施以提供相比于手工设计的、基于规则的优化策略的显著性能改善。
在一些实施方式中,***通过实施不同映射策略的群体来构建帕累托最佳前沿(Pareto optimal front)(即这样的操作:其中,没有目标可以在不弱化至少一个其他目标的情况下得到改善),这些映射策略各自优化***的典型子KPI(例如,功率消耗、吞吐量、核覆盖、延迟和任何其他性能指标)的一些随机组合。在一些实施方式中,可以提供这种操作而不引发额外成本,因为基于群体的解决方案是用于解决优化问题的核强化学习驱动方法。在一些实施方式中,这种特征被应用以选择与客户希望的具体主KPI最接近地匹配的候选解决方案。一旦获得经训练的群体,则KPI的多种变化可被解决,而无需重新训练优化器。
在一些实施方式中,为解决多目标优化要求,该问题被表述为强化学习(RL)问题,其中代理因发现针对给定集合的性能指标的最优硬件映射策略而得到奖励。一般来说,强化学习指的是一种形式的机器学习方法,其中代理在下一时间步骤中获得延迟奖励以评估其先前的动作。强化学习操作一般包括代理和环境,其中代理为RL算法,并且环境为代理所作用的目标。
在一些实施方式中,应用了基于群体的RL算法,其中“学习者”的群体在一个或多个目标(一个或多个性能指标)上协作优化,同时生成数据并且彼此共享。此外,遗传搜索模块(神经进化)允许***将策略直接彼此组合,以显著地加速无梯度学习情形的搜索过程。此类RL算法的应用相对于图5更具体地描述。
在一些实施方式中,可以使用优化工具来缓解针对子目标的每个独特组合而重新训练策略的需求,从而允许显著的操作改善,因为不同客户在对不同的性能指标进行加权时可能具有非常不同的优先级。优化工具还可由硬件和软件设计者使用,以快速地识别工作负载启用的本质瓶颈。对于由优化工具所生成的每个优化结果,硬件和软件设计者能够通过检查所部署的优化解决方案的硬件追踪来快速地确定瓶颈所在。通过了解优化之后的瓶颈,设计者然后可确定当前最关键的工作项。
图1是根据一些实施方式的用于深度学习的多目标硬件优化的图示。如图所示,计算设备或***105利用计算机硬件来处理特定客户或其他代理150的深度学习工作负载160。计算硬件包括一组处理资源,该组处理资源可包括一个或多个处理器110的资源(示为具有处理核115的Proc-1至Proc-N)、硬件加速器的资源、或其他处理元件。该组处理资源可包括但不限于一个或多个中央处理单元(CPU)、一个或多个图形处理单元(GPU)、一个或多个嵌入式处理器或其他类型处理元件的资源。还示出了计算机存储器120和缓存存储器125,其保持数据处理,该数据处理包括对深度学习工作负载的处理。
在具体情形下,深度学习工作负载160将根据关于一组多个性能指标的偏好(示为KPI偏好165)进行处理,其中该组性能指标可包括但不限于吞吐量、延迟、核覆盖和功率消耗。例如,KPI偏好可包括性能指标之间的加权、一个或多个性能指标的阈值、或两者。在一些实施方式中,设备或***还包括自动硬件优化工具,用于深度学习网络130的处理。在一些实施方式中,优化工具130根据KPI偏好165来优化设备或***的处理资源。
在一些实施方式中,为了响应于性能指标偏好而生成一个或多个硬件映射,设备、***或过程利用强化学习(RL)操作,如下:
(1)基于群体的强化学习算法:在一些实施方式中,不同的子群体基于不同的典型KPI(诸如吞吐量、功率消耗、核覆盖和延迟)进行优化。优化过程找出每个KPI的帕累托最佳前沿。群体的每个成员为独立策略,其可以对给定工作负载执行硬件映射。
(2)性能指标偏好的加权:用户(客户或顾客)被允许对KPI进行加权以指示用户的偏好。KPI的加权可包括但不限于对界面的使用,诸如图2所示的实施例。
(3)搜索硬件映射:设备、***或过程提供沿着(1)所生成的帕累托最佳前沿的搜索,以识别具有最接近加权KPI的一个或多个策略并在运行时间期间部署该一个或多个策略中的策略。
图2根据一些实施方式示出了用于输入性能指标偏好的界面的实施例。在一些实施方式中,设备、***或过程可包括界面(诸如图2所示的实施例性能指标偏好界面200)以允许客户输入性能指标偏好。如下文进一步描述的,设备、***或过程然后自动地优化硬件以用于对深度学习工作负载的处理。关于深度神经网络操作和结构的其他细节在图7A至图7C中示出。
在一些实施方式中,界面200可包括用于性能指标加权210的输入,相对加权表示关于性能指标中的一者或多者的客户偏好。输入被示出为滑动条,其用于输入特定组的性能指标的相对权重,性能指标在本图示中为功率、吞吐量和延迟。界面200还可包括用于性能指标中的一者或多者的阈值(硬性约束)220的输入。在本图示中,相关客户已提供了功率小于11瓦并且吞吐量大于3000ips(指令每秒)的阈值。
在一些实施方式中,设备、***或过程基于当前性能指标偏好而自动地生成一个或多个硬件映射。界面200还可包括输出230,其示出基于客户指示的性能偏好的一个或多个最佳硬件映射。在本具体实施例中,多个不同的映射已被提供以允许客户选择自动生成的硬件映射之一。在可选实施例中,单个最佳匹配硬件映射可被提供为输出。
虽然图2提供了用于客户输入性能指标偏好的界面的具体实施例,但是实施方式不限于利用此类界面的操作。实施方式可包括用于接收或确定具体深度学习工作负载的性能指标偏好的任何过程或设备。其他实施例可包括访问特定客户的已知偏好设置,从第三方接收性能指标偏好,从一种深度学习工作负载类型猜测性能指标偏好,等等。
通常的强化学习设置由与环境进行交互以执行给定任务的代理组成。这种设置通常被形式化为马尔科夫决策过程(Markov Decision Process,MDP),该过程由有限数量的离散时间步骤上的交互组成。在每个时间步骤t,代理观察状态st,并利用其策略π将这种状态映射至动作at。代理接收标量奖励rt,并过渡至下一状态st+1。该过程持续,直至代理到达标记事件结束的终止状态为止。
在本过程中,回报表示如下:
在一些实施方式中,编译器的硬件映射决策转化为RL设置,其中RL代理决定硬件映射。因此,对计算图表进行映射的问题将转换为马尔可夫决策过程(MDP)设置,其提供状态、动作和回报。图3和图4描述了这种操作的实施例过程。
图3是根据一些实施方式的用于利用强化学习来优化硬件映射的操作的图示。对于上文所描述的RF表述,可以呈现图表神经网络的计算图表的状态空间。工作流程的一个实施方式在图3中示出。图3示出了图表神经网络整合为状态空间的预处理器,该状态空间通过RL算法以端到端方式进行训练。图表神经网络利用深度神经网络的计算图表设置的固有性质,并且使整个训练过程非常易处理并且可扩展。
更具体地,如图3所示,接收输入工作负载305,并且产生工作负载表示310。在该操作中,生成工作负载图表312以产生图表神经网络314。神经网络的图表提供至图表U-Net330,其产生每个工作负载节点的特征向量332,以及神经网络的激活映射334和加权映射336。
在一些实施方式中,工作负载表示310提供至强化学习(RL)优化器320,RL优化器包括使用一种或多种强化学习算法(代理)340,其可以包括但不限于A2C(有利动作评价(Advantage Actor Critic))、Hilltop CERL或Reinforce。然后,RL优化器产生工作负载可执行文件350。
图4是根据一些实施方式的在用于硬件映射优化的基于群体的强化学习***中产生代理奖励的操作的图示。在用于生成对RL代理的奖励的所示操作中,接收量化顾客工作负载402,包括深度学习模型404和模型数据406。工作负载402接收于编译器408处,在处理中利用特定启发式方法410和强化学习412。编译器408生成包括硬件映射416的可执行文件414并进行到处理操作。
在一些实施方式中,可执行文件接收于推理应用426处,以用于由推理硬件428处理。将执行硬件追踪,示为硬件追踪开始420和硬件追踪停止422。
然后,使用推理和硬件追踪的结果来执行分析硬件追踪430,其中分析结果440包括例如平均延迟和平均帧率。然后,此类结果在强化学习操作中提供为对RL代理的奖励442。
图5是根据一些实施方式的用于硬件优化的基于群体的强化学习方法的图示。图5示出了在实施方式使用的强化学习过程500的概述。在一些实施方式中,每个神经网络表示独立RL策略,其将工作负载的状态映射至对应于实际硬件映射的动作。在一些实施方式中,生成的操作一般可利用与基于搜索的算法相组合的基于梯度的算法,以提供强化学习。
在一些实施方式中,学习者的群体基于标准策略梯度方法进行训练。如图5所示,策略梯度学习者505(示为L1到LK)从资源管理器510接收资源515,资源管理器510从此类学习者505接收元数据520。基于梯度的学习者505在面对稀疏或复杂奖励时通常为非稳定的学习者,诸如具有复杂KPI的情况,但由于基于梯度的学习而是快速学习者。
在一些实施方式中,策略梯度学习者505将确定的基于梯度的策略530提供给基于搜索的动作者552的第二群体,例如遗传算法550的动作者。遗传算法指代用于通过生物启发运算符(诸如变异、交叉和选择)而生成对优化和搜索问题的解决方案的算法。遗传算法550可包括通常所用的神经进化算法。一般来说,神经进化是一种形式的人工智能,其使用进化算法来生成人工神经网络、参数、拓扑和规则。在一些实施方式中,基于搜索的动作者552利用神经进化在其自己的参数空间中搜索最优状态-动作映射。如图所示,存在策略的选择554,然后是策略的交叉和变异556,这些策略反馈至动作者552。
孤立地,可预期神经进化过慢并且样本低效而无法得出可用解决方案。然而,神经进化对于主要目标的优化(其为KPI的最大化)是非常高效的。因此,两个群体(策略梯度学习者505和基于搜索的动作者552)在操作方面为彼此互补的。两个群体之间的信息交换通过基于梯度的策略530从策略梯度学习者505至基于搜索的动作者552的进化群体的直接迁移来实现。此外,所有策略都将其经验535(状态→动作→奖励)记录至一个或多个重放缓冲器540中,重放缓冲器540反馈至策略梯度学习者505。
以这种方式,快速但较不稳定的基于梯度的学习者505能够从基于进化群体搜索的动作者552所探索的稳定轨迹中取样,并且因此可应用于提供自动多目标硬件优化。然后,学习过程产生了新兴学习者560以用于应用于硬件选择。
注意,在基于标准群体的RL方法中,进化群体基于单个拟合函数进行分级。精英策略被保持并用于产生高性能子代。在任何给定时间,冠军策略被部署为最优RL解决方案。在一些实施方式中,对于硬件映射操作,该方法转换成使得进化群体(而非单个KPI)允许多个典型KPI。在这种情况下,典型KPI为所有的子目标,这些所有的子目标可针对给定硬件平台和API进行优化。例如,如果延迟和功率为两个典型KPI,进化块中的子群体可限定为成单独地使此类KPI最大化。因此,在本实施例中,在任何给定时间,进化群体的自己可以是精英(即优化)功率优化器,另一自己可以是精英延迟优化器。另外,因为进化还涉及通过父代策略的突变和交叉556而生成子代,所以进化群体的一些策略将高效地优化这两个KPI的一些组合。在一些实施方式中,设备、***或过程具体地解决了这些策略的帕累托前沿。这允许实施方式针对不同子KPI的给定加权组合而沿着该前沿进行搜索,并且因此解决基于客户的特定KPI偏好的优化解决方案。
图6是示出用于深度学习执行的自动硬件优化的过程的流程图。在一些实施方式中,过程600包括获取用于处理深度学习工作负载的多个性能指标的客户偏好605。性能偏好可包括多个性能指标的相对加权,这些性能指标可表示为多个KPI偏好。该多个性能指标可包括但不限于吞吐量、延迟、核覆盖和功率消耗。性能偏好还可包括性能指标中的一者或多者的阈值,或关于此类性能指标的其他限制。性能偏好的接收可包括经由界面从客户接收输入,诸如图2所示的实施例界面。
在一些实施方式中,该过程还包括生成输入工作负载的工作负载表示610,其可包括生成每个工作负载节点的特征向量。该过程然后继续将工作负载表示提供至强化学习(RL)处理620,包括:
——利用多个策略梯度学习者处理策略625,包括从资源管理器接收资源和将元数据提供至资源管理器。
——将基于梯度的策略从策略梯度学习者提供至多个基于搜索的动作者630,诸如以用于处理遗传算法(例如,神经进化)。
——将来自策略梯度学习者和遗传算法动作者的经验提供至一个或多个重放缓冲器635,从而将反馈提供至策略梯度学习者625。
——从基于搜索的动作者选择针对交叉和变异的策略(以组合来自父代的遗传信息来生成新策略)640。
——根据遗传算法生成新兴学习者645。
在一些实施方式中,该过程继续基于强化学习处理生成具有优化硬件映射的工作负载可执行文件650。在一些实施方式中,该可执行文件然后可根据硬件映射而应用于特定推理硬件上的推理应用655,并且在推理操作期间执行硬件追踪660。然后分析硬件追踪660,使得在强化学习处理620的性能方面生成对强化代理的奖励670。
图7A至图7C根据一些实施方式示出了可利用处理硬件进行处理的神经网络的实施例,该处理硬件已根据客户偏好进行配置。客户偏好包括关于一组多个性能指标的客户偏好,诸如经由界面所接收的客户偏好,诸如图2所示的界面。
如图7A所示,神经网络740包括所连接单元或节点745的集合,还称为人工神经元。通常,节点布置在多个层中。不同的层可对其输入执行不同的转换。在本简化图示中,神经网络包括多层中的节点,这些层包括输入层750、一个或多个隐藏层755和输出层760。每个连接部(或边缘)765可将信号传送至其他节点745。接收信号的节点745然后可处理该信号并且向与之连接的节点发出信号。节点和边缘通常具有权重,该权重随着学习进行而调整。
可使用神经网络(包括前馈网络、CNN(卷积神经网络)和RNN(递归神经网络))来执行深度学习。深度学习指代利用深度神经网络的机器学习。深度学习所用的深度神经网络为人工神经网络,该人工神经网络包括多个隐藏层,不同于仅包括单个隐藏层的浅神经网络。更深的神经网络对于训练通常为更计算密集的。然而,网络的额外隐藏层允许多步骤模式识别,使得相对于浅机器学习技术减少输出误差。
深度学习所用的深度神经网络通常包括执行特征识别的前端网络,前端网络耦合至后端网络,后端网络表示数学模型,数学模型可基于提供至该模型的特征表示而执行操作(例如,目标分类、语音识别等)。深度学习使得能够执行机器学习而无需对于模型执行手工制作特征工程。相反,深度神经网络可基于输入数据内的统计结构或关联性而学习特征。所学习的特征可提供至数学模型,该数学模型可将所检测特征映射至输出。网络所用的数学模型一般特定于将执行的具体任务,并且不同模型将用于执行不同任务。
一旦构建了神经网络,则学习模型可应用于该网络以训练网络来执行具体任务。学习模型描述如何调整该模型内的权重以减少网络的输出误差。误差的反向传播为用于训练神经网络的常见方法。输入向量被提供至网络以用于处理。网络的输出利用损失函数来与期望输出相比较,并且针对输出层中的每个神经元计算误差值。误差值然后反向传播,直至每个神经元具有大致地表示其对于原始输出的贡献的相关误差值为止。网络然后可利用算法(诸如随机梯度下降算法)从这些误差进行学习以更新神经网络的权重。
图7B示出了CNN内的各种层。如图7B所示,用于例如模型图像处理的示例性CNN可接收描述输入图像的红、绿和蓝(RGB)分量(或用于处理的任何其他相关数据)的输入702。输入702可由多个卷积层(例如,卷积层704和卷积层706)进行处理。多个卷积层的输出可选地由一组完全连接层708进行处理。完全连接层的神经元具有对前一层的所有激活的完全连接,如先前针对前馈网络所描述。完全连接层708的输出可用于从网络生成输出结果。完全连接层708内的激活可利用矩阵倍增而非卷积来进行计算。并非所有CNN实施方式都利用完全连接层708。例如,在一些实施方式中,卷积层706可生成CNN的输出。
卷积层被稀疏地连接,这不同于完全连接层708所见的传统神经网络配置。传统神经网络层被完全地连接,使得每个输出单元与每个输入单元进行交互。然而,卷积层被稀疏地连接,因为字段的卷积的输出被输入(替代字段中每个节点的相应状态值)至后续层的节点,如图所示。与卷积层相关联的内核执行卷积运算,其输出被发送至下一层。在卷积层内执行的降维是使得CNN能够缩放以处理大图像的一个方面。
图7C示出了CNN的卷积层内的示例性计算阶段。对CNN的卷积层712的输入可以在卷积层714的三个阶段进行处理。该三个阶段可包括卷积阶段716、检测器阶段718和汇集阶段720。卷积层714然后可将数据输出至连续卷积层722。网络的最后的卷积层可生成输出特征映射数据、或将输入提供至完全连接层以例如生成CNN的输入的分类值。
在卷积阶段716,一些卷积可并行地执行以产生一组线性激活。卷积阶段716可包括仿射变换,该仿射变换为可规定为线性转换加平移的任何转换。仿射变换包括旋转、平移、缩放、以及这些转换的组合。卷积阶段计算函数(例如,神经元)的输出,这些函数连接至输入的具体区域,这些具体区域可确定为与神经元相关联的局部区域。神经元计算神经元的权重和神经元所连接局部输入的区域之间的点积。卷积阶段916的输出限定一组线性激活,该组线性激活通过卷积层714的连续阶段进行处理。
线性激活可由检测器阶段718进行处理。在检测器阶段718,每个线性激活通过非线性激活函数进行处理。非线性激活函数增加了整体网络的非线性性质,而不影响卷积层的相应字段。可使用一些类型的非线性激活函数。一种特定类型为整流线性单元(ReLU),该整流线性单元利用定义为的激活函数,使得激活的阈值为0。
汇集阶段720利用汇集函数,该汇集函数以附近输出的汇总统计来替换卷积层706的输出。汇集函数可用于将平移不变性引入神经网络,使得对输入的较小平移不改变所汇集的输出。对局部平移的不变性可用于以下情形,其中输入数据中特征的存在比该特征的精确位置是更重要的。在汇集阶段720期间,可使用各种类型的汇集函数,包括最大汇集、平均汇集和l2标称汇集。此外,一些CNN实施方式不包括汇集阶段。相反,此类实施方式替代了额外的卷积阶段,该额外卷积阶段相对于先前的卷积阶段具有增加的步幅。
卷积层714的输出然后可由下一层722进行处理。下一层722可为额外卷积层或完全连接层708中的一者。例如,图7A的第一卷积层704可输出至第二卷积层706,而第二卷积层可输出至完全连接层708的第一层。
图8是根据一些实施方式的实现用于处理深度学习网络的自动硬件优化的例示性电子计算设备的示意图。在一些实施方式中,实施例计算设备800包括一个或多个处理器810,一个或多个处理器810包括一个或多个处理器核818。在一些实施方式中,该计算设备提供能够对神经网络推理硬件的广泛范围的性能目标进行共同优化的自动数据驱动优化框架,如图1至图7C进一步所示。
在一些实施方式中,计算设备800获取用于处理深度网络的一组性能偏好,其在图8中示为从客户880接收深度学习工作负载882和一组KPI偏好884的计算设备800。在一些实施方式中,计算设备利用KPI偏好来确定优化硬件解决方案。
计算设备800还包括存储器,该存储器可包括只读存储器(ROM)842和随机存取存储器(RAM)846。ROM 842的一部分可用于存储或以其他方式维持基本输入/输出***(BIOS)844。BIOS 844例如通过使得处理器核818加载和/或执行一个或多个机器可读指令集814来将基本功能提供至计算设备800。在实施方式中,一个或多个机器可读指令集814中的至少一些使得处理器核818中的至少一部分处理数据,包括用于卷积神经网络(CNN)815的数据。在一些实施方式中,一个或多个指令集814可存储在一个或多个数据存储设备860中,其中处理器核818能够从一个或多个非暂态数据存储设备860读取数据和/或指令集814并且将数据写入一个或多个数据存储设备860。
计算设备800为基于处理器的设备的具体实施例。相关领域的技术人员将理解,所示实施方式以及其他实施方式可以利用其他基于处理器的设备配置来实践,包括便携电子器件或手持电子设备,例如智能电话、便携计算机、可佩戴计算机、消费类电子器件、个人计算机(“PC”)、网络PC、微型计算机、服务器刀片、大型计算机,等等。
实施例计算设备800可实施为另一***的部件,诸如,例如移动设备、可佩戴设备、膝上型计算机、平板计算机、台式计算机、服务器等。在一个实施方式中,计算设备800包括或可集成在(不限于)以下项内:基于服务器的游戏平台;游戏控制台,包括游戏和媒体控制台;移动游戏控制台、手持游戏控制台、或在线游戏控制台。在一些实施方式中,计算设备800为移动电话、智能电话、平板计算设备或移动互联网连接设备(诸如具有低内部存储能力的膝上型电脑)的一部分。在一些实施方式中,计算设备800为物联网(IoT)设备的一部分,该物联网设备通常为资源受限设备。IoT设备可包括嵌入式***、无线传感器网络、控制***、自动化(包括家庭和建筑自动化)、以及其他设备和电器(例如照明器具、恒温器、家庭安全***和摄像机、以及其他家用电器),它们支持一个或多个共同生态***;并且可经由与该生态***相关联的设备进行控制,诸如智能电话和智能扬声器。
计算设备800还可包括、耦合或集成在以下项内:可佩戴设备,诸如智能手表可佩戴设备;智能眼镜或衣物,其具有增强现实(AR)或虚拟现实(VR)特征,以提供视觉、听觉或触觉输出来补充现实世界视觉、听觉或触觉体验或以其他方式提供文本、音频、图形、视频、全息图像或视频,或触觉反馈;其他增强现实(AR)设备;或其他虚拟现实(VR)设备。在一些实施方式中,计算800包括电视或机顶盒设备或为其一部分。在一个实施方式中,计算设备800可包括、耦合或集成在自驱动车辆内,诸如公共汽车、拖拉机拖车、汽车、摩托车或电动自行车、飞机或滑翔机(或其任何组合)。自驱动车辆可利用计算***800来处理在该车辆周围所感测的环境。
计算设备800可额外地包括以下项中的一者或多者:存储器缓存820、图形处理单元(GPU)812(在一些实施方式中,其可用作硬件加速器)、无线输入/输出(I/O)接口825、有线I/O接口830、功率管理电路850、能量存储设备(诸如电池、至外部电源的连接部)、以及用于连接至网络872的网络接口870。下述讨论提供了形成例示性计算设备800的部件的简要通用描述。非限制性实施例计算设备的示例800可包括台式计算设备、刀片服务器设备、工作站、或类似设备或***。
处理器核818可包括任何数量的硬连线或可配置电路,其中的一些或全部可包括电子部件、半导体设备和/或逻辑元件(它们部分地或全部地设置于PC、服务器、或能够执行处理器可读指令的其他计算设备中)的可编程和/或可配置组合。
计算设备800包括总线或类似的通信链路816,其通信地耦合于各种***部件之间并促进信息和/或数据在其间的交换。计算设备800可在此指代为单数,但这非旨在将实施方式限制为单个计算设备800,因为在某些实施方式中,可存在一个以上的计算设备800,这些计算设备800整合、包括或包含任何数量的通信地耦合、共同定位或远程联网的电路或设备。
处理器核818可包括任何数量、类型或组合的当前可用或以后开发的能够执行机器可读指令集的设备。
处理器核818可包括(或可耦合至)但不限于任何当前或以后开发的单核或多核处理器或微处理器,例如:一个或多个片上***(SOC);中央处理单元(CPU);数字信号处理器(DSP);图形处理单元(GPU);专用集成电路(ASIC)、可编程逻辑单元、现场可编程门阵列(FPGA),等等。除非另行描述,否则图8所示的各种块的构造和操作为常规设计。因此,此类块在此无需更详细地描述,因为它们将被相关领域的技术人员理解。在计算设备800的至少一些部件处互连的总线816可采用任何当前可用或以后开发的串联或并联总线结构或架构。
至少一个无线I/O接口825和至少一个有线I/O接口830可通信地耦合至一个或多个物理输出设备(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。接口可通信地耦合至一个或多个物理输入设备(定点设备、触摸屏、键盘、触觉设备等)。至少一个无线I/O接口825可包括任何当前可用或以后开发的无线I/O接口。无线I/O接口的实施例包括但不限于近场通信(NFC)等。有线I/O接口830可包括任何当前可用或以后开发的有线I/O接口。有线I/O接口的实施例包括但不限于通用串行总线(USB)、IEEE 1394(“火线”)等。
数据存储设备860可包括一个或多个硬盘驱动器(HDD)和/或一个或多个固态存储设备(SSD)。一个或多个数据存储设备860可包括任何当前或以后开发的存储设备、网络存储设备、和/或***。此类数据存储设备860的非限制性实施例可包括但不限于任何当前或以后开发的非暂态存储设备或设备,诸如一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻式存储设备、一个或多个分子存储设备、一个或多个量子存储设备、或其各种组合。在一些实施方式中,一个或个数据存储设备860可包括一个或多个可移动存储设备,诸如一个或多个闪存驱动器、闪存存储器、闪存存储单元、或能够通信的耦合至计算设备800并与之解耦的类似器件或设备。
一个或多个数据存储设备860可包括接口或控制器(未示出),该接口或控制器将相应存储设备或***通信地耦合至总线816。一个或多个数据存储设备860可存储、维持、或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储库、数据库、逻辑结构、和/或可用于处理器核818和/或图形处理器电路812和/或一个或多个应用程序(其可在处理器核818和/或图形处理器电路812上执行或由其执行)的其他数据。在一些情况下,一个或多个数据存储设备860可通信地耦合至处理器核818,例如经由总线816或经由一个或多个有线通信接口830(例如,通用串行总线或USB);一个或多个无线通信接口825(例如,近场通信或NFC);和/或一个或多个网络接口870(IEEE 802.3或以太网、IEEE802.11,或等)。
处理器可读指令集814和其他程序、应用、逻辑集和/或模块可完整地或部分地存储于***存储器840中。此类指令集814可从一个或多个数据存储设备860整体地或部分地传递。在由处理器核818和/或图形处理器电路812执行期间,指令集814可完整地或部分地加载、存储、或以其他方式维持在***存储器840中。
在实施方式中,能量存储设备852可包括一个或多个初级(即不可充电)或二次(即可充电)电池或类似能量存储设备。在实施方式中,能量存储设备852可包括一个或多个超级电容器或超级电容。在实施方式中,功率管理电路850可变更、调整或控制能量从外部电源854至能量存储设备852和/或至计算设备800的流动。电源854可包括但不限于太阳能电力***、商业电网、便携式发电机、外部能量存储设备、或其任何组合。
为方便起见,处理器核818、图形处理器电路812、无线I/O接口825、有线I/O接口830、数据存储设备860和网络接口870示为经由总线816彼此通信地耦合,从而提供上述部件之间的连接性。在替代实施方式中,上述部件可以以不同于图8所示的方式而通信地耦合。例如,经由一个或多个中间部件(未示出),上述部件中的一者或多者可直接地耦合至其他部件,或可彼此耦合。在另一实施例中,上述部件中的一者或多者可集成在处理器核818和/或图形处理器电路812中。在一些实施方式中,总线816的全部或部分可省略,并且部件利用合适的有线或无线连接彼此直接地耦合。
本文所述的机器可读指令可以以压缩格式、加密格式、片段格式、编译格式、可执行文件格式、打包格式等中的一者或多者来存储。本文所述的机器可读指令可存储为数据(例如,指令的部分、代码、代码的表示等),该数据可用于创建、制造和/或产生机器可执行指令。例如,机器可读指令可被分段并存储于一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可利用安装、修改、改编、更新、组合、补充、配置、解密、解压、解包、分发、重新分配、编译等中的一者或多者,以使其可由计算设备和/或其他机器直接地读取、解释和/或执行。例如,机器可读指令可存储于多个部分中,这些部分单独压缩、加密并存储于独立计算设备上,其中这些部分在解密、解压和组合时形成一组可执行指令,该组可执行指令实施诸如本文所描述的程序。
在另一实施例中,机器可读指令可以以它们可由计算机读取的状态进行存储,但利用库(例如,动态链接库(DLL))、软件开发工具包(SDK)、应用编程接口(API)等的添加,以在特定计算设备或其他设备上执行指令。在另一实施例中,在机器可读指令和/或(一个或多个)对应程序可完整地或部分地执行之前,机器可读指令可被配置(例如,设置存储、数据输入、网络地址记录等)。因此,所公开机器可读指令和/或(一个或多个)对应程序旨在涵盖此类机器可读指令和/或(一个或多个)程序,而不考虑机器可读指令和/或(一个或多个)程序在存储或以其他方式静止或传送时的特定格式或状态。
本文所描述的机器可读指令可通过任何过去、现在或以后的指令语言、脚本语言、编程语言等来表示。例如,机器可读指令可利用下述语言的任一者来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HTML)、结构化查询语言(SQL)、Swift,等等。
如上所述,图8的示例过程和其他描述的过程可利用存储于非暂态计算机和/或机器可读介质上的可执行指令(例如计算机和/或机器可读指令)来实施,非暂态计算机和/或机器可读介质诸如硬盘驱动器、闪存存储器、只读存储器、压缩盘、数字多功能盘、缓存、随机存取存储器、和/或任何其他存储设备或存储盘,其中信息被存储在任何持续时间(例如,延长的时间段、永久、暂时情况、用于临时缓冲和/或用于信息的缓存)。如本文所用,术语非暂态计算机可读介质明确地定义成包括任何类型的计算机可读存储设备和/或存储磁盘,并且不包括传播信号且不包括传输介质。
“包括”和“包含”(和其所有形式和时态)在本文用作开放式术语。因此,每当权利要求将任何形式的“包括”和“包含”(例如,包括、包含、包括了、包含了、具有等)用作导言或用于任何类型的权利要求叙述内时,应当理解,额外元件、术语等可存在,而脱离对应权利要求或叙述的范围。如本文所用,当短语“至少”被用作例如权利要求导言中的过渡术语时,其为开放式的,与术语“包括”和“包含”为开放式的情况相同。
例如,当术语“和/或”以A、B和/或C的形式使用时,指代A、B、C的任何组合或子组,诸如(1)单独A,(2)单独B,(3)单独C,(4)A与B,(5)A与C,(6)B与C,以及(7)A与B以及C。如本文在描述结构、部件、项、对象和/或事物的上下文中所用,短语“A和B的至少一者”旨在指代包括以下项的任一者的实施方式:(1)至少一个A,(2)至少一个B,和(3)至少一个A和至少一个B。类似地,如本文在描述结构、部件、项、对象和/或事物的上下文中所用,短语“A或B的至少一者”旨在指代包括以下项的任一者的实施方式:(1)至少一个A,(2)至少一个B,和(3)至少一个A和至少一个B。如本文在描述过程、指令、动作、活动和/或步骤的性能或执行的上下文中所用,短语“A和B的至少一者”旨在指代包括以下项的任一者的实施方式:(1)至少一个A,(2)至少一个B,和(3)至少一个A和至少一个B。类似地,中的任何一个的实施方案。类似地,如本文在描述过程、指令、动作、活动和/或步骤的性能或执行的上下文中所用,短语“A或B的至少一者”旨在指代包括以下项的任一者的实施方式:(1)至少一个A,(2)至少一个B,和(3)至少一个A和至少一个B。
如本文所用,单数引用(例如,“一”、“一个”、“第一”、“第二”,等等)不排除复数。如本文所用,术语“一”或“一个”实体指代该实体的一者或多者。术语“一”(或“一个”)、“一个或多个”和“至少一个”可在本文互换地使用。此外,虽然单独列出,但是多个装置、元件或方法动作可由例如单个单元或处理器来实施。此外,虽然各个特征可被包括在不同的实施例或权利要求中,但是它们可能被组合,并且包括在不同的实施例或权利要求中并不意味着特征的组合为非可行的和/或非有利的。
当识别可单独地指代的多个元件或部件时,本文利用了描述符“第一”、“第二”、“第三”,等等。除非另行规定或根据其使用环境来理解,此类描述符非旨在赋予列表中的优先权、物理顺序或布置的任何意义,或时间次序,而是仅用作标记以用于单独地指代多个元件或部件以便于理解所公开实施例。在一些实施例中,描述符“第一”可用于指代具体实施方式的元件,而相同元件可在权利要求中以不同描述符(诸如“第二”或“第三”)来指代。在此类情况下,应理解,此类描述符仅用于易于指代多个元件或部件。
下述实施例涉及其他实施方式。
在实施例1中,一种或多种非暂态计算机可读存储介质在其上存储有指令,所述指令当由一个或多个处理器执行时使得所述一个或多个处理器执行包括以下项的操作:获取用于处理深度学习工作负载的多个性能指标的客户偏好;生成所述深度学习工作负载的工作负载表示;将所述工作负载表示提供至机器学习处理;基于所述机器学习处理生成具有硬件映射的工作负载可执行文件;以及将所述工作负载可执行文件应用于对所述深度学习工作负载的处理。
在实施例2中,将所述工作负载表示提供至机器学习处理包括利用强化学习处理。
在实施例3中,所述强化学习处理包括以下项中的一者或两者:通过多个策略梯度学习者进行处理;或通过多个基于搜索的动作者进行处理。
在实施例4中,所述强化学习处理包括将来自所述多个策略梯度学习者和所述多个基于搜索的动作者两者的经验提供至一个或多个重放缓冲器。
在实施例5中,所述基于搜索的动作者包括遗传算法动作者。
在实施例6中,所述遗传算法包括神经进化。
在实施例7中,应用所述工作负载可执行文件包括将所述工作负载可执行文件应用于推理处理。
在实施例8中,所述客户偏好包括用于所述多个性能指标中的一者或多者的加权。
在实施例9中,所述客户偏好还包括用于所述多个性能指标中的一者或多者的阈值。
在实施例10中,所述多个性能指标包括吞吐量、延迟、核覆盖和功率消耗中的一者或多者。
在实施例11中,一种装置包括一个或多个处理器;以及用于存储数据的存储器,该数据包括用于一个或多个神经网络的数据,其中所述一个或多个处理器用于:获取用于处理深度学习工作负载的多个性能指标的客户偏好;生成所述深度学习工作负载的工作负载表示;将所述工作负载表示提供至机器学习处理,所述机器学习处理包括强化学习处理;基于所述机器学习处理生成具有硬件映射的工作负载可执行文件;以及将所述工作负载可执行文件应用于对所述深度学习工作负载的处理。
在实施例12中,所述强化学习处理包括以下项中的一者或两者:通过多个策略梯度学习者进行处理;或通过多个基于搜索的动作者进行处理。
在实施例13中,所述强化学习处理包括将来自所述多个策略梯度学习者和所述多个基于搜索的动作者两者的经验提供至一个或多个重放缓冲器。
在实施例14中,所述基于搜索的动作者包括遗传算法动作者。
在实施例15中,应用所述工作负载可执行文件包括将所述工作负载可执行文件应用于推理处理。
在实施例16中,计算***包括一个或多个处理器;以及用于存储数据的存储器,该数据包括用于一个或多个神经网络的数据,其中所述计算***包括优化工具以优化神经网络的处理,所述计算***应用所述优化工具以执行以下操作:获取用于处理深度学习工作负载的多个性能指标的客户偏好;生成所述深度学习工作负载的工作负载表示;将所述工作负载表示提供至机器学习处理;基于所述机器学习处理生成具有硬件映射的工作负载可执行文件;以及将所述工作负载可执行文件应用于对所述深度学习工作负载的处理,包括将所述工作负载可执行文件应用于推理处理。
在实施例17中,所述机器学习处理包括强化学习处理,所述强化学习处理包括以下项中的一者或两者:通过多个策略梯度学习者进行处理;或通过多个基于搜索的动作者进行处理。
在实施例18中,所述强化学习处理包括将来自所述多个策略梯度学习者和所述多个基于搜索的动作者两者的经验提供至一个或多个重放缓冲器。
在实施例19中,所述基于搜索的动作者包括遗传算法动作者。
在实施例20中,所述客户偏好包括用于所述多个性能指标中的一者或多者的加权。
在实施例21中,一种装置包括:用于获取用于处理深度学习工作负载的多个性能指标的客户偏好的组件;用于生成所述深度学习工作负载的工作负载表示的组件;用于将所述工作负载表示提供至机器学习处理的组件;用于基于所述机器学习处理生成具有硬件映射的工作负载可执行文件的组件;以及用于将所述工作负载可执行文件应用于对所述深度学习工作负载的处理的组件。
在实施例22中,用于将所述工作负载表示提供至机器学习处理的所述组件包括用于利用强化学习的组件。
在实施例23中,所述强化学习处理包括以下项中的一者或两者:通过多个策略梯度学习者进行处理;或通过多个基于搜索的动作者进行处理。
在实施例24中,所述强化学习处理包括将来自所述多个策略梯度学习者和所述多个基于搜索的动作者两者的经验提供至一个或多个重放缓冲器。
在实施例25中,所述基于搜索的动作者包括遗传算法动作者。
在实施例26中,所述遗传算法包括神经进化。
在实施例27中,用于应用所述工作负载可执行文件的组件包括用于将所述工作负载可执行文件应用于推理处理的组件。
在实施例28中,所述客户偏好包括用于所述多个性能指标中的一者或多者的加权。
在实施例29中,所述客户偏好还包括用于所述多个性能指标中的一者或多者的阈值。
在实施例30中,所述多个性能指标包括吞吐量、延迟、核覆盖和功率消耗中的一者或多者。
实施例的细节可用于一个或多个实施方式的任何地方。
前述描述和附图应视为说明意义而非限制意义。本领域技术人员将理解,对于本文所公开的实施方式可做出各种修改和改变,而不脱离所附权利要求书所阐述的特征的较宽泛的精神和范围。
Claims (20)
1.一种装置,包括:
获取组件,用于获取用于处理深度学习工作负载的多个性能指标的客户偏好;
生成组件,用于生成所述深度学习工作负载的工作负载表示;
提供组件,用于将所述工作负载表示提供至机器学习处理以生成工作负载可执行文件,所述工作负载可执行文件包括基于所述多个性能指标的客户偏好的硬件映射;以及
应用组件,用于将所述工作负载可执行文件应用于对所述深度学习工作负载的处理。
2.根据权利要求1所述的装置,其中所述提供组件包括用于利用强化学习处理的组件。
3.根据权利要求2所述的装置,其中所述强化学习处理包括以下项中的一者或两者:
通过多个策略梯度学习者进行处理;或者
通过多个基于搜索的动作者进行处理。
4.根据权利要求3所述的装置,其中所述强化学习处理包括将来自所述多个策略梯度学习者和所述多个基于搜索的动作者两者的经验提供至一个或多个重放缓冲器。
5.根据权利要求3所述的装置,其中所述基于搜索的动作者包括遗传算法动作者。
6.根据权利要求5所述的装置,其中所述遗传算法包括神经进化。
7.根据权利要求1所述的装置,其中所述应用组件包括用于将所述工作负载可执行文件应用于推理处理的组件。
8.根据权利要求1所述的装置,其中所述客户偏好包括用于所述多个性能指标中的一者或多者的加权。
9.根据权利要求8所述的装置,其中所述客户偏好还包括用于所述多个性能指标中的一者或多者的阈值。
10.根据权利要求8所述的装置,其中所述多个性能指标包括吞吐量、延迟、核覆盖和功率消耗中的一者或多者。
11.一种装置,包括:
一个或多个处理器;以及
用于存储数据的存储器,该数据包括用于一个或多个神经网络的数据;
其中所述一个或多个处理器用于:
获取用于处理深度学习工作负载的多个性能指标的客户偏好;
生成所述深度学习工作负载的工作负载表示;
将所述工作负载表示提供至机器学习处理以生成工作负载可执行文件,所述工作负载可执行文件包括基于所述多个性能指标的客户偏好的硬件映射,所述机器学习处理包括强化学习处理;以及
将所述工作负载可执行文件应用于对所述深度学习工作负载的处理。
12.根据权利要求11所述的装置,其中所述强化学习处理包括以下项中的一者或两者:
通过多个策略梯度学习者进行处理;或者
通过多个基于搜索的动作者进行处理。
13.根据权利要求12所述的装置,其中所述强化学习处理包括将来自所述多个策略梯度学习者和所述多个基于搜索的动作者两者的经验提供至一个或多个重放缓冲器。
14.根据权利要求12所述的装置,其中所述基于搜索的动作者包括遗传算法动作者。
15.根据权利要求11所述的装置,其中应用所述工作负载可执行文件包括将所述工作负载可执行文件应用于推理处理。
16.一种计算***,包括:
一个或多个处理器;以及
用于存储数据的存储器,该数据包括用于一个或多个神经网络的数据;
其中所述计算***包括优化工具以优化神经网络的处理,所述计算***应用所述优化工具以执行以下操作:
获取用于处理深度学习工作负载的多个性能指标的客户偏好;
生成所述深度学习工作负载的工作负载表示;
将所述工作负载表示提供至机器学习处理以生成工作负载可执行文件,所述工作负载可执行文件包括基于所述多个性能指标的客户偏好的硬件映射;以及
将所述工作负载可执行文件应用于对所述深度学习工作负载的处理,包括将所述工作负载可执行文件应用于推理处理。
17.根据权利要求16所述的计算***,其中所述机器学习处理包括强化学习处理,所述强化学习处理包括以下项中的一者或两者:
通过多个策略梯度学习者进行处理;或者
通过多个基于搜索的动作者进行处理。
18.根据权利要求17所述的计算***,其中所述强化学习处理包括将来自所述多个策略梯度学习者和所述多个基于搜索的动作者两者的经验提供至一个或多个重放缓冲器。
19.根据权利要求17所述的计算***,其中所述基于搜索的动作者包括遗传算法动作者。
20.根据权利要求16所述的计算***,其中所述客户偏好包括用于所述多个性能指标中的一者或多者的加权。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/129,521 US20210150371A1 (en) | 2020-12-21 | 2020-12-21 | Automatic multi-objective hardware optimization for processing of deep learning networks |
US17/129,521 | 2020-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114648103A true CN114648103A (zh) | 2022-06-21 |
Family
ID=75908245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111353238.9A Pending CN114648103A (zh) | 2020-12-21 | 2021-11-16 | 用于处理深度学习网络的自动多目标硬件优化 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210150371A1 (zh) |
CN (1) | CN114648103A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992153B (zh) * | 2021-11-19 | 2023-03-14 | 珠海康晋电气股份有限公司 | 一种光伏电站可视化实时监测分布式管理*** |
CN114239816B (zh) * | 2021-12-09 | 2023-04-07 | 电子科技大学 | 一种卷积神经网络-图卷积神经网络可重构硬件加速架构 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11424989B2 (en) * | 2020-06-15 | 2022-08-23 | Cisco Technology, Inc. | Machine-learning infused network topology generation and deployment |
US11704562B1 (en) * | 2020-11-04 | 2023-07-18 | Meta Platforms, Inc. | Architecture for virtual instructions |
-
2020
- 2020-12-21 US US17/129,521 patent/US20210150371A1/en active Pending
-
2021
- 2021-11-16 CN CN202111353238.9A patent/CN114648103A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210150371A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200293838A1 (en) | Scheduling computation graphs using neural networks | |
EP4170553A1 (en) | Framework for optimization of machine learning architectures | |
Yang | Multiobjective firefly algorithm for continuous optimization | |
CN110168578A (zh) | 具有任务特定路径的多任务神经网络 | |
EP4163833A1 (en) | Deep neural network model design enhanced by real-time proxy evaluation feedback | |
US10839293B2 (en) | Noisy neural network layers with noise parameters | |
US20210089834A1 (en) | Imagination-based agent neural networks | |
CN114648103A (zh) | 用于处理深度学习网络的自动多目标硬件优化 | |
US20230176840A1 (en) | Learned graph optimizations for compilers | |
CN111065999B (zh) | 移动设备的功率状态控制 | |
US20240135174A1 (en) | Data processing method, and neural network model training method and apparatus | |
CN113348472A (zh) | 具有软内核选择的卷积神经网络 | |
Jiang et al. | Multiclass adaboost elm and its application in lbp based face recognition | |
Chen et al. | Cloud–edge collaboration task scheduling in cloud manufacturing: An attention-based deep reinforcement learning approach | |
CN104715317A (zh) | 处理装置和处理方法 | |
US20210166131A1 (en) | Training spectral inference neural networks using bilevel optimization | |
JP2022165395A (ja) | ニューラルネットワークモデルの最適化方法及びニューラルネットワークモデルに関するグラフィックユーザインターフェースを提供する方法 | |
US20230342626A1 (en) | Model processing method and related apparatus | |
WO2023202484A1 (zh) | 神经网络模型的修复方法和相关设备 | |
WO2023086196A1 (en) | Domain generalizable continual learning using covariances | |
CN117011118A (zh) | 模型参数更新方法、装置、计算机设备以及存储介质 | |
CN116011509A (zh) | 硬件感知的机器学习模型搜索机制 | |
Zhu et al. | Fast Adaptive Character Animation Synthesis Based on Greedy Algorithm | |
US11704562B1 (en) | Architecture for virtual instructions | |
JP2022515941A (ja) | 生成的敵対神経網ベースの分類システム及び方法 |
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 |