CN107003929A - 用于异构核设备上的机器学习的应用特征化 - Google Patents
用于异构核设备上的机器学习的应用特征化 Download PDFInfo
- Publication number
- CN107003929A CN107003929A CN201580067093.2A CN201580067093A CN107003929A CN 107003929 A CN107003929 A CN 107003929A CN 201580067093 A CN201580067093 A CN 201580067093A CN 107003929 A CN107003929 A CN 107003929A
- Authority
- CN
- China
- Prior art keywords
- application
- user
- processor
- computing device
- response
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/3438—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 monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
方法、设备、系统和非暂时性处理可读存储介质用于计算设备使用机器学习来动态地配置应用和/或与该应用相关联的复杂算法。由计算设备的处理器执行的一方面方法可以包括用于以下各项的操作:执行调用与复杂算法相关联的库函数的应用;获得用于指示对应用的性能的用户响应的信号;基于所获得的用于指示用户响应的信号,来确定用户是否容忍应用的性能;响应于确定用户不容忍应用的性能,对应用的配置进行调整以改善应用的随后性能;以及对用于指示对应用的性能的用户响应的数据以及其它外部变量进行存储,以在对用户输入的随后评估中使用。
Description
相关申请
本申请要求享受以下申请的优先权的权益:于2014年12月12日提交的、名称为“Application Characterization for Machine Learning on Heterogeneous CoreDevices”的美国临时申请No.62/091,290、以及于2014年12月12日提交的、名称为“Architecture for Improving Dynamic Execution of Complex Algorithms”的美国临时申请No.62/091,132,故这两个申请的全部内容通过引用的方式被并入本文。
背景技术
许多用户设备应用可以使用一些复杂算法(还被称为计算内核)。例如,社交媒体应用可以被配置为调用求解线性系统、提供矩阵乘法、执行特征值分解等的库。这样的复杂算法通常需要大量的计算资源,并且因此,当以最高执行速度和/或精度设置执行时,可能极大地影响电池电力以及以其它方式使计算系统资源负担重。然而,用户可能不总是要求在他们的设备上运行的应用对复杂算法进行最佳的执行(例如,速度、准确度、精度)。例如,当用户以其它方式忙于社交媒体应用中的其它活动(例如,上传、评论、整理等)时,他/她可以容忍针对接收社交媒体应用中的排序算法的结果的软截止期限。作为另一例子,当拍摄照片要上传到社交媒体站点时,用户可以编写伴随该照片的状态,并且因此,可能不关心脸部检测复杂算法的延迟。
发明内容
各个方面提供了用于动态地配置与在计算设备上执行的应用相关联的复杂算法的方法、设备、系统和非暂时性处理可读存储介质。由所述计算设备的处理器执行的一方面方法可以包括用于以下各项的操作:执行调用与复杂算法相关联的库函数的应用;获得用于指示对所述应用的性能的用户响应的信号;基于所获得的用于指示所述用户响应的信号来确定用户是否容忍所述应用的所述性能;响应于确定所述用户不容忍所述应用的所述性能,对所述应用的配置进行调整以改善所述应用的随后性能;以及对用于指示对所述应用的所述性能的所述用户响应的数据以及其它外部变量进行存储,以在对用户输入的随后评估中使用。在一些方面中,所述应用的所述性能包括以下各项中的至少一项:实现结果的执行速度、所述结果的准确度、以及所述结果的精度。在一些方面中,所述方法还可以包括响应于确定所述用户容忍所述应用的所述性能,对所述库函数的所述配置进行调整以降低所述应用的所述随后性能。
在一些方面中,所获得的用于指示所述用户响应的信号是以下各项中的一项或多项:触摸屏上的触摸输入、按钮按压、来自传感器的数据、另一应用的发起、所述应用的状态的改变、以及当用户响应将被期望时对用户输入的缺乏。在一些方面中,基于所获得的用于指示所述用户响应的信号来确定所述用户是否容忍所述应用的所述性能可以包括以下各项中的一项或多项:基于所获得的信号来确定所述用户是否已经忽略所述应用的输出,以及基于所获得的信号来确定所述用户是否已经校正所述应用的所述输出。在一些方面中,基于所获得的用于指示所述用户响应的信号来确定所述用户是否容忍所述应用的所述性能可以包括以下各项中的一项或多项:基于所获得的信号来确定所述用户是否已经导航离开所述应用,以及基于所获得的信号来确定所述用户是否已经按压刷新功能或者重复地按压其它按钮。
在一些方面中,所述方法还可以包括响应于基于所获得的信号而确定所述用户已经导航离开所述应用,确定所述用户是否导航返回到所述应用。在一些方面中,所述方法还可以包括响应于确定所述用户已经导航返回到所述应用,确定所述用户是否已经在预先定义的时间门限内导航返回到所述应用。在一些方面中,响应于确定所述用户不容忍所述应用的所述性能,对所述应用的所述配置进行调整以改善所述应用的所述随后性能可以包括以下各项中的一项或多项:增加精度设置,增加执行速度设置,以及改变执行核设置。
在一些方面中,响应于确定所述用户不容忍所述应用的所述性能,对所述应用的所述配置进行调整以改善所述应用的所述随后性能可以包括:响应于确定所述用户不容忍所述应用的所述性能,对用于使用所述库函数的所述应用的所述配置进行调整。在一些方面中,所述方法还可以包括:响应于确定所述用户确实容忍所述应用的所述性能,对所述应用的所述配置进行调整以降低所述应用的所述随后性能。在一些方面中,所述应用可以调用多个库函数,其中,所述库函数可以在所述多个库函数内,并且所述方法还可以包括:选择所述多个库函数中的第一库函数;响应于基于所获得的用于指示所述用户响应的信号而确定所述用户不容忍所述应用的所述性能,对所述第一库函数的配置进行调整以改善所述应用的所述随后性能;随后执行所述应用;获得用于指示对所述应用的所述随后性能的随后用户响应的随后信号;响应于确定所述用户不容忍所述应用的所述随后性能,选择所述多个库函数中的第二库函数;以及对所述第二库函数的配置进行调整。
在一些方面中,所述方法还可以包括:获得用于所述应用的多个折衷设置;对在初始时间时的与所述计算设备相关联的状况进行评估;以及基于所评估的在所述初始时间时的与所述计算设备相关联的状况,来确定所获得的多个折衷设置中的折衷设置是否将被使用。在一些方面中,所述方法还可以包括:响应于基于所评估的在所述初始时间时的与所述计算设备相关联的状况而确定所述折衷设置将被使用,基于所述折衷设置来对所述应用的初始配置进行调整。在一些方面中,响应于确定所述用户不容忍所述应用的所述性能,对所述应用的所述配置进行调整以改善所述应用的所述随后性能可以包括:响应于确定所述用户不容忍使用所述初始配置的所述应用的所述性能,对所述应用的所述初始配置进行重写。在一些方面中,获得用于所述应用的所述多个折衷设置可以包括以下各项中的至少一项:在所述应用的运行时间期间经由应用编程接口(API)获得用于所述应用的第一折衷设置,经由代码中指令获得用于所述应用的第二折衷设置,以及经由专用寄存器获得用于所述应用的第三折衷设置。在一些方面中,对在所述初始时间时的与所述计算设备相关联的状况进行评估可以包括以下各项中的至少一项:对用于应用的工作负载进行评估;以及对影响所述计算设备对所述应用的处理的外部状况进行评估。
另外的方面包括一种被配置有处理器可执行指令以执行以上描述的方法的操作的计算设备。另外的方面包括一种非暂时性处理器可读介质,其上存储有处理器可执行指令,所述处理器可执行指令被配置为使得计算设备执行以上描述的方法的操作。另外的方面包括一种通信系统,其包括被配置有处理器可执行指令以执行以上描述的方法的操作的计算设备。
附图说明
被并入本文并且构成该说明书的部分的附图示出了本发明的示例性方面,并且连同以上给出的总体描述以及以下给出的详细描述一起用来解释本发明的特征。
图1A-1B是示出了功率消耗与针对复杂算法的准确度和运行时间速度配置之间的一般关系的图(例如,帕累托最优(Pareto optimality)图)。
图2是在多核设备中实现的并且适于与各个方面一起使用的架构的组件框图。
图3是根据各个方面的与应用相关联的折衷(trade-off)功能的组件框图。
图4是示出了适于与各个方面一起使用的示例性指令(directive)(即,编译指示(pragma))的集合的图。
图5是示出了适于与各个方面一起使用的示例性应用编程接口(API)调用的集合的图。
图6A-6B是示出了用于计算设备如在折衷功能中定义地并且基于评估的当前状况来调整应用和/或由该应用使用的复杂算法的配置的各方面方法的过程流程图。
图7A是示出了适于与各个方面一起使用的基本模块架构的组件框图。
图7B是示出了用于计算设备基于用户响应来调整应用和/或由该应用使用的复杂算法的配置的一方面方法的过程流程图。
图8A-8B是示出了用于计算设备基于用户输入来调整应用和/或由该应用使用的复杂算法的精度配置的各方面方法的过程流程图。
图9A-9B是示出了用于计算设备基于用户输入来调整应用和/或由该应用使用的复杂算法的执行速度配置的各方面方法的过程流程图。
图10是适于与各个方面一起使用的示例膝上型计算设备的组件框图。
图11是适于在一方面中使用的移动计算设备的组件框图。
具体实施方式
将参照附图详细描述各个方面。在任何可能的情况下,将贯穿各个图使用相同的附图标记来指代相同或类似的部分。对特定例子和实现方式的提及是出于说明性的目的的,而并非旨在限制本发明或者权利要求的范围。
“示例性”一词在本文中被用来意指“充当例子、实例或说明”。在本文中被描述为“示例性的”任何实现方式不必然地被解释为优选的或者比其它实现方式有优势。
术语“计算设备”在本文中被用来指代以下各项中的任何一项或者全部:蜂窝电话、智能电话、上网机(web-pad)、平板计算机、具有互联网功能的蜂窝电话、具有功能的电子设备、个人数据助理(PDA)、膝上型计算机、个人计算机和配备有至少一个处理器的类似电子设备。例如,移动通信设备(例如,智能电话)可以被视为移动计算设备。此外,计算设备可以使用均可以具有各种能力和配置的各种核或者处理器(即,异构核),例如,应用处理器、图形处理单元(GPU)、数字信号处理器(DSP)等。这样的计算设备在本文中可以被称为“多核设备”。
通常,许多科学算法(例如,矩阵乘法、向量数学、曲线拟合等)是计算密集型的,在被计算设备执行时导致大量的功率消耗以及总体性能问题。例如,当利用没有被适当地配置用于在片上系统(SoC)架构上使用的某些函数的应用在SoC设备上执行时,应用性能可能是迟滞的和/或该设备的电池可能被快速地耗尽。图1A-1B是示出了功率消耗与用于应用和/或复杂算法的准确度和运行时间速度配置之间的一般关系的图(例如,帕累托最优图)。特别是,这些图示出了随着典型的应用和/或算法被配置用于较大的准确度(或者精度)或者运行时间速度,它们的功率消耗也在增加。
关于应用结果的执行速度、精度和/或准确度,用户可以容忍对各应用的不同体验。然而,用户的容忍门限可能不是提前可知的,因为这样的要求经常是取决于用户的并且是个性化的。例如,一些用户可以容忍对某些应用结果的延迟,而其它用户可能完全无法容忍在接收相同应用结果(例如,脸部标记)时的甚至轻微的延迟。作为另一例子,当在膝上型计算机上执行应用时,可以允许脸部检测复杂算法较慢;然而,当在智能眼镜上执行时,脸部检测算法的轻微延迟对于用户来说可能是不可接受的。因此,针对应用性能的用户体验要求对于程序员利用预先提供的提示(hint)(例如,可以以其它方式被用于改善对复杂算法的执行的编译指示或者指令)来解决而言可能是困难的并且是不切实际的。例如,程序员或者开发人员可能对代码中的应当经由提示(例如,编译指示)被配置为较不精确以便改善响应时间的部分判断错误,从而导致来自用户的烦恼。
过分简单地利用所有应用和/或由这些应用使用的复杂算法的最资源密集型的配置来执行它们可能是低效的或者不可行的,这取决于情况和用户。例如,当应用的算法被配置为使用它们的最高执行速度配置时,可能太快地使用太多的功率,对用户来说没有可观的增益。作为另一例子,当应用使用最大资源而对于它们的组件中的一些组件不要求最高浮点精度,并且可以容忍来自复杂算法的较低精度时(例如,机器学习算法的各阶段可以以较低精度运行,而结果仍然是可接受的),可能浪费功率。因此,需要如下的智能技术:所述智能技术学习对应用和/或由这些应用使用的复杂算法进行配置的改进的方式,以对计算设备的性能与用户体验进行平衡。
各个方面提供了用于使用利用复杂算法的应用的调用和用途来学习用户可接受的方式,以调整对应用和/或复杂算法的执行。换言之,各方面技术自动地学习用户的对于应用的性能的要求或者偏好,以便例如当执行复杂算法执行时,提供足够的用户体验。可以基于在应用和/或其复杂算法的执行期间或者完成时从用户观察到的输入或者其它上下文信息,来实现这样的学习。基于从用户接收的反馈,计算设备可以例如通过增加/减小准确度或者精度,增加/减小执行速度,和/或改变被指派来执行复杂算法操作的核,持续地调整对应用和/或该应用的复杂算法的执行的配置。
在各个方面中,计算设备可以监听并且处理由用户提供的各种信号,以推断应用和/或复杂算法的执行和当前配置是否正在提供可接受的用户体验。特别是,计算设备可以分析用户与计算设备的界面和/或传感器的交互,以识别应用是否正在提供在结果方面足够的实时响应、准确度和/或精度,以使得用户不在提供与对结果的失望或者不满意相一致的反馈/输入。例如,计算设备可以识别触摸屏上的用于指示对由应用的复杂算法生成的结果数据的满意的轻击。在各个方面中,可以由计算设备的操作系统和/或应用二者获得和/或处理指示关于应用和相关的复杂算法的执行的用户的体验的信号。在一些方面中,计算设备可以利用行为分析系统(例如,用于异常检测(例如,检测恶意软件应用)的行为系统),来确定应用响应是否在用户的可容忍参数内。
关于应用和/或由该应用使用的复杂算法的响应时间(或者执行速度)配置,计算设备可以观察用户是否将对界面的关注转移到另一应用,在执行正在发生时持续地提供输入(例如,触摸屏上的刷新、轻击等),和/或在执行已经完成并且将结果呈现给用户之后没有以及时的方式提供输入。例如,如果由应用请求的结果被延迟并且用户导航远离该应用(例如,关闭该应用、切换到另一应用等),那么计算设备可以推断该用户无法容忍该延迟,并且用于提供结果的执行截止期限(或者延迟)已经太长了。作为另一例子,如果计算设备基于信号确定当应用的结果正在后台被计算时,用户持续地刷新该应用和/或重复地按压按钮中的一些按钮,那么计算设备可以推断正在失去用户对于该应用的时效性偏好。
关于应用和/或由该应用使用的复杂算法的准确度和/或精度,计算设备可以针对用于指示用户发现来自该应用的结果不充分的用户输入或者信号进行监测。例如,当用户忽略社交媒体应用(例如,脸部检测和标记)的复杂算法的输出(与如基于缺少用户输入而确定的最大可用精度相比,其是以较低的精度计算的)时,计算设备可以推断精度对于用户来说太低(例如,对错误的人进行脸部标记太频繁等)。作为另一例子,当用户提供用于校正应用的复杂算法的输出(例如,校正转录(transcription)、对自动校正功能的校正等)的输入时,计算设备可以将这样的信号解释为指示该精度对于用户的偏好而言太低,并且可以增加用于复杂算法的精度配置以用于相关联的应用的随后执行。在一些方面中,观察到的对应用输出的用户校正的程度可以被用于调整应用和/或复杂算法配置。例如,如果用户完全拒绝针对整个照片的姓名标记结果,那么计算设备可以推断用于标记算法的精度配置应当被显著地增加,而如果用户仅校正针对照片的姓名标记中的小部分,那么计算设备可以推断用于标记算法的精度配置无需被调整或者在小程度上被调整。
在一些方面中,计算设备可以被配置为基于观察到的用户输入/信号来持续地并且自动地调整应用和/或由该应用使用的复杂算法的配置或者执行速度,以便学习针对用户可接受的性能的较低界限。例如,计算设备可以被配置为通过递增地降低算法的执行速度和/或精度,直到检测到用于指示用户的烦恼的输入(例如,重复地按钮按压,用户忽略标记等)为止,学习针对社交媒体应用中的脸部标记算法的用户的容忍门限。以这种方式,计算设备可以发现高效的同时在不需要用户手动地设置偏好的情况下满足用户的偏好的应用配置和执行速度的集合。
应用可以使用均有助于用户体验的各种复杂算法,并且在一些方面中,这些复杂算法中的每种算法可以与其自身的配置或者设置(例如,准确度、精度、执行速度等)相关联,这些配置或者设置可以响应于获得的指示差体验的用户输入而被单独地调整以改善用户体验。然而,由于用户输入可能不会指示复杂算法的必然有助于差体验的配置,所以计算设备可以被配置为以迭代的方式单独地调整复杂算法。例如,在检测到指示(例如,由于结果的延迟或者不准确的结果而导致的)对应用的差的用户体验的第一用户信号之后,计算设备可以改善该应用的第一复杂算法的第一配置并且观察随后的用户交互,例如,经由触摸输入的随后响应等。如果计算设备然后观察到指示差的用户体验或者与其相一致的随后的第二用户交互,那么计算设备可以调整由该应用使用的第二复杂算法的第二配置并且再次观察随后的用户交互。可以重复这样的“调整并且观察”过程,直到计算设备观察到与满意的用户体验相一致的用户交互为止。选择不同的复杂算法来进行调整可以经由预先定义的优先级列表、经由开发人员提供的提示(例如,编译指示)、和/或从远程设备(例如,具有应用的其它实例化的知识以及相关的用户体验的云服务器)来实现。
在一些方面中,如果应用和/或复杂算法无法被充分地调整以满足用户的要求,那么可以在应用和/或复杂算法的下一次调用时将工作卸载到云计算设备。例如,当在执行脸部检测算法时观察到的用户交互指示用户继续被处理延迟所烦恼(例如,基于在移动设备上检测到大量轻击)时,移动设备可以将下一脸部检测操作卸载到远程服务器,而移动设备使用其全部资源用于其它操作。
在各个方面中,具有不同规范的多处理核可以可用于被配置为利用各方面技术的计算设备(例如,移动设备)中。根据要求特定计算的结果多快以及多准确,可以在计算设备的各个处理核上调度、分派、以及运行应用(或者应用的部分)和/或复杂算法,以节省能量同时提供及时的结果。本文中描述的系统架构可以被用于通过收集要被用于调度、调整和执行应用和/或与该应用相关联的复杂算法的硬件和应用要求和状态来实现该目标。在一些方面中,计算设备可以利用各种信息来识别如何配置应用和/或复杂算法(例如,由应用调用的计算内核)以用于在其各个核中的一个或多个核上的高效执行。例如,计算设备可以利用计算设备的硬件(例如,异构核、存储器等)的稳态特性和能力、先前识别的用于执行应用和/或复杂算法的参数(例如,可接受的执行速度或者截止期限、准确度等)、计算设备的各个硬件的任何当前或者暂态或者状况、和/或应用和/或由该应用使用的复杂算法的历史资源使用(例如,缓存缺失、存储器访问模式、带宽利用率、例外和分支频率等)。这样的信息可以经由对系统变量的查询(例如,专用寄存器)、与应用相关联的代码内的编译指示指示符、应用和/或相关的软件内的API调用、和/或从用户输入(例如,检测到的指示无耐心的触摸、指示不正确或者不可接受的延迟的响应时间的选择输入等)来获得。在一些方面中,计算设备可以利用调度器或者负载分发器模块来使用信息(例如,错过的截止期限和负载平衡历史)来将软件配置(或者指派)为在各个核上执行。在一些方面中,计算设备可以例如通过在对应用的执行期间将内核使用数据提供给资源历史子系统来存储或者以其它方式保留核使用数据,以在应用和/或复杂算法的随后执行中使用。
在一些方面中,计算设备可以利用预先定义的折衷功能和/或其它用户或者开发人员提供的数据,来确定应用和/或由该应用使用的复杂算法的可以被调整为最佳改善用户体验的配置/设置。例如,基于指示由视频游戏应用使用的向量数学算法可以利用用于提供结果的软截止期限的编译指示,计算设备可以响应于基于触摸屏上的持续轻击而推断用户对计算设备的当前性能烦恼,相应地调整向量数学算法。如本文中描述的,计算设备可以基于用户提供的提示来对应用和/或复杂算法进行调整(例如,虽然程序员可以将代码的一部分识别为计算密集型的,但是编译器可能调整或者可能不会调整对该代码的执行)。然而,在稍后的时间,该代码中的由于观察到的用户交互而被突出的部分(例如,经由API调用和/或编译指示)可以由计算设备评估,以识别可能导致差的用户体验的潜在延迟。
一些方面可以通过使用解决计算设备的动态限制(例如,可用功率、计算能力等)的折衷功能,来利用被设计用于应用和/或由在计算设备上执行的该应用使用的复杂算法的动态执行的架构。特别是,一些方面技术可以提供用于对性能和准确度与能量和功率消耗进行折衷的功能。
为了执行设备上的应用和/或由该应用使用的复杂算法,可能需要各种评估来确定该设备是否将受到执行应用和/或复杂算法的负面影响和/或计算设备是否应当采取其它预防措施。例如,当仅存在有限的可用功率电平时,移动设备可以执行测试以确保复杂算法执行不耗尽电池。作为另一例子,对于计算设备而言,可能需要避免过度优化导致针对某些关键应用的迟滞或者非实时输出的预防措施。另一例子是针对避免使得处理器过热同时尝试满足实时截止期限的预防措施和评估。
用户可以例如经由被嵌入在代码或者指令集内的指令(或者“编译指示”)来设置用于适应对应用和/或由该应用使用的复杂算法的执行的静态参数。一种这样的自适应可以调整(例如,增加或者减小)计算的速度。当用户不需要实时算法输出时,降低执行的速度可能是有用的。例如,因为一些用户可以容忍由于以其它方式被占用(例如,向照片添加文本描述)而导致的轻微(或者软)实时延迟,所以当获得新照片时针对脸部标记算法的输出可以被轻微地延迟。作为另一例子,用户可以容忍等待,直到计算设备通宵被插入到电源中以执行对在白天期间拍摄的照片的聚类以及将它们分组到不同的相册中为止。作为另一例子,可以允许机器学习算法通宵处理反馈数据(以及当设备被插入到壁式插座中时),以便将算法的配置调谐用于第二天的使用。执行速度的降低有时可能是不可行的,例如,当算法在提供话音识别和/或转录的情况下具有硬实时要求时。
另一种这样的自适应可以调整(例如,增加或者减小)计算的精度和/或准确度。例如,当可用功率是有限的时,只要某一百分比的结果是正确的,用户就可以容忍脸部检测或者脸部标记算法的轻微的准确度或者精度下降。一些应用和/或算法可能不需要高精度来提供充分的结果。
另一种这样的自适应可以是调度用于在不同的核上执行的操作。这样的调度可以是依赖于在给定时间(例如,初始时间)处的系统的输入数据和状态(例如,诸如硬件能力之类的静态设备信息和诸如电池电力之类的其它暂态信息)的。例如,当设备电池具有大量的可用电池电力时,计算设备可以将应用配置为利用所有核来满足科学库函数的处理截止期限,但是,在其它情况下(例如,当电池低于预先定义的电平时),计算设备可以折衷并且仅使用单个核或者专用核来执行函数。
在一些方面中,计算设备可以被配置为调谐多少存储器带宽(或者信道)被应用用来占用以便传送计算所需要的数据或者代码。可以完成这样的调谐,以便允许其它过程接入并且以其它方式使用与由该应用使用的相同的信道。在一些方面中,计算设备可以被配置为改变存储器层级(例如,被分配给共享存储器上的各个核的栈和堆的量),以满足用于执行应用的某些截止期限,而需要或者不需要唤醒处于待机的其它核。
除了基于检测到的用户输入的机器学习技术之外,一些方面还可以利用智能系统来确定如何动态地设置和调整应用和/或复杂算法的配置,以便在给定时间处适应用户的设备性能期望以及设备约束。因此,一些方面通过使得计算设备能够自动地调整应用和/或复杂算法的性能来适应变化的环境、设备状态、用户性能期望以及其它设备约束,从而改善计算设备的功能。这样的调整可以改善设备处的功率消耗,同时平衡用户体验。
可以由例如计算设备的用户或者应用开发人员来定义逻辑关系或者规则集(在本文中被称为“折衷功能”)。每种折衷功能可以指示可以被应用调用的、用于执行应用和/或复杂算法(例如,科学计算)的各种配置或者设置。折衷功能还可以指示计算设备在应用的执行期间的状况或者设备状态,其在被检测到时可以触发对配置中的任何配置的使用。例如,折衷功能可以包括指示热状况的数据(例如,设备温度),热状况在被满足时指示相关联的库函数的执行应当被重新配置为减慢或者使得较不准确。作为另一例子,响应于确定计算设备被连接到电源(例如,壁式插座),折衷功能内的数据可以提示计算设备以较高的精度水平来执行矩阵乘法库函数。以这种方式,由计算设备执行的各方面技术可以使得用户能够更为紧密且动态地控制计算设备配置时间和/或能量密集型应用和/或复杂算法的方式。
作为说明,用户可以定义用于与应用(例如,社交媒体应用)相关联地执行的特定科学库函数(例如,向量数学算法)的折衷功能。折衷功能可以指示相对于计算设备中的热或者热能状况(或者读数)的性能设置(例如,用于执行复杂算法的执行或者运行时间速度)。折衷功能可以指示可以针对科学库函数实现较慢的运行时间,试图节省由于热瓶颈而导致的每时间单位的能量消耗率。基于预先定义的热限制(例如,制造商规范等),性能与热状况之间的这样的连接对于计算设备的总体健康而言可能是重要的。折衷功能(或者单独的折衷功能)可以指示相对于可用功率状况(例如,可用电池电平)的性能设置,并且可以指示可以针对科学库函数来实现较慢的运行时间,试图节省电池电力。折衷功能(或者单独的折衷功能)可以指示相对于热或者热能状况的准确度或者精度设置,从而指示较低的准确度或者精度设置可以被用于降低能量消耗率。折衷功能(或者单独的折衷功能)可以指示相对于功率状况的准确度或者精度设置,从而指示较低的准确度或者精度设置可以被用于节省电池电力。
定义如何以及在何种情况下可以配置应用和/或由该应用使用的复杂算法(或者库函数)的折衷功能可以由计算设备以各种方式来激活或者以其它方式获得。特别是,计算设备可以利用折衷功能来在初始时间(例如,在启动时,在加载应用时等)时建立用于应用和/或由该应用使用的函数的初始配置。响应于接收到需要对应用和/或复杂算法进行重新配置的用户输入,计算设备可以或者可以不覆盖或者以其它方式忽略基于折衷功能的配置集。例如,虽然应用初始被配置为利用“低”精度设置用于特定脸部标记算法,但是计算设备随后可以基于指示用户对脸部标记结果不高兴的用户输入,将精度设置改变为“高”。此外,计算设备可以被配置为基于当前用户满意度,忽略与在应用和/或复杂算法中应当创立的配置相反的折衷功能。例如,计算设备可以基于指示用户满意度的当前用户输入,来从折衷功能中识别用于库函数的低精度设置,仅作为可以被利用或者可以不被利用的建议的配置。
在一些方面中,折衷功能可以由与要被计算设备执行的应用和/或复杂算法相关联的代码内的指令定义或者激活。换言之,可以经由在代码中指示的提示(例如,编译指示(即,引起汇编器/解释器/编译器过程的预处理指令))向应用、库函数或者其它复杂算法通知可以被利用的设置的可能性。可以在编译时间(例如,当解析、解释、编译以及以其它方式加载包括编译指示的代码以进行执行时)识别(或者以其它方式获得)这样的指令。
在一些方面中,可以在运行时间期间经由应用编程接口(API)调用来创立折衷功能。例如,线程、进程或者其它具备软件功能的元件可以被配置为基于在给定时间(例如,初始化或者初始时间)时的热能读数和/或可用电池电力,来调用特定API调用,以请求或者使用定义的规则集来限制对科学库函数的执行。
在一些方面中,计算设备可以从与提供应用和/或算法配置相关联的专门保留的存储器位置(被称为“专用寄存器”)获得折衷功能数据。例如,专用寄存器可以包括用于指示以下内容的信息:数学算法可以被配置为使用相对于当前设备温度和/或电池电力电平的软/硬实时截止期限。
不管如何获得或者激活用于与应用和/或复杂算法一起使用的折衷功能,都可以通过持续地评估与计算设备相关联的各种状况和/或对调用复杂算法的应用的执行,来以动态方式利用折衷功能。换言之,可以基于轮询的或者测量的变量的当前值(例如,计算设备的各种操作状态),在应用的编译时间和/或动态地贯穿应用的执行,对应用和/或复杂算法的配置进行动态地设置、调整和/或返回到默认设置。例如,一旦基于使用向量数学算法的应用的源代码内包括的指令,在编译时间建立用于该应用的折衷功能,计算设备就可以持续地评估该计算设备的电池电力、与正在执行的应用相关联的工作负载、该设备的热能(例如,设备温度)、和/或其它状况,以确定是否调整向量数学算法的执行的配置(例如,运行较慢/较快、使得较不/较为精确或者准确、在不同核上运行等)。作为另一例子,当电池被确定为不足时,因为数据传送可能需要太多能量,所以计算设备可以动态地决定仅在两个核(其不包括GPU)上执行机器学习算法。换言之,虽然可以以更加静态的方式来建立制定出配置要如何被改变的折衷功能,但是基于计算设备和/或应用的正在进行的状况,对于是否使用由所建立的折衷功能定义的各种配置或者设置的触发或者输入是动态的。
在一些方面中,计算设备可以对利用遵循折衷功能的复杂算法的应用的工作负载进行评估,以确定是否可以在给定时间时重新配置应用和/或复杂算法。例如,计算设备可以对要标记的图像数据库的大小进行评估,并且基于用于该算法的相关折衷功能,来动态地请求对于标记过程的延迟处理。在一些方面中,可以根据由于计算设备的当前可用功率电平和计算设备的热能水平而导致的折衷功能来调整配置。在一些方面中,可以根据基于当前外部状况的折衷功能来调整配置。例如,被插入到外部电源或者被连接到无线路由器(例如,路由器)可以指示较多的电力可用或者计算设备正在使用较少的电力(例如,到路由器的传输可以使用较少的发射功率),并且因此,科学库函数可以被配置有较高的执行速度和/或较高的准确度或者精度配置。
在一些方面中,计算设备可以基于如上所述在初始时间时被确定为是有效的折衷功能,来调整应用的配置(例如,复杂算法、科学函数的执行设置等)。这样的调整可以包括改变用于执行应用和/或其使用的复杂算法的准确度、精度和/或执行速度配置。在一些方面中,调整可以包括将应用配置为将复杂算法和/或应用的可执行代码的部分分派给计算设备的一个或多个核,例如,应用处理器核、图形处理单元(GPU)、数字信号处理器(DSP)或者虚拟或者实际核的任意组合。例如,当电力资源是有限的时(例如,由于折衷的能量约束而导致的等)和/或当计算设备逐渐变热时(例如,由于折衷的能量约束而导致的等),各方面技术可以使得使用折衷功能的应用提供具有较低准确度的结果(例如,对照片进行错误的脸部标记或者聚类等)和/或使用不同的核。
在一些方面中,子程序或者其它可执行操作可以被配置为从它们相应的父应用继承定义准确度或者精度配置和实时要求的折衷功能。例如,如果父应用利用允许执行时间的低时延的折衷功能,那么针对与父应用有关的科学函数、子应用的某个截止期限(例如,硬截止期限、软截止期限等)和/或高准确度结果可以继承那些相同或者类似的要求。
各个方面可以提供用于改善对计算密集型应用(例如,利用复杂算法或者科学计算库的应用)的使用的有益技术。例如,通过减慢计算和/或降低计算的准确度来进行折衷的配置可以使得计算设备能够根据用户的当前满意度和/或各种操作状况(例如,较低电池、热的设备温度等)来持续操作应用。以此方式,对复杂算法/应用的执行的用户反应可以被用于持续地配置随后的执行,以便对设备的性能(例如,使用的电力、完成任务的时间、使用的组件、结果的准确度、结果的精度等)与可接受的用户体验进行平衡。
可能存在传统的技术,其关于对计算设备上的程序的执行对操作系统或者硬件设置(例如,频率、电源、时钟速度、功耗和资源分配(例如,无线单元激活/使用等))进行调整。然而,这些传统的技术不同于本文中公开的对应用和/或由该应用利用的软件(例如,库函数等)进行配置的各方面技术。换言之,这些方面技术调整应用设置,而非硬件或者系统设置,以便关于准确度/精度、执行速度等达到对应用的用户可接受体验。例如,各方面技术可以基于解释的对科学函数的先前调用的用户满意度,来对应用如何使用科学函数进行改变(例如,按双倍、两双(double-double)的精度等)。作为另一例子,这些方面技术可以被用于对应用如何指派对科学函数的不同部分的执行进行改变(例如,通过将循环的部分或者可执行代码的其它部分指派给一个或多个处理器或者将循环或者其它部分设置为以串行或者并行的方式来执行)。作为另一例子,使用这些方面技术,计算设备可以将应用调整为被配置为在单个核上使用库函数的操作的超线程以促进对数据的较快预先取回。
此外,这些方面技术不同于传统的技术,这是因为这些方面技术并不利用或者调整用户偏好和/或用户简档,而是替代地调整应用特定的和/或算法特定的配置。例如,应用可以被配置为基于指示来自科学函数的先前结果太不精确的用户反馈数据(例如,指示应用进行的多个错误或者不精确计算的用户输入),对科学函数(例如,矩阵乘法等)利用较低精度的计算。此外,与被委以识别对一般问题的最优解决方案的一些传统技术不同,这些方面技术仅利用用户反馈来改变软件执行,以更好地适应用户的当前期望。例如,这些方面技术并非运作为利用专家程序或者解决方案引擎来求解逻辑困境,而是替代地重新配置应用,以使得它们的执行更好地适合用户的当前满意度反馈(例如,屏幕上的轻击、凝视屏幕等)。
这些方面技术可以使用当前的用户满意度反馈数据(例如,对应用的用户输入),以识别在未来应当对应用配置进行的改变,以改善对应用的执行的用户满意度。例如,基于测量的、在(例如,经由脸部标记函数调用)已经标记有姓名的一批图像中错误应答的数量,计算设备可以调整用于应用的一个或多个面部标记准确度设置,以使得对面部标记函数的随后执行可以利用较高精度(但是较慢)的配置。以此方式,计算设备确实可以基于历史用户活动以及对应用的执行的满意度来识别如何重新配置执行。
以下描述提及了可以基于用户满意度并且根据各个方面、对与应用相关联的并且由该应用执行的库函数和/或复杂算法进行的折衷设置、配置以及其它调整。例如,以下描述提及了由计算设备获得的、用于由应用使用的特定库函数的折衷设置。然而,应当意识到的是,各个方面技术可以改变应用或者应用的部分(即,在计算设备上执行的软件或者代码段)的配置,而不管它们对复杂算法或者库函数的使用。因此,对用于特定库函数、算法、科学计算、代码和/或其它特定功能的配置或设置的提及仅是说明性的,而非在调整软件配置的各方面技术方面进行限制。例如,可以对整个应用(例如,程序)、应用的一部分(例如,应用的代码内的循环等)以及由应用调用的库函数(例如,矩阵乘法运算等)的任意组合进行与执行速度和/或准确度相关的配置。
图2示出了在多核计算设备中实现的并且适于与各个方面一起使用的架构200。架构200可以包括用于提供计算设备的各种功能的模块,其包括能够提供用于指示该设备的连接和/或操作状况(例如,被插入到电源插座中,正在被移动等)的数据的外部数据源202(例如,传感器输入)。计算设备还可以包括可以结合各种软件、例程、应用和/或指令集执行的各个模块,例如,行为分析模块204、运动状态分析(例如,高斯混合模型(GMM)、隐马尔可夫模型(HMM)等)、声音分析模块208(例如,GMM、HMM、人工神经网络(ANN))、视频和/或图片分析模块210(例如,深度卷积网络(DCN)、ANN等)、机器学习算法212(例如,朴素贝叶斯、逻辑回归(LR)、支持向量机(SVM)、HMM、GMM/期望最大化(EM)、提升(Boosting)、ANN、DCN等)以及各种复杂算法(例如,线性代数程序包(LAPACK)求解器214、向量数学算法216、汇总统计算法218以及曲线拟合算法220)。架构200还可以包括被优化用于特定计算环境的模块,例如,被优化用于骁龙处理器的线性代数库222(例如,基本线性代数子程序(BLAS)等)。这样的库222还可以包括MARE模块224(例如,用于通过利用多核架构来优化电力和效率的模块)。各个组件204-224可以利用可以从如本文描述的各方面折衷功能中受益的复杂算法。在各个方面中,架构200可以包括还可以从如本文描述的各方面折衷功能和其它配置技术中受益的各个其它模块,例如,与生物分析、视频游戏或者其它图形引擎操作等相关的复杂算法。
架构200还可以包括各个核,例如,具有不同能力、规范和/或特性的异构核226。还可以包括硬件加速模块228。在一些方面中,各个核226可以被用于执行如在相关折衷功能中设置的和/或以其它方式基于用户反馈而配置的、与上述模块204-224相关的操作。
图3示出了根据各个方面的示例性折衷功能架构302。折衷功能架构302可以是可以定义用于应用或者复杂算法(例如,特定库函数、科学计算等)的不同配置或者设置的数据结构、逻辑单元、指令或者其它存储的信息。在各个方面中,折衷功能架构302可以是预先定义的,并且经由用户/开发人员输入(例如,API调用、编译指示等)激活的,或者替代地可以是基于这样的输入而生成的。
折衷功能架构302可以包括、存储、利用诸如以下各项之类的折衷变量304和/或以其它方式与其相关联:用于准确度的变量306(例如,当前准确度设置、高准确度设置、较低准确度设置等)、用于能量的变量308(即,上取整电池能量值、下取整电池能量值等)、用于性能的变量310(例如,当前执行或者运行时间速度、较低执行速度设置、高执行速度设置等)以及用于电力的变量312(即,上取整热功率值、下取整热功率值等)。折衷功能架构302可以包括、存储、利用包括以下各项的决策时间模块数据314和/或以其它方式与其相关联:可以指示折衷功能构架302可以如何被创立、激活和/或以其它方式调整的编译时间数据316(即,静态数据)和/或运行时间数据318(即,潜在动态数据)。折衷功能架构302可以包括、存储、利用接口模式数据320(例如,指令数据322、API数据324和硬件寄存器326)和/或以其它方式与其相关联,接口模式数据320可以指示折衷功能构架302可以被调整和/或被激活的方式。
图4示出了适于与各个方面一起使用的示例性指令(或者“编译指示”)的集合400。这样的指令可以由计算设备在编译时间使用,例如,当在编译期间利用源代码来生成用于在计算设备上使用的可执行文件时。通常,传统的编译指示或者其它类似的指令可以是开发人员插入到其它代码内以便为编译器或者计算设备的其它处理系统提供提示或者指示的代码、文本和/或其它信息。传统的编译指示可以直接地控制编译时间操作和结果。例如,当示例性传统编译指示指出可执行文件的某段将被调整时,计算设备将相应地调整功能。
与传统指令不同,一些方面技术可以利用非单方面地确定计算设备最终可以进行操作的方式的指令。相反,如在一些方面技术中使用的指令可以仅建议针对应用和/或复杂算法的操作或者配置的偏好,其可以被与计算设备相关的其它状况的评估所覆盖。换言之,如在一些方面技术中使用的指令可以指示可应用于各个应用和/或复杂算法的折衷功能,其可以被或者可以不被在计算设备上执行的应用使用。例如,如与各方面技术一起使用的编译指示可以指向用户可能更喜欢在给定时间时被用于特定库函数的特定折衷功能(或者规则集),然而,计算设备可以基于实时评估的动态系统状态变量,来利用不同的折衷设置用于库函数。换言之,一些方面技术可以利用编译指示作为要使用的一种可能输入,来告诉系统以下内容:系统应当使用何种折衷方案用于一些应用和/或复杂算法。
以下是对在图4中示出的示例性编译指示的集合400的描述,该编译指示的集合400可以被用于配置由在计算设备上执行的应用使用的复杂算法。集合400中的每个示例性编译指示402-410可以包括:用于指示其是建议的或者优选的指令的关键词(例如,“#pragma(编译指示)”)、用于指示由编译指示提出的目标复杂算法(或者库函数)的自变量(例如,“scientific_library(科学库)”)、目标复杂算法的特性(例如,“deadline(截止期限)”)、以及用于指示针对该特性的配置的偏好的关键词(例如,“HardReal-time(硬实时)”等)。示例性的编译指示的集合400可以包括:用于指示针对要被执行以使得其具有硬实时截止期限的科学库算法的编译时间偏好的第一编译指示402、用于指示针对要被执行以使得其具有软实时截止期限的科学库算法的编译时间偏好的第二编译指示404、用于指示针对要被执行以使得其可以机会性地节省电池电力(在合适的情况下)的科学库算法的编译时间偏好的第三编译指示406、用于指示针对要以15秒的截止期限来被执行的科学库算法的编译时间偏好的第四编译指示408、以及用于指示针对要以10分钟的截止期限来被执行的科学库算法的编译时间偏好的第五编译指示410。
图5示出了适于与各个方面一起使用的示例性应用编程接口(API)调用的集合500。与以上参照图4描述的示例性编译指示不同,这样的API调用可以实现对用于在计算设备上执行的应用和/或复杂算法的各种折衷功能的实时调用。作为说明,与科学库相关联的标量功能可以利用第一行501a来发起,并且任务分派器例程可以与用于行501b中的科学库的调度器相关联。集合500中的每个API调用502-510可以示出经由任务分派器的不同调用以使得不同的折衷被实时地请求。示例性集合500可以包括用于强制与标量功能相关的硬实时截止期限的第一API调用502、用于强制与标量功能相关的软实时截止期限的第二API调用504、用于强制与标量功能相关的软机会性电池节能装置截止期限的第三API调用506、用于强制与标量功能相关的第一数字截止期限(例如,15秒)的第四API调用508、以及用于强制与标量功能相关的第二数字截止期限(例如,600秒)的第五API调用510。
在以上参照图4-5描述的例子中,计算设备被配置为利用与截止期限(或者执行速度)相关的折衷用于由在计算设备上执行的应用利用的复杂算法。然而,在这些方面技术的其它可能实现方式中,折衷功能可以提出由应用执行的复杂算法的准确度和/或精度配置。例如,类似于截止期限,可以通过API或者通过设置硬件寄存器来将准确度期望提供为指令。例如,编译指示可以被用于指示关于应用而言库函数(例如,用于乘以矩阵的复杂算法、向量乘法等)被优选为以高准确度、粗准确度和/或特别高准确度来执行(例如,双倍准确度、两双倍准确度等)。
图6A示出了用于计算设备如在折衷功能中定义地并且基于评估的当前状况来调整在计算设备上执行的应用和/或由该应用使用的复杂算法的配置的一方面方法600。在各个方面中,方面600可以由计算设备执行,以基于相关联的折衷功能来对一种或多种复杂算法(以下被简单地称为库函数)进行调整。这样的调整(即,“折衷”)可以在调用一种或多种复杂算法的应用的执行期间持续地进行。例如,可以在对向量数学库函数的每次调用的执行之前进行折衷。
在框602中,计算设备的处理器可以开始执行(例如,编译时间、运行时间)利用特定库函数的应用。例如,并且如上所述,应用可以是社交媒体应用、视频游戏应用或者可以对需要大量的计算资源的库(例如,线性代数库函数、矩阵数学算法等)进行内部调用的其它软件。在框604中,计算设备的处理器可以获得用于应用和/或特定库函数(例如,API调用、代码中指令、专用寄存器值等)的折衷设置。换言之,计算设备可以获得用于应用和/或库函数的折衷功能(或者多种折衷功能或者多种折衷设置),其指示用于调整计算设备的应用和/或库函数的配置的各个变量、值和数据(例如,相对于功率电平的执行速度、相对于热能的执行速度、相对于功率电平的准确度、相对于热能的准确度等)。例如,计算设备可以在应用的运行时间期间经由应用编程接口(API)获得用于应用的第一折衷设置,经由代码中指令获得用于应用的第二折衷设置,和/或经由专用寄存器获得用于应用的第三折衷设置。在各个方面中,库函数可以与机器学习算法、复杂数学算法、音频分析算法、图形处理算法和图像分析算法相关联。
在框606中,计算设备的处理器可以评估在给定时间时的与计算设备相关联的各种状况。以下描述关于框606中的操作的额外细节。在一些方面中,给定时间可以是被指定用于建立应用和/或库函数的初始配置的初始时间,例如,执行应用或者库函数的第一时间。
在确定框614中,计算设备的处理器可以基于各种评估来确定是否需要进行对应用和/或库函数(或者“折衷”)的调整。例如,计算设备可以基于所评估的在初始时间时的与计算设备相关联的状况,来确定多个获得的折衷设置中的折衷设置是否将被用于调整应用和/或库函数的初始配置。响应于基于各种评估而确定不需要进行折衷(即,确定框614=“否”),在可选框622中,计算设备的处理器可以将应用和/或特定库函数返回到默认设置。可选框622中的操作可以是可选的,因为应用和/或库函数可能已经被配置为以其默认设置来进行操作。响应于基于各种评估而确定需要进行折衷(即,确定框614=“是”),在框618中,计算设备的处理器可以基于所获得的折衷设置,来调整应用和/或库函数的配置。以下描述关于框618中的操作的额外细节。
响应于执行框618或者622的操作中的任何操作,在框624中,计算设备的处理器可以执行包括对特定库函数的任何调用的应用。计算设备可以继续框606中的评估操作。
图6B示出了用于计算设备基于评估的当前状况来利用折衷功能的一方面方法650。方法650类似于以上参照图6A描述的方法600,除了方法650包括用于计算设备可以评估各种状况并且基于各种评估来调整用于应用和/或相关联的复杂算法(或者库函数)的配置的方式的详细操作之外。
框602-604的操作可以与以上参照图6A描述的类似编号的框的操作相类似。在可选框652中,计算设备的处理器可以例如通过确定可以在某个时间段、排队的作业等内进行的对特定库函数和/或其它函数的调用的数量,来评估整个应用的工作负载。在一些方面中,这样的评估可以发生在初始时间,例如,当应用和/或库函数首次被计算设备使用时。
在可选框654中,计算设备的处理器可以评估影响工作负载的处理的外部状况,例如,计算设备是否被插入到电源中和/或被连接到无线路由器(例如,路由器)。在可选框656中,计算设备的处理器可以例如通过轮询被耦合到处理器的可再充电电池的当前电池电平,来评估该设备的可用功率电平。
在可选框658中,计算设备的处理器可以例如通过轮询被耦合到处理器的热敏电阻或者其它温度传感器以识别当前设备温度和/或特定设备单元温度(例如,核温度等),来评估该设备的热能水平。在确定框614中,如以上针对参照图6A的类似编号的框描述的,计算设备的处理器可以基于各种评估来确定是否需要进行折衷。
响应于基于各种评估而确定需要进行折衷(即,确定框614=“是”),计算设备的处理器可以执行可选框660-664中的操作中的任何或者所有操作。特别是,在可选框660中,计算设备的处理器可以将应用和/或特定库函数的执行分派(例如,重新指派或者传送)给辅助处理器。另外地或者替代地,在可选框662中,计算设备的处理器可以基于所获得的折衷设置,调整应用和/或特定库函数的准确度配置和/或精度配置。在可选框664中,计算设备的处理器可以基于所获得的折衷设置,调整应用和/或特定库函数的执行速度(或者运行时间)。响应于执行可选框660-664或者可选框622的操作中的任何操作,计算设备的处理器可以在框624中执行包括对特定库函数的任何调用的应用,并且继续可选框652中的评估操作。
如上所述,计算设备可以被配置为高效地调整应用和/或由该应用利用的复杂算法的特性或者配置、以及可以被指派来执行应用和/或算法的部分(也被称为计算负载或者计算内核)的目标处理核。这样的高效的调整以及对由应用调用的计算负载的分发可能需要各条信息。例如,计算设备可以利用硬件的稳态特性和能力数据(例如,关于异构核和/或存储器的类型、数量、用途等的数据)、用于各个应用的复杂算法的可接受操作参数(例如,截止期限/执行速度、精度水平、准确度水平等)、硬件资源的当前(或者暂态)状态(即,异构核的用途或者可用性等)、和/或关于应用在执行或者请求复杂算法(例如,由应用调用的计算内核)的执行时的资源使用的历史数据(例如,缓存缺失、存储器访问模式、带宽利用率、例外以及分支频率等)。在一些方面中,与应用和/或由该应用使用的特定复杂算法的执行相关联的资源使用数据可以被提供给资源历史子系统。利用这样的信息,应用和/或复杂算法可以例如通过计算设备内的调度器和负载分发器功能被调整和/或指派给不同的异构核。
图7A示出了基本模块架构700,其可以由计算设备用于实现各个方面技术,例如,用于调整、指导以及调度应用和/或由该应用使用的复杂算法的执行的功能。这样的模块架构700可以包括用于为计算设备提供数据(例如,基线)以决定如何、何时和/或在何处执行应用和/或由该应用使用的复杂算法(还被称为“计算内核”)的各个模块。换言之,模块架构700的模块可以被用于识别计算设备可以如何调整用于执行应用和/或由该应用使用的复杂算法的精度、准确度、执行速度和/或目标核。
模块架构700可以包括:系统静态信息模块702,其被配置为提供关于硬件的信息(例如,存储器带宽、不同核的频率等);应用信息模块704,其被配置为提供用于指示针对特定应用的要求的数据(例如,多快需要结果、要求结果多准确等);以及系统暂态信息模块710,其被配置为提供用于指示多少处理器(或者核)资源当前正在由计算设备支持的其它进程使用、多少存储器带宽正在被使用等的数据。模块架构700还可以包括调度器和负载分发器模块712,其可以利用来自模块702-710的各种信息来选择要向其指派由在系统中执行的应用调用的复杂算法(或者计算内核)的处理核。在执行期间,应用可以将关于要被执行的复杂算法的信息提交给调度和负载分发器模块712,其进而可以查询模块702-710以识别应当向其发送工作负载的处理核和/或应当如何执行工作负载(例如,经调整的准确度/精度等)。
模块架构700还可以包括应用计算内核模块714,其可以是以应用的库和其它功能为基础的代码。换言之,应用计算内核模块714可以是要被提交给各个核以用于执行的复杂算法的指令。此外,计算设备可以包括各个异构核716,其可以是可以经由调度器和负载分发器模块712向其指派各种工作负载的一个或多个处理单元,例如,应用处理器、图形处理单元(GPU)、数字信号处理器(DSP)、和/或其它处理单元。
在一些方面中,应用信息模块704可以包括适于实现关于应用的复杂算法的机器学习功能的精度要求学习器模块706和/或实时要求学习器模块708。精度要求学习器模块706可以被配置为存储、获得以及以其它方式利用在计算设备处接收的数据,以学习用户针对由在计算设备上执行的应用利用的各种复杂算法的优选的、要求的或者期望的精度或者准确度设置。类似地,实时要求学习器模块708可以利用数据来学习针对复杂算法要求的截止期限或者要求的(或者期望的)执行速度。可以在模块706-708处使用从用户接收的信息(例如,接收的用户输入的定时、用户输入是否完全是响应于提示而接收的、以及指示用户正在如何对各个核上的应用(并且因此它们相关联的各种复杂算法)的执行进行响应的其它数据)。此外,可以基于持续观察到的、相对于应用和/或复杂算法的执行的用户输入,随时间对这样的数据进行覆盖、更新和/或调整。例如,随着时间的进行,由精度要求学习器模块706利用的数据可以与不耐烦的用户输入(例如,在执行复杂算法时,在触摸屏上的多次轻击)一致,所述不耐烦的用户输入可以指示用户要求或者期望针对脸部标记算法的较快执行速度。
在一些方面中,由模块706-708利用的学习功能还可以利用如上所述的折衷功能或者逻辑单元。例如,API调用、专用寄存器和/或内嵌指令可以被用于控制由模块706-708在确定用户正在如何对各个应用和/或复杂算法的当前执行进行响应时使用的参数。
图7B示出了用于计算设备基于用户响应来调整应用和/或由该应用使用的复杂算法的配置的一般方面方法750。方法750可以由计算设备执行,以基于随着时间接收的用户输入来对应用和/或一种或多种复杂算法(以下被简单地称为库函数)进行调整,其中所述用户输入暗示应用和/或库函数的配置的充分性。换言之,可以基于用户正在多大程度上容忍应用的、遵循其当前配置(例如,执行速度、精度、准确度等)或者其库函数的那些配置的性能。如上所述,可以在应用的执行期间持续地进行这样的调整。在一些方面中,应用和/或库函数的初始配置可以基于如以上参照图3-6B描述的折衷功能;然而,基于接收的用户输入(例如,在“刷新”按钮上的重复的触摸输入等),计算设备可以被配置为重写或者以其它方式改变由用于应用和/或用于各个库函数的这样的初始折衷功能定义的配置。
计算设备的处理器可以执行如以上针对参照图6A的类似编号的框描述的框602和624的操作。在框752中,计算设备的处理器可以获得用于指示对应用的性能的用户响应的信号(例如,触摸输入等)。这样获得的信号可以包括以下各项中的一项或者多项:在计算设备的触摸屏上的触摸输入、按钮按压、来自传感器的数据、与另一应用的发起相关联的状态改变、应用的状态的改变(例如,由于用户已经导航离开,所以被暂停或者放置在后台中等)、以及响应于在将要期望输入时的提示或者情况而对用户输入的缺乏。例如,计算设备可以获得计算设备的触摸屏上的最近的触摸输入、文本字段或者表格中的文本输入或者删除、摇杆按钮按压、对“刷新”屏幕/应用的请求、相机输入、麦克风输入、与应用和/或其它应用的交互等,它们均可以被评估以识别用户是否正在容忍或者以其它方式接受应用的当前性能(例如,响应时间是否足够快、应用的结果是否足够准确等)。通常,应用的性能可以包括与应用相关联的以下各项中的至少一项:实现结果的执行速度、结果的准确度、以及结果的精度。
在确定框754中,计算设备的处理器可以基于所获得的信号,来确定用户是否正在容忍应用的性能。例如,可以对自从应用开始操作以来已经检测到的屏幕上的轻击的数量进行评估,以指示用户是否正在表现出不耐烦、生气、冷漠等的迹象。可以将在一时间段内接收的输入的频率或者检测到的输入的数量与用于指示用户的容忍度的预先定义的门限进行比较。可以基于对用户的与计算设备的交互的持续的评估来随着时间更新这样的门限。在一些方面中,计算设备可以使用专用的逻辑单元、软件、模块和/或在计算设备上执行的其它功能(例如,用于分析用户行为的子系统),来评估所获得的信号,并且进行关于用户的对性能的容忍度的确定。
响应于基于所获得的信号而确定用户正在不容忍应用的性能(即,确定框754=“否”),在框756中,计算设备的处理器可以调整应用和/或由该应用使用的特定库函数的配置,以改善应用的随后性能。例如,并且如以下更详细地描述的,计算设备可以通过改变用于如由应用调用的库函数的执行速度设置,来调整用于使用库函数的应用的配置。作为另一例子,计算设备可以对与由应用使用的向量数学算法相关联的精度设置进行调整以便产生更为精确/准确的结果,对用于计算函数的执行速度设置进行调整以便改善针对应用的响应时间(例如,降低延迟),和/或将处理密集型库调用配置为在不同的核上执行(例如,传送给DSP、GPU等)。在一些方面中,可以查询如上所述的折衷功能,以向计算设备提供关于可以对应用和/或库函数如何进行调整或者进行多少调整的见解。
响应于基于所获得的信号而确定用户正在容忍应用的性能(即,确定框754=“是”),在可选框758中,计算设备的处理器可以例如通过将库函数设置为使用较低的精度(例如,用于计算的较不精确的浮点设置等)、较低的执行速度(例如,产生结果的较大延迟),和/或改变在其上执行库函数的处理核,来对应用和/或特定库函数的配置进行调整,以减小(或者降低)应用的性能。以此方式,计算设备可以尝试递增地降低计算设备上的由应用和/或库函数的配置导致的负载,直到用户指示该配置已经被降低到用户的容忍度门限以下为止。
响应于执行框756或者可选框758中的操作,在框760中,计算设备的处理器可以存储用于指示对应用按先前的配置的性能的用户响应的数据(或者获得的信号)以及其它外部变量(例如,一天中的时间、同时在计算设备上执行的其它应用、传感器输入等),用于在对随后获得的用户输入(或者信号)的随后评估中使用。在一些方面中,可以存储并且使用的其它示例数据(例如,触发)可以是用于指示以下各项的数据:对应用的用户行为、当应用是社交网络应用时的用户数据馈送(user data feed)、当应用与健康(或者卫生保健)相关时的用户的健康模式、用户的年龄、性别和/或其它人口统计信息。以此方式,可以启用机器学习技术,其在先前经验之上持续地构建,以细化可以被设置用于应用和/或与计算设备的应用相关联的各种复杂算法的配置。计算设备可以重复方法750的以在框624中执行包括对特定库函数的任何调用的应用开始的操作。
图8A示出了用于计算设备基于用户输入来调整应用和/或由该应用使用的复杂算法的精度配置的一方面方法800。方法800可以与上面描述的方法750类似,除了方法800可以集中于调整应用和/或由该应用使用的复杂算法(即,库函数)的精度或者准确度配置之外。例如,响应于接收到用于指示用户不在容忍库函数结果的准确度和/或精度的水平(例如,脸部标记准确度)的用户输入,计算设备可以改变库函数的精度或者准确度配置,以便导致在应用的随后操作中的更加可接受的脸部标记结果。
计算设备的处理器可以执行如以上针对参照图6A的类似编号的框描述的框602的操作。在框802中,计算设备的处理器可以例如通过查询存储的与库函数和/或应用相关联的数据,来识别用于应用和/或特定库函数的当前精度设置。如以上针对参照图6A的类似编号的框描述的,在框624中,计算设备的处理器可以执行包括对特定库函数的任何调用的应用。计算设备的处理器可以执行如以上针对参照图7B的类似编号的框描述的框752中的操作。
在确定框806中,计算设备的处理器可以基于所获得的指示用户响应的信号,来确定用户是否忽略了应用的输出。例如,计算设备可以确定是否在与库函数相关的结果的完成以及呈现之后的某个时间段内接收到了任何用户响应(例如,按钮点击等)。忽略这样的结果可以指示由于不相关性或者不准确性,用户没有注意结果。响应于基于所获得的指示用户响应的信号而确定用户还没有忽略应用的输出(即,确定框806=“否”),在确定框808中,计算设备的处理器可以基于所获得的指示用户响应的信号,来确定用户是否已经校正应用的输出(例如,如经由库函数提供的输出)。例如,计算设备可以对在呈现结果之后接收的输入进行评估,以识别用户是否已经击中“退格”、“删除”、提供重写信息和/或可以被视为对结果的校正或者删除的其它输入。响应于基于所获得的指示用户响应的信号而确定用户还没有校正应用的输出(即,确定框808=“否”),在可选框812中,计算设备的处理器可以例如通过改变存储的与库函数相关联的设置或者变量来减小用于应用和/或特定库函数的当前精度设置,以指示可以在该函数的随后性能中进行较便宜的但是较不准确或者精确的计算,以便实现相同的时间和/或能量。
响应于基于所获得的指示用户响应的信号而确定用户已经校正应用的输出(即,确定框808=“是”),或者响应于确定用户已经忽略该输出(即,确定框806=“是”),在框810中,计算设备的处理器可以例如通过改变存储的配置变量值来增加用于应用和/或特定库函数的当前精度设置,以指示未来的计算应当利用较高的精度并且因此需要更多的时间和/或处理资源。在可选框811中,计算设备的处理器可以例如通过改变与应用和/或库函数相关联的执行核,来改变被用于执行应用(例如,应用的一部分等)和/或特定库函数的处理核。例如,计算设备可以改变执行核设置(例如,存储的变量、标志等),以指示库函数的未来执行应当在计算设备内的不同的和/或特定的核(例如,DSP、GPU等)上处理。
响应于执行可选框811或者可选框812的操作,在框814中,计算设备的处理器可以存储用于指示对应用按先前的精度设置的性能的用户响应的数据和其它外部变量。框814中的操作可以与如以上针对参照图7B的类似编号的框描述的框760的操作类似,除了框814中的操作与精度设置明确地相关之外。计算设备可以重复方法800的以在框624中执行包括对特定库函数的任何调用的应用开始的操作。
图8B示出了用于计算设备基于用户输入来调整应用和/或由该应用使用的复杂算法的精度配置的一方面方法850。方法850与以上参照图8A描述的方法800类似,除了方法850包括指示以下内容的操作之外:可以基于用户输入来调整与执行应用相关联的多个库函数中的任何库函数。换言之,计算设备可以持续地进行对要调整的各个库函数的智能选择,以便改善用户的对应用的执行的容忍度。在一些方面中,这样的选择可以基于预先定义的列表或者以云为来源的关于用于改善在应用的执行期间的用户的体验的最佳选择的信息。例如,如果存在对执行同一应用的许多设备上的总体的用户体验的基于云的访问,那么计算设备可以从云的对各种用户体验的详尽处理中受益,以识别潜在最有效的调整。在一些方面中,可以基于(例如,经由如本文描述的折衷功能指示的)用户提示来进行选择。
在框602’中,计算设备的处理器可以开始使用(例如,编译时间、运行时间)利用多个库函数的应用。在框802’中,计算设备的处理器可以识别用于应用和/或多个库函数中的每个库函数的当前精度设置。在框624’中,计算设备的处理器可以执行包括对多个库函数的任何调用的应用。框602’、802’和624’的操作可以与上面描述的框602、802和624的操作类似,除了框602’、802’和624’是关于与应用相关联地使用的多个库函数之外。如以上针对参照图7B的类似编号的框描述的,在框752中,计算设备的处理器可以获得用于指示对应用的性能的用户响应的信号(例如,触摸输入等)。在框852中,计算设备的处理器可以选择多个库函数中的一个库函数。例如,计算设备可以利用用于选定要选择的下一库函数的队列、列表或者其它场景。
计算设备的处理器可以执行如以上针对参照图8A的类似编号的框描述的确定框806-808的操作。响应于基于用户输入而确定用户已经忽略应用的输出(即,确定框806=“是”),或者响应于基于用户输入而确定用户已经校正应用的输出(即,确定框808=“是”),在可选框854中,计算设备的处理器可以重新设置用于先前选择的库函数的精度设置。在框810’中,计算设备的处理器可以增加用于所选择的库函数的当前精度设置。框810’的操作与上面描述的框810的那些操作类似,除了计算设备可以增加用于多个库函数中的选择的一个库函数的精度设置。在可选框811’中,计算设备的处理器可以改变用于执行所选择的库函数的处理核。可选框811’的操作与上面描述的可选框811的那些操作类似,除了计算设备可以改变用于多个库函数中的选择的一个库函数的处理核。
响应于确定用户还没有校正应用的输出(即,确定框808=“否”),在可选框812’中,计算设备的处理器可以减小用于所选择的库函数的当前精度设置。可选框812’的操作可以是可选的,因为精度设置可能已经处于默认或者最低设置。响应于执行可选框811’或者可选框812’的操作,计算设备可以执行如以上针对参照图8A的类似编号的框描述的框814的操作,并且通过在框624’中执行包括对特定库函数的调用的应用,来重复方法850的操作。
图9A示出了用于计算设备基于用户输入来调整应用和/或由该应用使用的复杂算法的执行速度配置的一方面方法900。在各个方面中,方法900可以由计算设备执行,以基于随着时间接收的用户输入来对应用和/或一种或多种复杂算法(以下被简单地称为库函数)进行调整,其中用户输入暗示应用和/或库函数的配置的充分性。方法900可以与上面描述的方法800类似,除了方法900提出对执行速度配置的调整(与精度配置相反)之外。
计算设备的处理器可以执行如以上针对参照图6A的类似编号的框描述的框602的操作。在框902中,计算设备的处理器可以识别用于应用和/或特定库函数的当前执行速度设置。计算设备的处理器可以执行如以上针对参照图6A的类似编号的框描述的框624的操作,并且执行如以上针对参照图7B的类似编号的框描述的框752的操作。在确定框904中,计算设备的处理器可以基于所获得的用于指示用户响应的信号,来确定用户是否已经导航离开该应用。例如,可以对用户输入进行评估以识别用户是否已经在图形元素上点击,以使得其它应用发起如下的元素:所述元素使得操作系统的关注点改变到不同的应用等。
响应于确定用户已经导航离开该应用(即,确定框904=“是”),在可选的确定框906中,计算设备的处理器可以基于所获得的用于指示用户响应的信号,来确定用户是否已经导航返回到该应用。例如,计算设备可以对触摸输入进行评估,以识别用户是否在先前已经将关注点切换到另一应用之后已经点击返回到该应用上。在一些方面中,响应于确定用户已经导航返回到该应用(即,可选的确定框906=“是”),在可选的确定框907中,计算设备的处理器可以确定用户所花费的导航返回到该应用的时间是否超过预先定义的时间门限。例如,计算设备可以识别用户离开该应用(例如,使用另一应用等)的时间量,并且将该离开时间与被建立为用于用户的对系统性能的烦恼或者接受的基线的时间量(例如,秒、毫秒等)进行比较。响应于确定用户在导航返回到应用之前超过预先定义的门限,计算设备可以确定需要改善应用的性能以满足用户。
响应于确定用户还没有导航离开应用(即,确定框904=“否”),或者响应于确定用户已经导航返回到该应用(即,可选的确定框906=“是”),或者响应于确定用于用户导航返回到该应用的时间还没有超过预先定义的门限(即,可选的确定框907=“否”),在确定框908中,计算设备的处理器可以基于所获得的信号或者用户响应,来确定用户是否已经按压刷新(例如,刷新功能)或者重复地按压其它按钮。计算设备处理器可以利用用于对超过正常点击/输入的输入的数量进行评估的预先定义的门限,来识别与典型的使用不一致的交互。
响应于确定用户已经按压刷新或者重复地按压其它按钮(即,确定框908=“是”),或者响应于确定用户还没有导航返回到应用(即,可选的确定框906=“否”),或者响应于确定用于用户导航返回到应用的时间已经超过预先定义的门限(即,可选的确定框907=“是”),在框910中,计算设备的处理器可以例如通过设置与库函数相关联的变量值来增加用于应用和/或特定库函数的当前执行速度设置。换言之,因为用户很可能不满意当前配置,所以可以通过增加执行速度来减少执行(或者完整执行)应用的时间。在可选框811中,计算设备的处理器可以改变用于执行应用和/或特定库函数的核。
响应于确定用户还没有按压刷新或者重复地按压其它按钮(即,确定框908=“否”),在可选框912中,计算设备的处理器可以减小用于应用和/或特定库函数的当前执行速度设置。换言之,因为用户很可能满意当前配置,所以可以通过减小执行速度来增加执行(或者完整执行)应用的时间。当应用和特定库函数的执行速度已经处于最小执行速度时,可选框912的操作可以是可选的。
响应于执行可选框911或者可选框912的操作,在框914中,计算设备的处理器可以存储用于指示对应用按先前的执行速度设置的性能的用户响应的数据和其它外部变量。计算设备的处理器可以执行框914的操作,框914的操作与以上参照图7B描述的方法750的框760的那些操作类似,除了框914中的操作与执行速度设置相关之外。计算设备可以重复方法900的以在框624中执行包括对特定库函数的任何调用的应用开始的操作。
图9B示出了用于计算设备基于用户输入来调整应用和/或由该应用使用的复杂算法的执行速度配置的一方面方法950。方法950与以上参照图9A描述的方法900类似,除了方法950包括指示以下内容的操作之外:可以基于用户输入来调整与执行应用相关联的多个库函数中的任何库函数。此外,方法950可以与上面描述的方法850类似,除了方法950提出对执行速度配置的调整(与精度配置相反)之外。
计算设备处理器可以执行如以上针对参照图8B的类似编号的框描述的框602’的操作。在框902’中,计算设备的处理器可以识别用于应用和/或多个库函数中的每个库函数的当前执行设置。框902’的操作可以与上面描述的框902的操作类似,除了框902’是关于与应用相关联地使用的多个库函数之外。计算设备可以执行如以上针对参照图8B的类似编号的框描述的框624’6A的操作,执行如以上参照图7B描述的框752的操作,执行如以上参照图8B描述的框852的操作,并且执行如以上参照图9A描述的确定框904-908的操作。
响应于确定用户还没有导航返回到该应用(即,可选的确定框906=“否”),或者响应于确定用于用户导航返回到该应用的时间已经超过预先定义的门限(即,可选的确定框907=“是”),或者响应于确定用户已经按压刷新或者重复地按压其它按钮(即,确定框908=“是”),计算设备的处理器可以在可选框952中重新设置用于先前选择的库函数的当前执行速度设置,并且在框910’中减小用于所选择的库函数的当前执行速度设置。换言之,可以执行可选框952的可选操作,以便撤销对先前选择的库函数的先前不成功的重配置。在一些方面中,计算设备可以简单地离开先前的重配置,并且移动到下一库函数,以尝试找到用于改善用户的体验的调整。在可选框811’中,如以上参照图8B描述的,计算设备的处理器可以改变用于执行所选择的库函数的核。
响应于确定用户还没有按压刷新或者重复地按压其它按钮(即,确定框908=“否”),在可选框912’中,计算设备的处理器可以增加用于所选择的库函数的当前执行速度设置。响应于执行可选框811’或者可选框912’的操作,在框914中,计算设备的处理器可以存储用于指示对应用按先前的执行速度设置的性能的用户响应的数据和其它外部变量。计算设备可以重复方法950的以在框624’中执行包括对特定库函数的任何调用的应用开始的操作。
包括个人计算机和膝上型计算机的各种形式的计算设备可以被用于实现各个方面,包括以上参照图2-9B描述的方面。可以被用于实现各个方面的示例膝上型计算设备1000包括以上参照图2-9B描述的方面。许多膝上型计算设备1000包括触摸板触摸表面1014,其充当计算机的定位设备,并且因此可以接收与在配备有触摸屏显示器的移动计算设备上实现的那些相类似的拖拽、滚动和轻弹手势。这样的膝上型计算设备1000通常包括被耦合到易失性内部存储器1002和大容量非易失性存储器(例如,硬盘驱动器1006)的处理器1001。膝上型计算设备1000还可以包括被耦合到处理器1001的压缩光盘(CD)和/或DVD驱动器1008。膝上型计算设备1000还可以包括被耦合到处理器1001的多个连接器端口1010,其用于建立数据连接或者接收外部存储器设备(例如,用于将处理器1001耦合到网络的网络连接电路)。膝上型计算设备1000可以具有用于发送和接收如本文描述的无线信号的一个或多个短距离无线信号收发机1018(例如, (蓝牙)、(紫蜂)、RF无线单元)以及天线1020。收发机1018和天线1020可以与上面提及的电路一起使用来实现各种无线传输协议栈/接口。在膝上型计算机或者笔记本配置中,计算机壳体可以包括均被耦合到处理器1001的触摸板触摸表面1014、键盘1012和显示器1016。膝上型计算设备1000的其它配置可以包括如公知的(例如,经由USB输入)被耦合到处理器的计算机鼠标或轨迹球,其还可以结合各个方面来使用。
在图11中示出了可以被用于实现各个方面(其包括以上参照图2-9B描述的方面)的多核移动设备1100的例子。在各个方面中,多核移动设备1100可以包括被耦合到触摸屏控制器1104和内部存储器1102的处理器1101。处理器1101可以是被指定用于一般或特定处理任务的一个或多个多核集成电路(IC)。内部存储器1102可以是易失性或非易失性存储器,并且还可以是安全的和/或加密的存储器、或者非安全的和/或非加密的存储器、或者其任意组合。触摸屏控制器1104和处理器1101还可以被耦合到触摸屏面板1112,例如,电阻感测式触摸屏、电容感测式触摸屏、红外感测式触摸屏等。多核移动设备1100可以具有用于发送和接收的一个或多个无线信号收发机1108(例如,(蓝牙)、(紫蜂)、RF无线单元)和天线1110,其相互耦合和/或耦合到处理器1101。收发机1108和天线1110可以与上面提及的电路一起使用,以实现各种无线传输协议栈和接口。多核移动设备1100可以包括蜂窝网络无线调制解调器芯片1116,其经由蜂窝网络实现通信并且被耦合到处理器。多核移动设备1100可以包括外围设备连接接口1118,其被耦合到处理器1101。外围设备连接接口1118可以被特别地配置为接受一种类型的连接或者被多样地配置为接受各种类型的物理和通信连接(公共的或专有的),例如,USB、FireWire(火线)、Thunderbolt(雷电)或者PCIe。外围设备连接接口1118还可以被耦合到类似配置的外围设备连接端口(未示出)。多核移动设备1100还可以包括用于提供音频输出的扬声器1114。多核移动设备1100还可以包括用于容纳本文讨论的组件中的所有或者一些组件的壳体1120,其由塑料、金属或者材料的组合构成。多核移动设备1100可以包括被耦合到处理器1101的电源1122,例如,一次性或者可再充电电池。可再充电电池还可以被耦合到外围设备连接端口,以从在多核移动设备1100的外部的源接收充电电流。
本文描述的各个处理器可以是任何可编程微处理器、微计算机或者多个处理器芯片或者多个芯片,其可以由软件指令(应用)配置为执行各种各样的功能,其包括本文描述的各个方面的功能。在各个设备中,可以提供多个处理器,例如,专用于无线通信功能的一个处理器和专用于运行其它应用的一个处理器。通常,在访问软件应用并且将其加载到处理器中之前,可以将软件应用存储在内部存储器中。处理器可以包括足以存储应用软件指令的内部存储器。在许多设备中,内部存储器可以是易失性或非易失性存储器(例如,闪速存储器)或者这两者的混合。出于该描述的目的,对存储器的一般提及是指可由处理器访问的存储器,其包括内部存储器、被插入到各个设备的可移动存储器以及在处理器内的存储器。
前述方法描述和过程流程图仅是作为说明性例子来提供的,并非旨在要求或者暗示各个方面的步骤必须以所呈现的次序来执行。如本领域技术人员将意识到的,可以以任何次序来执行前述方面中的步骤的次序。诸如“之后”、“然后”、“接下来”等的词语并非旨在限制步骤的次序;这些词语仅被用于引导读者通读所述方法的描述。此外,对单数形式的权利要求要素的任何提及(例如,使用冠词“一(a)”、“一个(an)”或者“所述(the)”)并不被解释为将该要素限制为单数。
结合本文公开的方面描述的各个说明性的逻辑框、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或这二者的组合。为了清楚地说明硬件和软件的这种可交换性,上文对各个说明性的组件、框、模块、电路和步骤已经围绕其功能进行了总体描述。至于这样的功能是被实现为硬件还是软件,取决于特定的应用和对整个系统施加的设计约束。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是这样的实现决策不应当被解释为造成对本发明的范围的背离。
利用被设计为执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者其任意组合,可以实现或执行被用于实现结合本文公开的方面描述的各个说明性的逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但是在替代方案中,该处理器可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP核的一个或多个微处理器、或任何其它这样的配置。替代地,一些步骤或方法可以由特定于给定功能的电路来执行。
在一个或多个示例性方面中,所描述的功能可以用硬件、软件、固件、或其任意组合来实现。如果用软件来实现,则功能可以被存储在非暂时性处理器可读、计算机可读、或者服务器可读介质或者非暂时性处理器可读存储介质上或者作为其上的一个或多个指令或代码来传输。本文公开的方法或算法的步骤可以被体现在处理器可执行软件模块或者处理器可执行软件指令中,其可以存在于非暂时性计算机可读存储介质、非暂时性服务器可读存储介质和/或非暂时性处理器可读存储介质上。在各个方面中,这样的指令可以是存储的处理器可执行指令或者存储的处理器可执行软件指令。有形的、非暂时性计算机可读存储介质可以是可以由计算机访问的任何可用介质。通过举例而非限制的方式,这样的非暂时性计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以被用于存储具有指令或数据结构形式的期望的程序代码并且可以被计算机访问的任何其它介质。如本文中使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述各项的组合也应当被包括在非暂时性计算机可读介质的范围之内。另外,方法或算法的操作可以作为代码和/或指令中的一种或任意组合或集合存在于有形的、非暂时性处理器可读存储介质和/或计算机可读介质上,其可以被并入到计算机程序产品中。
为了使得本领域任何技术人员能够实现或使用本发明,提供了对所公开的方面的先前描述。对于本领域技术人员而言,对这些方面的各种修改将是显而易见的,并且在不背离本发明的精神或范围的情况下,本文中定义的总体原理可以被应用于其它方面。因此,本发明并非旨在限于本文中示出的方面,而是要被赋予与所附的权利要求和本文公开的原理和新颖特征相一致的最宽的范围。
Claims (30)
1.一种用于动态地配置与在计算设备上执行的应用相关联的复杂算法的方法,包括:
经由所述计算设备的处理器,执行调用与复杂算法相关联的库函数的应用;
经由所述处理器,获得用于指示对所述应用的性能的用户响应的信号;
经由所述处理器,基于所获得的用于指示所述用户响应的信号来确定用户是否容忍所述应用的所述性能;
响应于确定所述用户不容忍所述应用的所述性能,经由所述处理器,对所述应用的配置进行调整以改善所述应用的随后性能;以及
经由所述处理器,对用于指示对所述应用的所述性能的所述用户响应的数据以及其它外部变量进行存储,以在对用户输入的随后评估中使用。
2.根据权利要求1所述的方法,其中,所述应用的所述性能包括以下各项中的至少一项:实现结果的执行速度、所述结果的准确度、以及所述结果的精度。
3.根据权利要求1所述的方法,还包括:
响应于确定所述用户容忍所述应用的所述性能,经由所述处理器,对所述库函数的所述配置进行调整以降低所述应用的所述随后性能。
4.根据权利要求1所述的方法,其中,所获得的用于指示所述用户响应的信号是以下各项中的一项或多项:触摸屏上的触摸输入、按钮按压、来自传感器的数据、另一应用的发起、所述应用的状态的改变、以及当用户响应将被期望时对用户输入的缺乏。
5.根据权利要求1所述的方法,其中,经由所述处理器,基于所获得的用于指示所述用户响应的信号来确定所述用户是否容忍所述应用的所述性能包括以下各项中的一项或多项:
经由所述处理器,基于所获得的信号来确定所述用户是否已经忽略所述应用的输出;以及
经由所述处理器,基于所获得的信号来确定所述用户是否已经校正所述应用的所述输出。
6.根据权利要求1所述的方法,其中,经由所述处理器,基于所获得的用于指示所述用户响应的信号来确定所述用户是否容忍所述应用的所述性能包括以下各项中的一项或多项:
经由所述处理器,基于所获得的信号来确定所述用户是否已经导航离开所述应用;以及
经由所述处理器,基于所获得的信号来确定所述用户是否已经按压刷新功能或者重复地按压其它按钮。
7.根据权利要求6所述的方法,还包括:
响应于基于所获得的信号而确定所述用户已经导航离开所述应用,经由所述处理器,确定所述用户是否已经导航返回到所述应用。
8.根据权利要求7所述的方法,还包括:
响应于确定所述用户已经导航返回到所述应用,经由所述处理器,确定所述用户是否已经在预先定义的时间门限内导航返回到所述应用。
9.根据权利要求1所述的方法,其中,响应于确定所述用户不容忍所述应用的所述性能,经由所述处理器,对所述应用的所述配置进行调整以改善所述应用的所述随后性能包括以下各项中的一项或多项:
经由所述处理器,增加精度设置;
经由所述处理器,增加执行速度设置;以及
经由所述处理器,改变执行核设置。
10.根据权利要求1所述的方法,其中,响应于确定所述用户不容忍所述应用的所述性能,经由所述处理器,对所述应用的所述配置进行调整以改善所述应用的所述随后性能包括:响应于确定所述用户不容忍所述应用的所述性能,经由所述处理器,对用于使用所述库函数的所述应用的所述配置进行调整。
11.根据权利要求1所述的方法,还包括:响应于确定所述用户容忍所述应用的所述性能,经由所述处理器,对所述应用的所述配置进行调整以降低所述应用的所述随后性能。
12.根据权利要求1所述的方法,其中,所述应用调用多个库函数,其中,所述库函数在所述多个库函数内,所述方法还包括:
经由所述处理器,选择所述多个库函数中的第一库函数;
响应于基于所获得的用于指示所述用户响应的信号而确定所述用户不容忍所述应用的所述性能,经由所述处理器,对所述第一库函数的配置进行调整以改善所述应用的所述随后性能;
经由所述处理器,随后执行所述应用;
经由所述处理器,获得用于指示对所述应用的所述随后性能的随后用户响应的随后信号;
响应于确定所述用户不容忍所述应用的所述随后性能,经由所述处理器,选择所述多个库函数中的第二库函数;以及
经由所述处理器,对所述第二库函数的配置进行调整。
13.根据权利要求1所述的方法,还包括:
经由所述计算设备的所述处理器,获得用于所述应用的多个折衷设置;
经由所述处理器,对在初始时间时的与所述计算设备相关联的状况进行评估;以及
经由所述处理器,基于所评估的在所述初始时间时的与所述计算设备相关联的状况来确定所获得的多个折衷设置中的折衷设置是否将被使用。
14.根据权利要求13所述的方法,还包括:
响应于基于所评估的在所述初始时间时的与所述计算设备相关联的状况而确定所述折衷设置将被使用,经由所述处理器,基于所述折衷设置来对所述应用的初始配置进行调整。
15.根据权利要求14所述的方法,其中
响应于确定所述用户不容忍所述应用的所述性能,经由所述处理器,对所述应用的所述配置进行调整以改善所述应用的所述随后性能包括:响应于确定所述用户不容忍使用所述初始配置的所述应用的所述性能,经由所述处理器,对所述应用的所述初始配置进行重写。
16.根据权利要求13所述的方法,其中,经由所述计算设备的所述处理器,获得用于所述应用的所述多个折衷设置包括以下各项中的至少一项:
经由所述处理器,在所述应用的运行时间期间经由应用编程接口(API)调用来获得用于所述应用的第一折衷设置;
经由所述处理器,经由代码中指令来获得用于所述应用的第二折衷设置;以及
经由所述处理器,经由专用寄存器来获得用于所述应用的第三折衷设置。
17.根据权利要求13所述的方法,其中,经由所述处理器,对在所述初始时间时的与所述计算设备相关联的状况进行评估包括以下各项中的至少一项:
由所述处理器对所述应用的工作负载进行评估;以及
由所述处理器对影响所述计算设备对所述应用的处理的外部状况进行评估。
18.一种计算设备,包括被配置有处理器可执行指令以执行包括以下各项的操作的处理器:
执行调用与复杂算法相关联的库函数的应用;
获得用于指示对所述应用的性能的用户响应的信号;
基于所获得的用于指示所述用户响应的信号来确定用户是否容忍所述应用的所述性能;
响应于确定所述用户不容忍所述应用的所述性能,对所述应用的配置进行调整以改善所述应用的随后性能;以及
对用于指示对所述应用的所述性能的所述用户响应的数据以及其它外部变量进行存储,以在对用户输入的随后评估中使用。
19.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下各项的操作:
响应于确定所述用户容忍所述应用的所述性能,对所述库函数的所述配置进行调整以降低所述应用的所述随后性能。
20.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行操作,使得基于所获得的用于指示所述用户响应的信号来确定所述用户是否容忍所述应用的所述性能包括以下各项中的一项或多项:
经由所述处理器,基于所获得的信号来确定所述用户是否已经忽略所述应用的输出;以及
经由所述处理器,基于所获得的信号来确定所述用户是否已经校正所述应用的所述输出。
21.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行操作,使得经由所述处理器,基于所获得的用于指示所述用户响应的信号来确定所述用户是否容忍所述应用的所述性能包括以下各项中的一项或多项:
基于所获得的信号来确定所述用户是否已经导航离开所述应用;以及
基于所获得的信号来确定所述用户是否已经按压刷新功能或者重复地按压其它按钮。
22.根据权利要求21所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下项的操作:
响应于基于所获得的信号而确定所述用户已经导航离开所述应用,确定所述用户是否已经导航返回到所述应用。
23.根据权利要求22所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下项的操作:
响应于确定所述用户已经导航返回到所述应用,确定所述用户是否已经在预先定义的时间门限内导航返回到所述应用。
24.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行操作,使得响应于确定所述用户不容忍所述应用的所述性能,对所述应用的所述配置进行调整以改善所述应用的所述随后性能包括以下各项中的一项或多项:
增加精度设置;
增加执行速度设置;以及
改变执行核设置。
25.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行操作,使得响应于确定所述用户不容忍所述应用的所述性能,对所述应用的所述配置进行调整以改善所述应用的所述随后性能包括:响应于确定所述用户不容忍所述应用的所述性能,对用于使用所述库函数的所述应用的所述配置进行调整。
26.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下项的操作:响应于确定所述用户确实容忍所述应用的所述性能,对所述应用的所述配置进行调整以降低所述应用的所述随后性能。
27.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行操作,使得所述应用调用多个库函数,其中,所述库函数在所述多个库函数内,其中,所述处理器被配置有处理器可执行指令以执行还包括以下各项的操作:
选择所述多个库函数中的第一库函数;
响应于基于所获得的用于指示所述用户响应的信号而确定所述用户不容忍所述应用的所述性能,对所述第一库函数的配置进行调整以改善所述应用的所述随后性能;
随后执行所述应用;
获得用于指示对所述应用的所述随后性能的随后用户响应的随后信号;
响应于确定所述用户不容忍所述应用的所述随后性能,选择所述多个库函数中的第二库函数;以及
对所述第二库函数的配置进行调整。
28.根据权利要求18所述的计算设备,其中,所述处理器被配置有处理器可执行指令以执行还包括以下各项的操作:
获得用于所述应用的多个折衷设置;
对在初始时间时的与所述计算设备相关联的状况进行评估;以及
基于所评估的在所述初始时间时的与所述计算设备相关联的状况来确定所获得的多个折衷设置中的折衷设置是否将被使用。
29.一种计算设备,包括:
用于执行调用与复杂算法相关联的库函数的应用的单元;
用于获得用于指示对所述应用的性能的用户响应的信号的单元;
用于基于获得的用于指示所述用户响应的信号来确定用户是否容忍所述应用的所述性能的单元;
用于响应于确定所述用户不容忍所述应用的所述性能,对所述应用的配置进行调整以改善所述应用的随后性能的单元;以及
用于对用于指示对所述应用的所述性能的所述用户响应的数据以及其它外部变量进行存储,以在对用户输入的随后评估中使用的单元。
30.一种非暂时性处理器可读存储介质,其具有被存储在其上的处理器可执行指令,所述处理器可执行指令被配置为使得计算设备的处理器执行包括以下各项的操作:
执行调用与复杂算法相关联的库函数的应用;
获得用于指示对所述应用的性能的用户响应的信号;
基于所获得的用于指示所述用户响应的信号来确定用户是否容忍所述应用的所述性能;
响应于确定所述用户不容忍所述应用的所述性能,对所述应用的配置进行调整以改善所述应用的随后性能;以及
对用于指示对所述应用的所述性能的所述用户响应的数据以及其它外部变量进行存储,以在对用户输入的随后评估中使用。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462091290P | 2014-12-12 | 2014-12-12 | |
US201462091132P | 2014-12-12 | 2014-12-12 | |
US62/091,132 | 2014-12-12 | ||
US62/091,290 | 2014-12-12 | ||
US14/680,225 US10049327B2 (en) | 2014-12-12 | 2015-04-07 | Application characterization for machine learning on heterogeneous core devices |
US14/680,225 | 2015-04-07 | ||
PCT/US2015/059928 WO2016094009A1 (en) | 2014-12-12 | 2015-11-10 | Application characterization for machine learning on heterogeneous core devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107003929A true CN107003929A (zh) | 2017-08-01 |
Family
ID=54754753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580067093.2A Pending CN107003929A (zh) | 2014-12-12 | 2015-11-10 | 用于异构核设备上的机器学习的应用特征化 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10049327B2 (zh) |
EP (1) | EP3230866A1 (zh) |
JP (1) | JP2018504676A (zh) |
CN (1) | CN107003929A (zh) |
WO (1) | WO2016094009A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681426A (zh) * | 2018-05-25 | 2018-10-19 | 第四范式(北京)技术有限公司 | 用于针对数据执行特征处理的方法及系统 |
WO2019062404A1 (zh) * | 2017-09-30 | 2019-04-04 | Oppo广东移动通信有限公司 | 应用程序的处理方法、装置、存储介质及电子设备 |
CN109656793A (zh) * | 2018-11-22 | 2019-04-19 | 安徽继远软件有限公司 | 一种基于多源异构数据融合的信息系统性能立体监测方法 |
CN109945892A (zh) * | 2019-03-15 | 2019-06-28 | 北京航空航天大学 | 一种惯性导航系统复杂算法类需求的在线测试方法 |
CN110489356A (zh) * | 2019-08-06 | 2019-11-22 | 上海商汤智能科技有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN110709822A (zh) * | 2017-10-13 | 2020-01-17 | 华为技术有限公司 | 一种终端设备的故障处理方法及终端设备 |
CN112214470A (zh) * | 2019-07-11 | 2021-01-12 | 纬创资通股份有限公司 | 数据获取装置与数据运算系统及方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11886957B2 (en) * | 2016-06-10 | 2024-01-30 | Apple Inc. | Artificial intelligence controller that procedurally tailors itself to an application |
US10592279B2 (en) * | 2016-06-23 | 2020-03-17 | Advanced Micro Devices, Inc. | Multi-processor apparatus and method of detection and acceleration of lagging tasks |
US10133610B2 (en) * | 2016-08-16 | 2018-11-20 | International Business Machines Corporation | System, method and recording medium for temperature-aware task scheduling |
JP6408045B2 (ja) * | 2017-01-30 | 2018-10-17 | 楽天株式会社 | 端末装置、端末装置の制御方法、及び、コンピュータプログラム |
US11537931B2 (en) * | 2017-11-29 | 2022-12-27 | Google Llc | On-device machine learning platform to enable sharing of machine-learned models between applications |
US10496936B2 (en) | 2018-03-05 | 2019-12-03 | Capital One Services, Llc | Systems and methods for preventing machine learning models from negatively affecting mobile devices through intermittent throttling |
US10956211B2 (en) * | 2019-02-25 | 2021-03-23 | GM Global Technology Operations LLC | Method and apparatus of allocating automotive computing tasks to networked devices with heterogeneous capabilities |
KR20200112439A (ko) * | 2019-03-22 | 2020-10-05 | 삼성전자주식회사 | 멀티 코어를 포함하는 전자 장치 및 이의 패킷 처리를 위한 방법 |
US10977075B2 (en) * | 2019-04-10 | 2021-04-13 | Mentor Graphics Corporation | Performance profiling for a multithreaded processor |
US11265263B2 (en) * | 2020-05-25 | 2022-03-01 | Qualcomm Incorporated | Processing data using remote network computing resources |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5884244A (en) * | 1997-10-21 | 1999-03-16 | Hewlett-Packard Company | Method for measuring quality of service in a computer system |
US20050125390A1 (en) * | 2003-12-03 | 2005-06-09 | Oliver Hurst-Hiller | Automated satisfaction measurement for web search |
US20120047509A1 (en) * | 2010-08-23 | 2012-02-23 | Yuval Ben-Itzhak | Systems and Methods for Improving Performance of Computer Systems |
CN103389791A (zh) * | 2013-06-25 | 2013-11-13 | 华为技术有限公司 | 数据系统的功率控制方法及装置 |
CN103443769A (zh) * | 2011-03-11 | 2013-12-11 | 英特尔公司 | 用于异构多核心系统的动态核心选择 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2409542A (en) | 2003-12-23 | 2005-06-29 | Red Gate Software Ltd | Assessing user frustration with a load-tested system |
US8423483B2 (en) | 2008-05-16 | 2013-04-16 | Carnegie Mellon University | User-controllable learning of policies |
US8706652B2 (en) | 2009-06-09 | 2014-04-22 | Northwestern University | System and method for controlling power consumption in a computer system based on user satisfaction |
US20110019693A1 (en) | 2009-07-23 | 2011-01-27 | Sanyo North America Corporation | Adaptive network system with online learning and autonomous cross-layer optimization for delay-sensitive applications |
US8909950B1 (en) | 2010-04-18 | 2014-12-09 | Aptima, Inc. | Systems and methods of power management |
US20140195463A1 (en) | 2013-01-10 | 2014-07-10 | Jonathan S. Jacobs | System and methods for generating and displaying optimized solutions to complex problems |
US10223156B2 (en) | 2013-06-09 | 2019-03-05 | Apple Inc. | Initiating background updates based on user activity |
US9910683B2 (en) * | 2014-03-28 | 2018-03-06 | Lenovo (Singapore) Pte. Ltd. | Dynamic application optimization |
-
2015
- 2015-04-07 US US14/680,225 patent/US10049327B2/en active Active
- 2015-11-10 CN CN201580067093.2A patent/CN107003929A/zh active Pending
- 2015-11-10 EP EP15802249.1A patent/EP3230866A1/en not_active Withdrawn
- 2015-11-10 WO PCT/US2015/059928 patent/WO2016094009A1/en active Application Filing
- 2015-11-10 JP JP2017530140A patent/JP2018504676A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5884244A (en) * | 1997-10-21 | 1999-03-16 | Hewlett-Packard Company | Method for measuring quality of service in a computer system |
US20050125390A1 (en) * | 2003-12-03 | 2005-06-09 | Oliver Hurst-Hiller | Automated satisfaction measurement for web search |
US20120047509A1 (en) * | 2010-08-23 | 2012-02-23 | Yuval Ben-Itzhak | Systems and Methods for Improving Performance of Computer Systems |
CN103443769A (zh) * | 2011-03-11 | 2013-12-11 | 英特尔公司 | 用于异构多核心系统的动态核心选择 |
CN103389791A (zh) * | 2013-06-25 | 2013-11-13 | 华为技术有限公司 | 数据系统的功率控制方法及装置 |
Non-Patent Citations (1)
Title |
---|
CRISTIAN TAPUS,I-HSIN CHUNG,JEFFREY K.HOLLINGSWORTH: "《Active Harmony:Towards Automated Performance Tuning》", 《PROCEEDINGS OF THE IEEE/ACM SC2002 CONFERENCE(SC"02)》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019062404A1 (zh) * | 2017-09-30 | 2019-04-04 | Oppo广东移动通信有限公司 | 应用程序的处理方法、装置、存储介质及电子设备 |
CN110709822A (zh) * | 2017-10-13 | 2020-01-17 | 华为技术有限公司 | 一种终端设备的故障处理方法及终端设备 |
US11138062B2 (en) | 2017-10-13 | 2021-10-05 | Huawei Technologies Co., Ltd. | Terminal device troubleshooting method and terminal device |
CN110709822B (zh) * | 2017-10-13 | 2021-10-22 | 华为技术有限公司 | 一种终端设备的故障处理方法及终端设备 |
CN108681426A (zh) * | 2018-05-25 | 2018-10-19 | 第四范式(北京)技术有限公司 | 用于针对数据执行特征处理的方法及系统 |
CN108681426B (zh) * | 2018-05-25 | 2020-08-11 | 第四范式(北京)技术有限公司 | 用于针对数据执行特征处理的方法及系统 |
CN109656793A (zh) * | 2018-11-22 | 2019-04-19 | 安徽继远软件有限公司 | 一种基于多源异构数据融合的信息系统性能立体监测方法 |
CN109945892A (zh) * | 2019-03-15 | 2019-06-28 | 北京航空航天大学 | 一种惯性导航系统复杂算法类需求的在线测试方法 |
CN112214470A (zh) * | 2019-07-11 | 2021-01-12 | 纬创资通股份有限公司 | 数据获取装置与数据运算系统及方法 |
CN110489356A (zh) * | 2019-08-06 | 2019-11-22 | 上海商汤智能科技有限公司 | 信息处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20160171390A1 (en) | 2016-06-16 |
WO2016094009A1 (en) | 2016-06-16 |
US10049327B2 (en) | 2018-08-14 |
EP3230866A1 (en) | 2017-10-18 |
JP2018504676A (ja) | 2018-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003929A (zh) | 用于异构核设备上的机器学习的应用特征化 | |
CN105960575B (zh) | 功耗及网络负荷优化的智能可穿戴设备及方法 | |
KR102186459B1 (ko) | 디바이스의 움직임을 포함하는, 착용식 전자 디바이스로의 사용자 제스처 입력 | |
KR102209064B1 (ko) | 착용식 전자 디바이스로부터 프로세싱의 위임 | |
KR102185364B1 (ko) | 착용식 전자 디바이스에 대한, 그 디바이스의 외향 센서를 포함하는 사용자 제스처 입력 | |
KR102186456B1 (ko) | 착용식 전자 디바이스를 위한 전이 및 상호작용 모델 | |
CN109697510A (zh) | 具有神经网络的方法和装置 | |
CN107209548A (zh) | 在多核处理器中执行功率管理 | |
CN111950596A (zh) | 一种用于神经网络的训练方法以及相关设备 | |
CN106462465A (zh) | 用于使性能最大化并降低芯片温度和功率的优选内核排序的算法 | |
US11775811B2 (en) | Scheduling heterogeneous execution on heterogeneous hardware | |
KR102289256B1 (ko) | 자가진단 기반 건강기능식품 추천 서비스 제공 방법, 장치 및 시스템 | |
EP4040320A1 (en) | On-device activity recognition | |
Gordon et al. | Activity recognition for creatures of habit: Energy-efficient embedded classification using prediction | |
CN110462590A (zh) | 用于基于中央处理单元功率特性来调度软件任务的系统和方法 | |
KR20200010680A (ko) | 기계학습 모델을 이용하여 n개의 프레임에 기초하여 대상의 감정인식을 수행하는 감정인식 시스템, 방법, 및 컴퓨터-판독가능매체 | |
KR20200080419A (ko) | 인공신경망 기반 손동작 인식 방법 및 장치 | |
US20190311248A1 (en) | Method for random sampled convolutions with low cost enhanced expressive power | |
KR102075507B1 (ko) | 모바일 단말을 이용한 실내 조명 관리 방법, 장치 및 컴퓨터-판독가능 기록매체 | |
CN107729144B (zh) | 应用控制方法、装置、存储介质及电子设备 | |
Venieris et al. | How to reach real-time AI on consumer devices? Solutions for programmable and custom architectures | |
CN109937410A (zh) | 核心调度方法和终端 | |
EP3933703A1 (en) | Dynamic loading neural network inference at dram/on-bus sram/serial flash for power optimization | |
KR102449350B1 (ko) | 재고 관리 서비스를 제공하는 시스템 및 그 동작 방법 | |
KR102288151B1 (ko) | 대변 이미지 분석 기반 영양 정보 제공 방법, 장치 및 시스템 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170801 |
|
WD01 | Invention patent application deemed withdrawn after publication |