CN114286985A - 用于预测内核调谐参数的方法和设备 - Google Patents
用于预测内核调谐参数的方法和设备 Download PDFInfo
- Publication number
- CN114286985A CN114286985A CN202080060190.XA CN202080060190A CN114286985A CN 114286985 A CN114286985 A CN 114286985A CN 202080060190 A CN202080060190 A CN 202080060190A CN 114286985 A CN114286985 A CN 114286985A
- Authority
- CN
- China
- Prior art keywords
- words
- program
- word
- sequence
- combination
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine 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/02—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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield 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/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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Machine Translation (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
提供了一种提高处理性能的处理装置,其包括被配置为存储数据的存储器和与所述存储器通信的处理器。所述处理器被配置为接收调谐参数,每个调谐参数具有数值,用于在所标识的硬件装置上执行程序的一部分,并且将所述调谐参数的所述数值转换为字词。所述处理器还被配置为使用一个或多个机器语言学习算法基于性能效率来预测所述字词的哪个组合在所标识的硬件装置上执行所述程序的所述部分,并且将所述字词的所述预测组合转换为对应的数值,用于在所标识的硬件装置上执行所述程序的所述部分。
Description
相关申请的交叉引用
本申请要求于2019年9月4日提交的标题为“METHOD AND APPARATUS FORPREDICTING KERNEL TUNING PARAMETERS”的美国非临时申请号16/560,954的权益,所述申请的全部内容据此以引用方式并入本文中。
背景技术
例如,程序的性能效率取决于程序指令在硬件(例如,集成电路(IC)或芯片)上执行的速度或时间量。硬件的物理特性和规格因硬件的不同代或版本而异。因此,程序的性能效率通常在硬件装置的不同代之间有很大差异。程序通常包括调谐参数,这些调谐参数用于改变程序对不同硬件的性能效率。
附图说明
可从结合附图以举例的方式给出的以下描述中获得更详细的理解,在附图中:
图1是可实施本公开的一个或多个特征的示例装置的框图;
图2是图1的装置的框图,示出了另外的细节;
图3是示出预测程序调谐参数的示例性方法的框图;并且
图4示出了实施图3所示的语言学习和预测的示例性方法。
具体实施方式
在程序被部署用于在所标识的硬件装置上执行之前,通常通过使用程序调谐参数的不同组合执行程序来针对所标识的硬件剖析程序,从而产生不同的性能效率。基于所得的性能效率来选择用于所标识的硬件的程序调谐参数。
程序的性能效率基于程序中的调谐参数值而变化。程序通常包括多个调谐参数(例如,10个参数),每个调谐参数具有多个不同的可选择的值(例如,10个值)。虽然这些调谐参数值的不同组合计算出正确的结果,但这些结果的性能效率各不相同。
常规剖析系统经由遍历解空间的搜索算法来确定程序(例如,GPU计算内核)的调谐参数值。例如,对于矩阵乘法指令,常规系统必须不断地在存储的调谐参数值的数据库中搜索待相乘的矩阵大小的每个组合。
这些搜索算法成本高且耗时。例如,这些常规搜索算法通常需要大量价格高昂的计算资源和大量时间来调谐程序(例如,内核)。另外,调谐仅应用于所选择的程序。未选择程序的执行通常导致性能下降,并且用户选择调谐他们自己的内核将经历长延迟。此外,这些常规搜索算法不提供调谐参数值,这些参数值考虑了每个程序的不同输入大小和程序试图解决的不同类型的问题。
本文所述的装置和方法通过使用机器学习算法基于输入值来预测调谐参数值,有效地确定将在所标识的硬件上执行的程序的调谐参数值,而不使用低效的搜索算法(例如,输入张量值,包括图像尺寸、矩阵维度、颜色通道数量、待执行的操作数量)。
与基于输入数值输出数值的常规机器学习模型相比,本文所述的机器学习算法将输入数值转换为字词(即,一种语言的一个或多个字母)并且使用语言模型从输入的字词预测参数。语言学习算法学习将源语言(例如,输入字词或从一个或多个数值转换的字词序列)翻译成目标语言(例如,输出字词序列)。然后将输出字词转换回数值以获得可执行调谐参数值。
调谐参数值基于顺序地(与并行输入相反)输入到程序的调谐参数值来预测并且将调谐参数值编码为离散字词而不是标量数字。然后使用神经机器语言翻译技术来翻译离散字词(例如,使用多层感知器(MLP)和其他ML原语(诸如卷积、激活、批量归一化、漏失和循环神经网络(RNN))的组合将句子从一种语言翻译成另一种语言的技术。
与常规语言模型相比,本文所述的机器学习语言算法基于预先确定的(即,在运行时间之前确定的)约束来预测调谐参数值(例如,参数值的组合无效,每个线程分配有最大数量的寄存器,并且每个线程可访问一定量的存储器)。约束防止不能同时存在或将产生无效结果的值被预测为调谐参数值。因此,约束有利于更高效的预测过程,因为调谐参数值是从较小的空间(即,较少数量的可能参数值)预测的,并且还提供更准确的预测,因为所选择的调谐参数值避免无效结果。
提供了一种提高处理性能的处理装置,其包括被配置为存储数据的存储器和与所述存储器通信的处理器。所述处理器被配置为接收调谐参数,每个调谐参数具有数值,用于在所标识的硬件装置上执行程序的一部分,并且将调谐参数的数值转换为字词。所述处理器还被配置为使用一个或多个机器语言学习算法基于性能效率来预测字词的哪个组合在所标识的硬件装置上执行程序的部分,并且将字词的预测组合转换为对应的数值,用于在所标识的硬件装置上执行程序的部分。
提供了一种提高处理性能的方法,所述方法包括接收调谐参数,每个调谐参数具有数值,用于在所标识的硬件装置上执行程序的一部分,并且将调谐参数的数值转换为字词。所述方法还包括使用一个或多个机器语言学习算法基于性能效率来预测字词的哪个组合在所标识的硬件装置上执行程序的部分,以及将字词的预测组合转换为对应的数值,用于在所标识的硬件装置上执行程序的部分。
提供了一种非暂时性计算机可读存储介质,其包括用于使计算机执行包括接收调谐参数的方法的指令,每个调谐参数具有数值,用于在所标识的硬件装置上执行程序的一部分并且将调谐参数的数值转换为字词。所述方法还包括使用一个或多个机器语言学习算法基于性能效率来预测字词的哪个组合在所标识的硬件装置上执行程序的部分,以及将字词的预测组合转换为对应的数值,用于在所标识的硬件装置上执行程序的部分。
如本文所用,程序包括待使用一个或多个处理器执行以执行过程或例程(例如,操作、计算、功能、过程、作业)的任何指令序列。如本文所用,在处理器上执行编程指令(例如,应用程序、驱动程序、操作系统或其他软件)包括多个阶段中的任何一个阶段,诸如但不限于获取、解码、调度以用于执行、开始执行和执行编程指令的特定部分(例如,在全屏上呈现视频)。编程指令包括调谐参数和具有用于控制在硬件装置上执行的程序的性能效率的可调谐(即,可改变)值的调谐参数设置。
图1是其中可以实施本公开的一个或多个特征的示例性装置100的框图。装置100可包括例如计算机、游戏装置、手持式装置、机顶盒、电视机、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。装置100还可任选地包括输入驱动器112和输出驱动器114。应理解,装置100可包括图1中未示出的另外的部件。
在各种替代方案中,处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一管芯上的CPU和GPU,或者一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。在各种替代方案中,存储器104与处理器102位于同一管芯上,或者与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速计、陀螺仪、生物特征扫描仪或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110包括但不限于显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且容许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且容许处理器102将输出发送到输出装置110。注意,输入驱动器112和输出驱动器114为任选部件,并且装置100在不存在输入驱动器112和输出驱动器114的情况下将以相同方式操作。输出驱动器116包括耦合到显示装置118的加速处理装置(“APD”)116。APD被配置为接受来自处理器102的计算命令和图形渲染命令,处理那些计算命令和图形渲染命令,并且向显示装置118提供像素输出以用于显示。如下面进一步详细地描述,APD 116包括一个或多个并行处理单元,所述一个或多个并行处理单元被配置为根据单指令多数据(“SIMD”)范例执行计算。因此,虽然本文中将各种功能描述为由APD 116执行或结合所述APD来执行,但是在各种替代方案中,被描述为由APD 116执行的功能另外地或替代地由具有类似功能的其他计算装置执行,所述其他计算装置未被主机处理器(例如,处理器102)驱动并且未被配置为向显示装置118提供图形输出。例如,设想的是,根据SIMD范例执行处理任务的任何处理系统可被配置为执行本文所描述的功能。替代地,设想的是,不根据SIMD范例执行处理任务的计算系统执行本文所描述的功能。
图2是装置100的框图,示出了与在APD 116上执行处理任务有关的另外的细节。APD 116包括多个计算单元132、处理流水线(例如,图形处理流水线)134和调度器136。处理器102在系统存储器104中维持一个或多个控制逻辑模块,以供处理器102执行。控制逻辑模块包括操作系统120、内核模式驱动器122和应用程序126。这些控制逻辑模块控制处理器102和APD 116的操作的各种特征。例如,操作系统120直接与硬件通信,并且为在处理器102上执行的其他软件提供到硬件的接口。内核模式驱动器122通过例如向在处理器102上执行以访问APD 116的各种功能的软件(例如,应用程序126)提供应用程序编程接口(“API”)来控制APD 116的操作。内核模式驱动器122还包括即时编译器,所述即时编译器编译程序以供APD 116的处理部件(诸如在下面进一步详细论述的SIMD单元138)执行。
APD 116执行有关选定功能的命令和程序,诸如可适合于进行并行处理的图形操作和非图形操作。APD 116可用于基于从处理器102接收的命令来执行图形流水线操作,诸如像素操作、几何计算,以及将图像渲染到显示装置118。APD 116还基于从处理器102接收的命令来执行与图形操作不直接相关的计算处理操作,诸如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116包括计算单元132,所述计算单元132包括一个或多个SIMD单元138,所述一个或多个SIMD单元138被配置为根据SIMD范例以并行方式在处理器102的请求下执行操作。SIMD范例是这样一种范例:多个处理元件共享单个程序控制流单元和程序计数器,并且因此执行相同的程序,但是能够用不同的数据执行该程序。在一个示例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行同一指令,但是可用不同的数据执行该指令。如果并非所有通道都需要执行给定指令,则可利用断言关闭通道。断言也可用于执行具有发散控制流的程序。更具体地,对于具有条件分支或其他指令的程序,其中控制流是基于由单个通道执行的计算,与当前未执行的控制流路径相对应的通道的断言以及对不同控制流路径的串行执行允许任意控制流。
计算单元132中的基本计算单元是工作项。每个工作项表示将在特定通道中并行执行的程序的单个实例。可以在单个SIMD处理单元138上将工作项同时作为“波前”执行。一个或多个波前被包括在“工作组”中,所述工作组包括被指定来执行同一程序的工作项集合。可通过执行构成工作组的波前中的每一者来执行工作组。在替代方案中,波前在单个SIMD单元138上循序执行,或者在不同的SIMD单元138上部分地或完全地并行执行。波前可被视为可在单个SIMD单元138上同时地执行的最大工作项集合。因此,如果从处理器102接收到的命令指示特定程序将被并行化到所述程序不能同时在单个SIMD单元138上执行的程度,则该程序被分解成在两个或更多个SIMD单元138上并行化的或在同一SIMD单元138上串行化的(或根据需要并行化和串行化的)波前。调度器136被配置为执行与调度不同计算单元132和SIMD单元138上的各种波前相关的操作。
由计算单元132提供的并行性适合于图形相关操作,诸如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,从处理器102接受图形处理命令的图形流水线134将计算任务提供给计算单元132以并行执行。
计算单元132还用于执行与图形不相关或不作为图形流水线134的“正常”操作的部分执行的计算任务(例如,被执行来补充针对图形流水线134的操作执行的处理的自定义操作)。在处理器102上执行的应用126或其他软件将定义这种计算任务的程序传输给APD116以执行。
图3是示出针对在所标识的硬件装置上执行的程序预测调谐参数的示例性方法300的框图。方法300的每个部分,诸如编码、转换、语言学习、比较和预测,例如由处理器诸如APD 116执行。
调谐参数包括本质上是分类的参数(例如,表示提供给程序以改变程序的性能效率的选项的参数)以及具有用于调谐特定参数的数值的参数,例如,待从存储器(例如,主存储器)访问的一定量的数据、待跨链路执行的许多并行存储器访问(例如,读取、写入)、输入图像的多个通道(例如,图像的颜色通道)、多个输出通道(例如,高光谱图像的输出通道)、流水线深度(例如,输入深度和输出深度)。根据输入参数,例如像图像高度、图像宽度、输入通道的总数、输出通道的总数和每次要处理的图像的数量,确定调谐参数的目标值。另外,调谐参数会有所不同,部分原因是参数在程序与程序之间具有不同的解释。
如图3中的302所示,方法300包括接收待在所标识的硬件装置(例如,硬件装置的所标识的版本)上执行的程序的多个调谐参数的数值。例如,每个数字调谐参数值由APD116顺序地(即,连续地)接收。
如图3中的304所示,方法300包括对调谐参数序列中的数值进行编码。通过将调谐参数值从数值转换为语言的字词来执行编码。调谐参数值的转换包括将一个数值转换为字词,将一个或多个数值转换为字词,以及将一个数值转换为多个字词。编码的示例包括独热编码和根据所述独热编码创建的密集向量。
每个转换后的字词被提供给机器语言模型312并且基于约束314被预测为语言学习和预测过程306的一部分,所述语言学习和预测过程使用机器语言学习和预测算法,基于性能效率来预测使用哪些字词在所标识的硬件装置上执行程序。也就是说,机器语言学习算法预测字词的哪个组合(对应于数字调谐参数值)将导致在所标识的硬件装置上有效地执行程序的一部分(例如,字词的哪个组合将导致相比于字词的其他组合更快地或在相比于字词的其他组合在更短的时间内执行程序的一部分)。
机器语言模型312根据一个或多个机器学习基元来处理调谐参数的转换后的字词值。机器学习基元的示例包括:卷积神经网络(CNN);卷积和池化层;包括单向和双向长短期记忆(LSTM)单元或门控循环单元(GRU)的循环神经网络(RNN);以及具有漏失和不同激活函数的密集连接的深度神经网络。
基于约束314来预测字词,这些约束包括例如参数值的组合无效、每个线程分配有最大数量的寄存器并且每个线程可访问一定量的存储器。约束314防止对不能与一个或多个其他调谐参数值同时存在或将产生无效结果的调谐参数值进行预测。因为在较小的空间中执行预测,所以这些约束有利于提高效率。此外,约束提高了预测的准确度,因为预测的调谐参数值不产生无效结果。
如图3中的308所示,方法300包括对预测的调谐参数值进行解码。通过将预测的调谐参数字值转换回数值来执行解码。如图3中的310所示,然后提供预测的调谐参数数值作为预测的可执行调谐参数值。使用预测的可执行调谐参数值在所标识的硬件装置上执行程序的部分。
现在参考图4更详细地描述语言学习和预测过程306的示例。如上所述,与并行接收多个调谐参数值的用于确定调谐参数的常规系统相比,根据本公开的特征,基于顺序地输入到程序的调谐参数值来预测调谐参数值。也就是说,顺序地(即,连续地)接收每个输入调谐参数值,并且将调谐参数值预测为序列。
图4示出了实施图3中的306处所示的语言学习和预测的示例性方法400,其中顺序地接收每个输入调谐参数值。如下文更详细描述的,图4示出了预测序列的阶段,包括使用约束314来过滤中间调谐参数值候选和使用预测的调谐参数值候选来预测序列中的下一个调谐参数值候选(例如,被确定为相比于其他调谐参数值候选更有可能以更好的性能效率执行程序的部分的候选)。方法400的每个部分,诸如编码、转换、语言学习、比较、过滤、确定和预测,例如由处理器诸如APD 116执行。
如图4所示,接收输入字词序列402的每个字词402(1)至402(n)。根据一个或多个机器学习基元(例如,上述机器学习基元中的一个或多个机器学习基元)对每个字词402(1)至402(n)执行表示学习过程404,以确定内部表示406(例如,机器语言模型312内部的字词402(1)至402(n)的压缩表示)。表示学习404的每个块例如表示用于确定输入字词序列402的对应字词的内部表示的存储器单元。
例如,在表示学习404期间,第一字词402(1)的内部表示被输出(例如,临时存储)为第一字词402(1)的内部表示406。第一字词402(1)的内部表示也被提供到用于第二字词402(2)的存储器单元的上游(由第一字词402(1)的存储器单元之间的从左到右箭头指示,并且用于确定第二字词402(2)的内部表示。
基于第一字词402(1)以及第二字词402(2)的内部表示来确定第二字词402(2)的中间内部表示。第二字词402(2)的中间内部表示然后被输出(例如,临时存储)为第二字词402(2)的内部表示406。第二字词402(2)的内部表示也被提供到第三字词402(3)的存储器单元的上游(由第二字词402(2)和第三字词402(3)的存储器单元之间的从左到右的箭头指示)并且用于确定第三字词402(3)的内部表示。对于输入字词序列402中的每个剩余字词,该过程在上游(即,在表示学习404的从左到右箭头的方向上)继续。
在图4所示的示例中,表示学习404包括双向学习。也就是说,每个字词402(1)至402(n)的内部表示也被提供在下游(即,在表示学习404的从右到左箭头的方向上)。因此,每个字词402(1)至402(n-1)的内部表示基于输入字词序列402的上游字词确定(即,直接基于序列中的下一个上游字词并且间接基于输入字词序列402的其他上游字词)。例如,还经由单向(即,在从左到右箭头的方向上)学习来实施本公开的特征。
使用字词的内部表示406,预测字词序列以在所标识的硬件装置上执行程序的部分。预测过程包括生成中间字词序列408和输出字词序列410。如下所述,多个调谐参数候选,包括被确定为相比于其他候选更可能导致更好的性能效率的候选,被用于预测用于执行的字词序列。例如,如果第一候选不满足一个或多个约束314,则使用下一个可能的候选来预测序列中的字词。
在一个示例中,在预测过程中使用的调谐参数候选的数量是预先确定的(即,在运行时间之前确定)。例如,传播预先确定的数量的k预测,从而产生k预测。
然后将字词序列402中的字词402(1)至402(n)的内部表示提供给类似的机器学习结构以生成中间字词序列408。图4中的中间字词序列408的每个块表示例如用于在中间预测中间字词序列408的对应字词408(1)至408(n)的存储器单元。
基于上述一个或多个机器学习基元,中间字词序列408的第一字词408(1)(即,第一候选)被中间预测以用于在所标识的硬件装置上执行程序的一部分。基于程序的一部分(例如,内核的一部分)的一个或多个约束314来分析第一字词408(1)的内部表示。也就是说,当第一字词408(1)满足一个或多个约束314中的每一个约束时,第一字词408(1)被中间预测为输出字词序列410的参数值候选。当第一字词408(1)不满足一个或多个约束314中的每一个约束时,第一字词408(1)不被选择为输出字词序列410的参数值候选。
第一字词408(1)的内部表示也被提供给下一个存储器单元(即,下一个上游存储器单元),用于确定中间字词序列408的第二字词408(2)。当第二字词408(2)代替第一字词408(1)满足一个或多个约束314中的每一个约束时,第二字词408(2)被中间预测为输出字词序列410的参数值候选。当第二字词408(2)不满足一个或多个约束314中的每一个约束时,第二字词408(2)不被选择为输出字词序列410的参数值候选。所述过程针对中间字词序列408中的每个剩余字词继续。
预测过程还包括注意力机制,所述注意力机制将调谐参数值与其他调谐参数值进行比较,以预测调谐参数值的哪个组合将导致在所标识的硬件装置上执行程序的部分的性能效率高于调谐参数值候选的其他组合。
例如,输出字词序列410中的调谐参数值候选410(1)至410(n)根据它们以相比于其他调谐参数值候选更好的性能效率执行程序的部分的可能性进行比较和排序。输出字词序列410的调谐参数值候选中的一个或多个调谐参数值候选(例如,确定为相比于其他候选更有可能导致更好的性能效率的调谐参数值候选)被提供回中间字词序列408的存储器单元,以在中间预测中间字词序列408的一个或多个字词408(1)至408(n)。因此,机器学习算法学习基于输入调谐参数值(例如,输入字词序列402的值)以及反馈给机器学习算法的预测的调谐参数值候选来预测调谐参数值。
然后将输出字词序列410中的预测的调谐参数值候选410(1)至410(n)转换回数值,如图3的框308所示,并且提供为预测的可执行调谐参数值310,如图3所示,用于在所标识的硬件装置上执行程序的部分。
应理解,基于本文的公开内容,许多变型是可能的。虽然上面以特定的组合描述了特征和要素,但是每个特征或要素可单独使用而无需其他特征和要素,或者以具有或不具有其他特征和要素的各种组合使用。
所提供的方法包括在通用计算机、处理器或处理器内核中的具体实现方式。合适的处理器包括例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。可通过使用处理后的硬件描述语言(HDL)指令的结果和包括网表的其他中间数据(此类指令能够存储在计算机可读介质上)配置制造工艺来制造这种处理器。此类处理的结果可以是掩模作品,然后在半导体制造过程中用来制造实施应用程序剖析以进行功率性能管理的处理器。
图中所示和/或本文所描述的各种功能单元(包括但不限于处理器102、输入驱动器112、输入装置108、输出驱动器114、输出装置110、加速处理装置116、调度器136、图形处理流水线134、计算单元132、SIMD单元138)可以被实现为通用计算机、处理器或处理器核,或者被实施为程序、软件或固件,存储在非暂时性计算机可读介质或另一种介质中,可由通用计算机、处理器或处理器核执行。
本文提供的方法或流程图可在并入非暂时性计算机可读存储介质的计算机程序、软件或固件中实施,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(诸如内部硬盘和可移除磁盘)、磁光介质、以及光学介质(诸如CD-ROM盘和数字多功能盘(DVD))。
Claims (20)
1.一种提高处理性能的处理装置,其包括:
存储器,所述存储器被配置为存储数据;
处理器,所述处理器与所述存储器通信,被配置为:
接收调谐参数,每个调谐参数具有数值,用于在所标识的硬件装置上执行程序的一部分;
将所述调谐参数的所述数值转换为字词;
使用一个或多个机器语言学习算法,基于性能效率来预测所述字词的哪个组合在所述标识的硬件装置上执行所述程序的所述部分;以及
将所述字词的所述预测组合转换为对应的数值,用于在所述标识的硬件装置上执行所述程序的所述部分。
2.如权利要求1所述的处理装置,其中所述处理器还被配置为顺序地确定以字词序列输入的所述字词中的每一个字词的机器语言学习表示。
3.如权利要求2所述的处理装置,其中所述处理器还被配置为基于所述字词序列中的另一个字词的所确定的机器语言学习表示来确定所述字词序列中的字词的所述机器语言学习表示。
4.如权利要求2所述的处理装置,其中所述处理器被配置为:
基于所述字词中的每一个字词的所述机器语言学习表示来预测中间字词序列;
当所述字词满足一个或多个预先确定的约束中的每一个预先确定的约束时,确定所述中间字词序列中的所述字词中的一个字词作为所述字词的所述预测组合的候选字词;以及
当所述字词不满足所述一个或多个预先确定的约束中的每一个预先确定的约束时,确定所述中间字词序列中的所述一个字词不是所述字词的所述预测组合的候选字词。
5.如权利要求4所述的处理装置,其中所述一个或多个预先确定的约束中的每一个预先确定的约束指示所述字词的组合是否由于执行所述程序的所述部分而产生无效结果。
6.如权利要求4所述的处理装置,其中所述处理器被配置为:
将所述中间字词序列中的多个所述字词确定为所述字词的所述预测组合的候选字词;以及
基于被确定为相比于其他候选字词更有可能以更好的性能效率执行所述程序的所述部分的候选字词来预测所述中间字词序列中的下一个字词。
7.如权利要求1所述的处理装置,其中所述性能效率是执行所述程序的所述部分的速度或时间量的量度,并且
所述处理器被配置为通过预测所述字词的哪个组合会导致相比于所述字词的其他组合更快地或在更短的时间内执行所述程序的所述部分,基于所述性能效率来确定所述字词的哪个组合在所述标识的硬件装置上执行所述程序。
8.如权利要求1所述的处理装置,其中所述多个调谐参数的所接收的数值是张量输入值。
9.如权利要求1所述的处理装置,其中所述一个或多个机器语言学习算法包括卷积神经网络、循环神经网络和连接神经网络中的至少一者。
10.一种提高处理性能的方法,其包括:
接收调谐参数,每个调谐参数具有数值,用于在所标识的硬件装置上执行程序的一部分;
将所述调谐参数的所述数值转换为字词;
使用一个或多个机器语言学习算法,基于性能效率来预测所述字词的哪个组合在所述标识的硬件装置上执行所述程序的所述部分;以及
将所述字词的所述预测组合转换为对应的数值,用于在所述标识的硬件装置上执行所述程序的所述部分。
11.如权利要求10所述的方法,其还包括顺序地确定以字词序列输入的所述字词中的每一个字词的机器语言学习表示。
12.如权利要求11所述的方法,其还包括基于所述字词序列中的另一个字词的所确定的机器语言学习表示来确定所述字词序列中的字词的所述机器语言学习表示。
13.如权利要求10所述的方法,其还包括:
基于所述字词中的每一个字词的所述机器语言学习表示来预测中间字词序列;
当所述字词满足一个或多个预先确定的约束中的每一个预先确定的约束时,确定所述中间字词序列中的所述字词中的一个字词作为所述字词的所述预测组合的候选字词;以及
当所述字词不满足所述一个或多个预先确定的约束中的每一个预先确定的约束时,确定所述中间字词序列中的所述一个字词不是所述字词的所述预测组合的候选字词。
14.如权利要求13所述的方法,其中所述一个或多个预先确定的约束中的每一个预先确定的约束指示所述字词的组合是否由于执行所述程序的所述部分而产生无效结果。
15.如权利要求13所述的方法,其还包括:
将所述中间字词序列中的多个所述字词确定为所述字词的所述预测组合的候选字词;以及
基于被确定为相比于其他候选字词更有可能以更好的性能效率执行所述程序的所述部分的候选字词来预测所述中间字词序列中的下一个字词。
16.如权利要求15所述的方法,其还包括根据候选字词以相比于所述其他候选字词更好的性能效率执行所述程序的所述部分的可能性,对所述中间字词序列的所述多个所述字词中的每一个字词进行排序。
17.如权利要求11所述的方法,其中所述性能效率是执行所述程序的所述部分的速度或时间量的量度,并且
所述方法还包括通过预测所述字词的哪个组合会导致相比于所述字词的其他组合更快地或在更短的时间内执行所述程序的所述部分,基于所述性能效率来确定所述字词的哪个组合在所述标识的硬件装置上执行所述程序。
18.如权利要求11所述的处理方法,其中所述多个调谐参数的所接收的数值是张量输入值。
19.如权利要求11所述的处理方法,其中所述一个或多个机器语言学习算法包括卷积神经网络、循环神经网络和连接神经网络中的至少一者。
20.一种非暂时性计算机可读存储介质,其上具有用于使计算机执行方法的指令,所述方法包括:
接收调谐参数,每个调谐参数具有数值,用于在所标识的硬件装置上执行程序的一部分;
将所述调谐参数的所述数值转换为字词;
使用一个或多个机器语言学习算法,基于性能效率来预测所述字词的哪个组合在所述标识的硬件装置上执行所述程序的所述部分;以及
将所述字词的所述预测组合转换为对应的数值,用于在所述标识的硬件装置上执行所述程序的所述部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/560,954 | 2019-09-04 | ||
US16/560,954 US12033035B2 (en) | 2019-09-04 | 2019-09-04 | Method and apparatus for predicting kernel tuning parameters |
PCT/US2020/047845 WO2021045935A1 (en) | 2019-09-04 | 2020-08-25 | Method and apparatus for predicting kernel tuning parameters |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114286985A true CN114286985A (zh) | 2022-04-05 |
Family
ID=74681531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080060190.XA Pending CN114286985A (zh) | 2019-09-04 | 2020-08-25 | 用于预测内核调谐参数的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12033035B2 (zh) |
EP (1) | EP4026004A4 (zh) |
JP (1) | JP2022546271A (zh) |
KR (1) | KR20220054397A (zh) |
CN (1) | CN114286985A (zh) |
WO (1) | WO2021045935A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11605147B2 (en) * | 2020-03-27 | 2023-03-14 | Tata Consultancy Services Limited | Method and system for tuning graphics processing unit (GPU) parameters of a GPU kernel |
US11526930B2 (en) | 2020-09-22 | 2022-12-13 | International Business Machines Corporation | Optimization of order fulfillment conditions |
CN117057255B (zh) * | 2023-10-10 | 2024-01-02 | 中核武汉核电运行技术股份有限公司 | 一种用于数字孪生模型在线同步的预训练模型获取方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558924B2 (en) * | 2014-05-23 | 2020-02-11 | DataRobot, Inc. | Systems for second-order predictive data analytics, and related methods and apparatus |
EP3018843A1 (en) * | 2014-11-04 | 2016-05-11 | Sequans Communications Ltd. | Fast calibration of electronic devices |
US10460231B2 (en) | 2015-12-29 | 2019-10-29 | Samsung Electronics Co., Ltd. | Method and apparatus of neural network based image signal processor |
EP3488381B1 (en) | 2016-07-21 | 2024-02-28 | Siemens Healthineers AG | Method and system for artificial intelligence based medical image segmentation |
US10713593B2 (en) * | 2016-11-04 | 2020-07-14 | Google Llc | Implicit bridging of machine learning tasks |
US10032256B1 (en) | 2016-11-18 | 2018-07-24 | The Florida State University Research Foundation, Inc. | System and method for image processing using automatically estimated tuning parameters |
EP3364343A1 (en) | 2017-02-17 | 2018-08-22 | Cogisen SRL | Method for image processing for object detection |
US11995612B2 (en) * | 2019-04-08 | 2024-05-28 | Phenom People | Knowledge engine using machine learning and predictive modeling for optimizing recruitment management systems |
-
2019
- 2019-09-04 US US16/560,954 patent/US12033035B2/en active Active
-
2020
- 2020-08-25 JP JP2022510786A patent/JP2022546271A/ja active Pending
- 2020-08-25 WO PCT/US2020/047845 patent/WO2021045935A1/en unknown
- 2020-08-25 EP EP20861785.2A patent/EP4026004A4/en active Pending
- 2020-08-25 KR KR1020227010635A patent/KR20220054397A/ko unknown
- 2020-08-25 CN CN202080060190.XA patent/CN114286985A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022546271A (ja) | 2022-11-04 |
WO2021045935A1 (en) | 2021-03-11 |
US20210065051A1 (en) | 2021-03-04 |
US12033035B2 (en) | 2024-07-09 |
EP4026004A1 (en) | 2022-07-13 |
KR20220054397A (ko) | 2022-05-02 |
EP4026004A4 (en) | 2023-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102412937B1 (ko) | 합성곱 계층 가속 장치, 그것을 포함하는 임베디드 시스템 및 그것의 동작 방법 | |
Zhang et al. | BoostGCN: A framework for optimizing GCN inference on FPGA | |
US11410044B2 (en) | Application development platform and software development kits that provide comprehensive machine learning services | |
KR102208989B1 (ko) | 강화 학습을 통한 디바이스 배치 최적화 | |
US11106976B2 (en) | Neural network output layer for machine learning | |
US20190228037A1 (en) | Checkpointing data flow graph computation for machine learning | |
CN114286985A (zh) | 用于预测内核调谐参数的方法和设备 | |
AU2016203619A1 (en) | Layer-based operations scheduling to optimise memory for CNN applications | |
Daghero et al. | Energy-efficient deep learning inference on edge devices | |
US20200005135A1 (en) | Optimizing inference for deep-learning neural networks in a heterogeneous system | |
US11227030B2 (en) | Matrix multiplication engine using pipelining | |
US20190279086A1 (en) | Data flow graph node update for machine learning | |
US20210174202A1 (en) | Method and apparatus with model optimization, and accelerator system | |
US20240232594A1 (en) | Generating and globally tuning application-specific machine learning accelerators | |
US20220076095A1 (en) | Multi-level sparse neural networks with dynamic rerouting | |
US12079734B1 (en) | Compilation time reduction for memory and compute bound neural networks | |
US20220083844A1 (en) | Spatial tiling of compute arrays with shared control | |
de Prado et al. | Automated design space exploration for optimized deployment of dnn on arm cortex-a cpus | |
US20190286971A1 (en) | Reconfigurable prediction engine for general processor counting | |
Kim et al. | Nlp-fast: a fast, scalable, and flexible system to accelerate large-scale heterogeneous nlp models | |
Jahanshahi et al. | Inf4Edge: Automatic resource-aware generation of energy-efficient CNN inference accelerator for edge embedded FPGAs | |
US20220108156A1 (en) | Hardware architecture for processing data in sparse neural network | |
US11704562B1 (en) | Architecture for virtual instructions | |
CN115362450A (zh) | 在机器学习作业期间基于改善的存储器压缩传输的相似性的特征重排序 | |
Zhang et al. | Compilation and Optimizations for Efficient Machine Learning on Embedded Systems |
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 |