欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于異構(gòu)核設(shè)備上的機(jī)器學(xué)習(xí)的應(yīng)用特征化的制作方法

文檔序號(hào):11635236閱讀:162來源:國(guó)知局
用于異構(gòu)核設(shè)備上的機(jī)器學(xué)習(xí)的應(yīng)用特征化的制造方法與工藝

相關(guān)申請(qǐng)

本申請(qǐng)要求享受以下申請(qǐng)的優(yōu)先權(quán)的權(quán)益:于2014年12月12日提交的、名稱為“applicationcharacterizationformachinelearningonheterogeneouscoredevices”的美國(guó)臨時(shí)申請(qǐng)no.62/091,290、以及于2014年12月12日提交的、名稱為“architectureforimprovingdynamicexecutionofcomplexalgorithms”的美國(guó)臨時(shí)申請(qǐng)no.62/091,132,故這兩個(gè)申請(qǐng)的全部?jī)?nèi)容通過引用的方式被并入本文。



背景技術(shù):

許多用戶設(shè)備應(yīng)用可以使用一些復(fù)雜算法(還被稱為計(jì)算內(nèi)核)。例如,社交媒體應(yīng)用可以被配置為調(diào)用求解線性系統(tǒng)、提供矩陣乘法、執(zhí)行特征值分解等的庫(kù)。這樣的復(fù)雜算法通常需要大量的計(jì)算資源,并且因此,當(dāng)以最高執(zhí)行速度和/或精度設(shè)置執(zhí)行時(shí),可能極大地影響電池電力以及以其它方式使計(jì)算系統(tǒng)資源負(fù)擔(dān)重。然而,用戶可能不總是要求在他們的設(shè)備上運(yùn)行的應(yīng)用對(duì)復(fù)雜算法進(jìn)行最佳的執(zhí)行(例如,速度、準(zhǔn)確度、精度)。例如,當(dāng)用戶以其它方式忙于社交媒體應(yīng)用中的其它活動(dòng)(例如,上傳、評(píng)論、整理等)時(shí),他/她可以容忍針對(duì)接收社交媒體應(yīng)用中的排序算法的結(jié)果的軟截止期限。作為另一例子,當(dāng)拍攝照片要上傳到社交媒體站點(diǎn)時(shí),用戶可以編寫伴隨該照片的狀態(tài),并且因此,可能不關(guān)心臉部檢測(cè)復(fù)雜算法的延遲。



技術(shù)實(shí)現(xiàn)要素:

各個(gè)方面提供了用于動(dòng)態(tài)地配置與在計(jì)算設(shè)備上執(zhí)行的應(yīng)用相關(guān)聯(lián)的復(fù)雜算法的方法、設(shè)備、系統(tǒng)和非暫時(shí)性處理可讀存儲(chǔ)介質(zhì)。由所述計(jì)算設(shè)備的處理器執(zhí)行的一方面方法可以包括用于以下各項(xiàng)的操作:執(zhí)行調(diào)用與復(fù)雜算法相關(guān)聯(lián)的庫(kù)函數(shù)的應(yīng)用;獲得用于指示對(duì)所述應(yīng)用的性能的用戶響應(yīng)的信號(hào);基于所獲得的用于指示所述用戶響應(yīng)的信號(hào)來確定用戶是否容忍所述應(yīng)用的所述性能;響應(yīng)于確定所述用戶不容忍所述應(yīng)用的所述性能,對(duì)所述應(yīng)用的配置進(jìn)行調(diào)整以改善所述應(yīng)用的隨后性能;以及對(duì)用于指示對(duì)所述應(yīng)用的所述性能的所述用戶響應(yīng)的數(shù)據(jù)以及其它外部變量進(jìn)行存儲(chǔ),以在對(duì)用戶輸入的隨后評(píng)估中使用。在一些方面中,所述應(yīng)用的所述性能包括以下各項(xiàng)中的至少一項(xiàng):實(shí)現(xiàn)結(jié)果的執(zhí)行速度、所述結(jié)果的準(zhǔn)確度、以及所述結(jié)果的精度。在一些方面中,所述方法還可以包括響應(yīng)于確定所述用戶容忍所述應(yīng)用的所述性能,對(duì)所述庫(kù)函數(shù)的所述配置進(jìn)行調(diào)整以降低所述應(yīng)用的所述隨后性能。

在一些方面中,所獲得的用于指示所述用戶響應(yīng)的信號(hào)是以下各項(xiàng)中的一項(xiàng)或多項(xiàng):觸摸屏上的觸摸輸入、按鈕按壓、來自傳感器的數(shù)據(jù)、另一應(yīng)用的發(fā)起、所述應(yīng)用的狀態(tài)的改變、以及當(dāng)用戶響應(yīng)將被期望時(shí)對(duì)用戶輸入的缺乏。在一些方面中,基于所獲得的用于指示所述用戶響應(yīng)的信號(hào)來確定所述用戶是否容忍所述應(yīng)用的所述性能可以包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):基于所獲得的信號(hào)來確定所述用戶是否已經(jīng)忽略所述應(yīng)用的輸出,以及基于所獲得的信號(hào)來確定所述用戶是否已經(jīng)校正所述應(yīng)用的所述輸出。在一些方面中,基于所獲得的用于指示所述用戶響應(yīng)的信號(hào)來確定所述用戶是否容忍所述應(yīng)用的所述性能可以包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):基于所獲得的信號(hào)來確定所述用戶是否已經(jīng)導(dǎo)航離開所述應(yīng)用,以及基于所獲得的信號(hào)來確定所述用戶是否已經(jīng)按壓刷新功能或者重復(fù)地按壓其它按鈕。

在一些方面中,所述方法還可以包括響應(yīng)于基于所獲得的信號(hào)而確定所述用戶已經(jīng)導(dǎo)航離開所述應(yīng)用,確定所述用戶是否導(dǎo)航返回到所述應(yīng)用。在一些方面中,所述方法還可以包括響應(yīng)于確定所述用戶已經(jīng)導(dǎo)航返回到所述應(yīng)用,確定所述用戶是否已經(jīng)在預(yù)先定義的時(shí)間門限內(nèi)導(dǎo)航返回到所述應(yīng)用。在一些方面中,響應(yīng)于確定所述用戶不容忍所述應(yīng)用的所述性能,對(duì)所述應(yīng)用的所述配置進(jìn)行調(diào)整以改善所述應(yīng)用的所述隨后性能可以包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):增加精度設(shè)置,增加執(zhí)行速度設(shè)置,以及改變執(zhí)行核設(shè)置。

在一些方面中,響應(yīng)于確定所述用戶不容忍所述應(yīng)用的所述性能,對(duì)所述應(yīng)用的所述配置進(jìn)行調(diào)整以改善所述應(yīng)用的所述隨后性能可以包括:響應(yīng)于確定所述用戶不容忍所述應(yīng)用的所述性能,對(duì)用于使用所述庫(kù)函數(shù)的所述應(yīng)用的所述配置進(jìn)行調(diào)整。在一些方面中,所述方法還可以包括:響應(yīng)于確定所述用戶確實(shí)容忍所述應(yīng)用的所述性能,對(duì)所述應(yīng)用的所述配置進(jìn)行調(diào)整以降低所述應(yīng)用的所述隨后性能。在一些方面中,所述應(yīng)用可以調(diào)用多個(gè)庫(kù)函數(shù),其中,所述庫(kù)函數(shù)可以在所述多個(gè)庫(kù)函數(shù)內(nèi),并且所述方法還可以包括:選擇所述多個(gè)庫(kù)函數(shù)中的第一庫(kù)函數(shù);響應(yīng)于基于所獲得的用于指示所述用戶響應(yīng)的信號(hào)而確定所述用戶不容忍所述應(yīng)用的所述性能,對(duì)所述第一庫(kù)函數(shù)的配置進(jìn)行調(diào)整以改善所述應(yīng)用的所述隨后性能;隨后執(zhí)行所述應(yīng)用;獲得用于指示對(duì)所述應(yīng)用的所述隨后性能的隨后用戶響應(yīng)的隨后信號(hào);響應(yīng)于確定所述用戶不容忍所述應(yīng)用的所述隨后性能,選擇所述多個(gè)庫(kù)函數(shù)中的第二庫(kù)函數(shù);以及對(duì)所述第二庫(kù)函數(shù)的配置進(jìn)行調(diào)整。

在一些方面中,所述方法還可以包括:獲得用于所述應(yīng)用的多個(gè)折衷設(shè)置;對(duì)在初始時(shí)間時(shí)的與所述計(jì)算設(shè)備相關(guān)聯(lián)的狀況進(jìn)行評(píng)估;以及基于所評(píng)估的在所述初始時(shí)間時(shí)的與所述計(jì)算設(shè)備相關(guān)聯(lián)的狀況,來確定所獲得的多個(gè)折衷設(shè)置中的折衷設(shè)置是否將被使用。在一些方面中,所述方法還可以包括:響應(yīng)于基于所評(píng)估的在所述初始時(shí)間時(shí)的與所述計(jì)算設(shè)備相關(guān)聯(lián)的狀況而確定所述折衷設(shè)置將被使用,基于所述折衷設(shè)置來對(duì)所述應(yīng)用的初始配置進(jìn)行調(diào)整。在一些方面中,響應(yīng)于確定所述用戶不容忍所述應(yīng)用的所述性能,對(duì)所述應(yīng)用的所述配置進(jìn)行調(diào)整以改善所述應(yīng)用的所述隨后性能可以包括:響應(yīng)于確定所述用戶不容忍使用所述初始配置的所述應(yīng)用的所述性能,對(duì)所述應(yīng)用的所述初始配置進(jìn)行重寫。在一些方面中,獲得用于所述應(yīng)用的所述多個(gè)折衷設(shè)置可以包括以下各項(xiàng)中的至少一項(xiàng):在所述應(yīng)用的運(yùn)行時(shí)間期間經(jīng)由應(yīng)用編程接口(api)獲得用于所述應(yīng)用的第一折衷設(shè)置,經(jīng)由代碼中指令獲得用于所述應(yīng)用的第二折衷設(shè)置,以及經(jīng)由專用寄存器獲得用于所述應(yīng)用的第三折衷設(shè)置。在一些方面中,對(duì)在所述初始時(shí)間時(shí)的與所述計(jì)算設(shè)備相關(guān)聯(lián)的狀況進(jìn)行評(píng)估可以包括以下各項(xiàng)中的至少一項(xiàng):對(duì)用于應(yīng)用的工作負(fù)載進(jìn)行評(píng)估;以及對(duì)影響所述計(jì)算設(shè)備對(duì)所述應(yīng)用的處理的外部狀況進(jìn)行評(píng)估。

另外的方面包括一種被配置有處理器可執(zhí)行指令以執(zhí)行以上描述的方法的操作的計(jì)算設(shè)備。另外的方面包括一種非暫時(shí)性處理器可讀介質(zhì),其上存儲(chǔ)有處理器可執(zhí)行指令,所述處理器可執(zhí)行指令被配置為使得計(jì)算設(shè)備執(zhí)行以上描述的方法的操作。另外的方面包括一種通信系統(tǒng),其包括被配置有處理器可執(zhí)行指令以執(zhí)行以上描述的方法的操作的計(jì)算設(shè)備。

附圖說明

被并入本文并且構(gòu)成該說明書的部分的附圖示出了本發(fā)明的示例性方面,并且連同以上給出的總體描述以及以下給出的詳細(xì)描述一起用來解釋本發(fā)明的特征。

圖1a-1b是示出了功率消耗與針對(duì)復(fù)雜算法的準(zhǔn)確度和運(yùn)行時(shí)間速度配置之間的一般關(guān)系的圖(例如,帕累托最優(yōu)(paretooptimality)圖)。

圖2是在多核設(shè)備中實(shí)現(xiàn)的并且適于與各個(gè)方面一起使用的架構(gòu)的組件框圖。

圖3是根據(jù)各個(gè)方面的與應(yīng)用相關(guān)聯(lián)的折衷(trade-off)功能的組件框圖。

圖4是示出了適于與各個(gè)方面一起使用的示例性指令(directive)(即,編譯指示(pragma))的集合的圖。

圖5是示出了適于與各個(gè)方面一起使用的示例性應(yīng)用編程接口(api)調(diào)用的集合的圖。

圖6a-6b是示出了用于計(jì)算設(shè)備如在折衷功能中定義地并且基于評(píng)估的當(dāng)前狀況來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的配置的各方面方法的過程流程圖。

圖7a是示出了適于與各個(gè)方面一起使用的基本模塊架構(gòu)的組件框圖。

圖7b是示出了用于計(jì)算設(shè)備基于用戶響應(yīng)來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的配置的一方面方法的過程流程圖。

圖8a-8b是示出了用于計(jì)算設(shè)備基于用戶輸入來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的精度配置的各方面方法的過程流程圖。

圖9a-9b是示出了用于計(jì)算設(shè)備基于用戶輸入來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的執(zhí)行速度配置的各方面方法的過程流程圖。

圖10是適于與各個(gè)方面一起使用的示例膝上型計(jì)算設(shè)備的組件框圖。

圖11是適于在一方面中使用的移動(dòng)計(jì)算設(shè)備的組件框圖。

具體實(shí)施方式

將參照附圖詳細(xì)描述各個(gè)方面。在任何可能的情況下,將貫穿各個(gè)圖使用相同的附圖標(biāo)記來指代相同或類似的部分。對(duì)特定例子和實(shí)現(xiàn)方式的提及是出于說明性的目的的,而并非旨在限制本發(fā)明或者權(quán)利要求的范圍。

“示例性”一詞在本文中被用來意指“充當(dāng)例子、實(shí)例或說明”。在本文中被描述為“示例性的”任何實(shí)現(xiàn)方式不必然地被解釋為優(yōu)選的或者比其它實(shí)現(xiàn)方式有優(yōu)勢(shì)。

術(shù)語“計(jì)算設(shè)備”在本文中被用來指代以下各項(xiàng)中的任何一項(xiàng)或者全部:蜂窩電話、智能電話、上網(wǎng)機(jī)(web-pad)、平板計(jì)算機(jī)、具有互聯(lián)網(wǎng)功能的蜂窩電話、具有功能的電子設(shè)備、個(gè)人數(shù)據(jù)助理(pda)、膝上型計(jì)算機(jī)、個(gè)人計(jì)算機(jī)和配備有至少一個(gè)處理器的類似電子設(shè)備。例如,移動(dòng)通信設(shè)備(例如,智能電話)可以被視為移動(dòng)計(jì)算設(shè)備。此外,計(jì)算設(shè)備可以使用均可以具有各種能力和配置的各種核或者處理器(即,異構(gòu)核),例如,應(yīng)用處理器、圖形處理單元(gpu)、數(shù)字信號(hào)處理器(dsp)等。這樣的計(jì)算設(shè)備在本文中可以被稱為“多核設(shè)備”。

通常,許多科學(xué)算法(例如,矩陣乘法、向量數(shù)學(xué)、曲線擬合等)是計(jì)算密集型的,在被計(jì)算設(shè)備執(zhí)行時(shí)導(dǎo)致大量的功率消耗以及總體性能問題。例如,當(dāng)利用沒有被適當(dāng)?shù)嘏渲糜糜谠谄舷到y(tǒng)(soc)架構(gòu)上使用的某些函數(shù)的應(yīng)用在soc設(shè)備上執(zhí)行時(shí),應(yīng)用性能可能是遲滯的和/或該設(shè)備的電池可能被快速地耗盡。圖1a-1b是示出了功率消耗與用于應(yīng)用和/或復(fù)雜算法的準(zhǔn)確度和運(yùn)行時(shí)間速度配置之間的一般關(guān)系的圖(例如,帕累托最優(yōu)圖)。特別是,這些圖示出了隨著典型的應(yīng)用和/或算法被配置用于較大的準(zhǔn)確度(或者精度)或者運(yùn)行時(shí)間速度,它們的功率消耗也在增加。

關(guān)于應(yīng)用結(jié)果的執(zhí)行速度、精度和/或準(zhǔn)確度,用戶可以容忍對(duì)各應(yīng)用的不同體驗(yàn)。然而,用戶的容忍門限可能不是提前可知的,因?yàn)檫@樣的要求經(jīng)常是取決于用戶的并且是個(gè)性化的。例如,一些用戶可以容忍對(duì)某些應(yīng)用結(jié)果的延遲,而其它用戶可能完全無法容忍在接收相同應(yīng)用結(jié)果(例如,臉部標(biāo)記)時(shí)的甚至輕微的延遲。作為另一例子,當(dāng)在膝上型計(jì)算機(jī)上執(zhí)行應(yīng)用時(shí),可以允許臉部檢測(cè)復(fù)雜算法較慢;然而,當(dāng)在智能眼鏡上執(zhí)行時(shí),臉部檢測(cè)算法的輕微延遲對(duì)于用戶來說可能是不可接受的。因此,針對(duì)應(yīng)用性能的用戶體驗(yàn)要求對(duì)于程序員利用預(yù)先提供的提示(hint)(例如,可以以其它方式被用于改善對(duì)復(fù)雜算法的執(zhí)行的編譯指示或者指令)來解決而言可能是困難的并且是不切實(shí)際的。例如,程序員或者開發(fā)人員可能對(duì)代碼中的應(yīng)當(dāng)經(jīng)由提示(例如,編譯指示)被配置為較不精確以便改善響應(yīng)時(shí)間的部分判斷錯(cuò)誤,從而導(dǎo)致來自用戶的煩惱。

過分簡(jiǎn)單地利用所有應(yīng)用和/或由這些應(yīng)用使用的復(fù)雜算法的最資源密集型的配置來執(zhí)行它們可能是低效的或者不可行的,這取決于情況和用戶。例如,當(dāng)應(yīng)用的算法被配置為使用它們的最高執(zhí)行速度配置時(shí),可能太快地使用太多的功率,對(duì)用戶來說沒有可觀的增益。作為另一例子,當(dāng)應(yīng)用使用最大資源而對(duì)于它們的組件中的一些組件不要求最高浮點(diǎn)精度,并且可以容忍來自復(fù)雜算法的較低精度時(shí)(例如,機(jī)器學(xué)習(xí)算法的各階段可以以較低精度運(yùn)行,而結(jié)果仍然是可接受的),可能浪費(fèi)功率。因此,需要如下的智能技術(shù):所述智能技術(shù)學(xué)習(xí)對(duì)應(yīng)用和/或由這些應(yīng)用使用的復(fù)雜算法進(jìn)行配置的改進(jìn)的方式,以對(duì)計(jì)算設(shè)備的性能與用戶體驗(yàn)進(jìn)行平衡。

各個(gè)方面提供了用于使用利用復(fù)雜算法的應(yīng)用的調(diào)用和用途來學(xué)習(xí)用戶可接受的方式,以調(diào)整對(duì)應(yīng)用和/或復(fù)雜算法的執(zhí)行。換言之,各方面技術(shù)自動(dòng)地學(xué)習(xí)用戶的對(duì)于應(yīng)用的性能的要求或者偏好,以便例如當(dāng)執(zhí)行復(fù)雜算法執(zhí)行時(shí),提供足夠的用戶體驗(yàn)??梢曰谠趹?yīng)用和/或其復(fù)雜算法的執(zhí)行期間或者完成時(shí)從用戶觀察到的輸入或者其它上下文信息,來實(shí)現(xiàn)這樣的學(xué)習(xí)?;趶挠脩艚邮盏姆答仯?jì)算設(shè)備可以例如通過增加/減小準(zhǔn)確度或者精度,增加/減小執(zhí)行速度,和/或改變被指派來執(zhí)行復(fù)雜算法操作的核,持續(xù)地調(diào)整對(duì)應(yīng)用和/或該應(yīng)用的復(fù)雜算法的執(zhí)行的配置。

在各個(gè)方面中,計(jì)算設(shè)備可以監(jiān)聽并且處理由用戶提供的各種信號(hào),以推斷應(yīng)用和/或復(fù)雜算法的執(zhí)行和當(dāng)前配置是否正在提供可接受的用戶體驗(yàn)。特別是,計(jì)算設(shè)備可以分析用戶與計(jì)算設(shè)備的界面和/或傳感器的交互,以識(shí)別應(yīng)用是否正在提供在結(jié)果方面足夠的實(shí)時(shí)響應(yīng)、準(zhǔn)確度和/或精度,以使得用戶不在提供與對(duì)結(jié)果的失望或者不滿意相一致的反饋/輸入。例如,計(jì)算設(shè)備可以識(shí)別觸摸屏上的用于指示對(duì)由應(yīng)用的復(fù)雜算法生成的結(jié)果數(shù)據(jù)的滿意的輕擊。在各個(gè)方面中,可以由計(jì)算設(shè)備的操作系統(tǒng)和/或應(yīng)用二者獲得和/或處理指示關(guān)于應(yīng)用和相關(guān)的復(fù)雜算法的執(zhí)行的用戶的體驗(yàn)的信號(hào)。在一些方面中,計(jì)算設(shè)備可以利用行為分析系統(tǒng)(例如,用于異常檢測(cè)(例如,檢測(cè)惡意軟件應(yīng)用)的行為系統(tǒng)),來確定應(yīng)用響應(yīng)是否在用戶的可容忍參數(shù)內(nèi)。

關(guān)于應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的響應(yīng)時(shí)間(或者執(zhí)行速度)配置,計(jì)算設(shè)備可以觀察用戶是否將對(duì)界面的關(guān)注轉(zhuǎn)移到另一應(yīng)用,在執(zhí)行正在發(fā)生時(shí)持續(xù)地提供輸入(例如,觸摸屏上的刷新、輕擊等),和/或在執(zhí)行已經(jīng)完成并且將結(jié)果呈現(xiàn)給用戶之后沒有以及時(shí)的方式提供輸入。例如,如果由應(yīng)用請(qǐng)求的結(jié)果被延遲并且用戶導(dǎo)航遠(yuǎn)離該應(yīng)用(例如,關(guān)閉該應(yīng)用、切換到另一應(yīng)用等),那么計(jì)算設(shè)備可以推斷該用戶無法容忍該延遲,并且用于提供結(jié)果的執(zhí)行截止期限(或者延遲)已經(jīng)太長(zhǎng)了。作為另一例子,如果計(jì)算設(shè)備基于信號(hào)確定當(dāng)應(yīng)用的結(jié)果正在后臺(tái)被計(jì)算時(shí),用戶持續(xù)地刷新該應(yīng)用和/或重復(fù)地按壓按鈕中的一些按鈕,那么計(jì)算設(shè)備可以推斷正在失去用戶對(duì)于該應(yīng)用的時(shí)效性偏好。

關(guān)于應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的準(zhǔn)確度和/或精度,計(jì)算設(shè)備可以針對(duì)用于指示用戶發(fā)現(xiàn)來自該應(yīng)用的結(jié)果不充分的用戶輸入或者信號(hào)進(jìn)行監(jiān)測(cè)。例如,當(dāng)用戶忽略社交媒體應(yīng)用(例如,臉部檢測(cè)和標(biāo)記)的復(fù)雜算法的輸出(與如基于缺少用戶輸入而確定的最大可用精度相比,其是以較低的精度計(jì)算的)時(shí),計(jì)算設(shè)備可以推斷精度對(duì)于用戶來說太低(例如,對(duì)錯(cuò)誤的人進(jìn)行臉部標(biāo)記太頻繁等)。作為另一例子,當(dāng)用戶提供用于校正應(yīng)用的復(fù)雜算法的輸出(例如,校正轉(zhuǎn)錄(transcription)、對(duì)自動(dòng)校正功能的校正等)的輸入時(shí),計(jì)算設(shè)備可以將這樣的信號(hào)解釋為指示該精度對(duì)于用戶的偏好而言太低,并且可以增加用于復(fù)雜算法的精度配置以用于相關(guān)聯(lián)的應(yīng)用的隨后執(zhí)行。在一些方面中,觀察到的對(duì)應(yīng)用輸出的用戶校正的程度可以被用于調(diào)整應(yīng)用和/或復(fù)雜算法配置。例如,如果用戶完全拒絕針對(duì)整個(gè)照片的姓名標(biāo)記結(jié)果,那么計(jì)算設(shè)備可以推斷用于標(biāo)記算法的精度配置應(yīng)當(dāng)被顯著地增加,而如果用戶僅校正針對(duì)照片的姓名標(biāo)記中的小部分,那么計(jì)算設(shè)備可以推斷用于標(biāo)記算法的精度配置無需被調(diào)整或者在小程度上被調(diào)整。

在一些方面中,計(jì)算設(shè)備可以被配置為基于觀察到的用戶輸入/信號(hào)來持續(xù)地并且自動(dòng)地調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的配置或者執(zhí)行速度,以便學(xué)習(xí)針對(duì)用戶可接受的性能的較低界限。例如,計(jì)算設(shè)備可以被配置為通過遞增地降低算法的執(zhí)行速度和/或精度,直到檢測(cè)到用于指示用戶的煩惱的輸入(例如,重復(fù)地按鈕按壓,用戶忽略標(biāo)記等)為止,學(xué)習(xí)針對(duì)社交媒體應(yīng)用中的臉部標(biāo)記算法的用戶的容忍門限。以這種方式,計(jì)算設(shè)備可以發(fā)現(xiàn)高效的同時(shí)在不需要用戶手動(dòng)地設(shè)置偏好的情況下滿足用戶的偏好的應(yīng)用配置和執(zhí)行速度的集合。

應(yīng)用可以使用均有助于用戶體驗(yàn)的各種復(fù)雜算法,并且在一些方面中,這些復(fù)雜算法中的每種算法可以與其自身的配置或者設(shè)置(例如,準(zhǔn)確度、精度、執(zhí)行速度等)相關(guān)聯(lián),這些配置或者設(shè)置可以響應(yīng)于獲得的指示差體驗(yàn)的用戶輸入而被單獨(dú)地調(diào)整以改善用戶體驗(yàn)。然而,由于用戶輸入可能不會(huì)指示復(fù)雜算法的必然有助于差體驗(yàn)的配置,所以計(jì)算設(shè)備可以被配置為以迭代的方式單獨(dú)地調(diào)整復(fù)雜算法。例如,在檢測(cè)到指示(例如,由于結(jié)果的延遲或者不準(zhǔn)確的結(jié)果而導(dǎo)致的)對(duì)應(yīng)用的差的用戶體驗(yàn)的第一用戶信號(hào)之后,計(jì)算設(shè)備可以改善該應(yīng)用的第一復(fù)雜算法的第一配置并且觀察隨后的用戶交互,例如,經(jīng)由觸摸輸入的隨后響應(yīng)等。如果計(jì)算設(shè)備然后觀察到指示差的用戶體驗(yàn)或者與其相一致的隨后的第二用戶交互,那么計(jì)算設(shè)備可以調(diào)整由該應(yīng)用使用的第二復(fù)雜算法的第二配置并且再次觀察隨后的用戶交互??梢灾貜?fù)這樣的“調(diào)整并且觀察”過程,直到計(jì)算設(shè)備觀察到與滿意的用戶體驗(yàn)相一致的用戶交互為止。選擇不同的復(fù)雜算法來進(jìn)行調(diào)整可以經(jīng)由預(yù)先定義的優(yōu)先級(jí)列表、經(jīng)由開發(fā)人員提供的提示(例如,編譯指示)、和/或從遠(yuǎn)程設(shè)備(例如,具有應(yīng)用的其它實(shí)例化的知識(shí)以及相關(guān)的用戶體驗(yàn)的云服務(wù)器)來實(shí)現(xiàn)。

在一些方面中,如果應(yīng)用和/或復(fù)雜算法無法被充分地調(diào)整以滿足用戶的要求,那么可以在應(yīng)用和/或復(fù)雜算法的下一次調(diào)用時(shí)將工作卸載到云計(jì)算設(shè)備。例如,當(dāng)在執(zhí)行臉部檢測(cè)算法時(shí)觀察到的用戶交互指示用戶繼續(xù)被處理延遲所煩惱(例如,基于在移動(dòng)設(shè)備上檢測(cè)到大量輕擊)時(shí),移動(dòng)設(shè)備可以將下一臉部檢測(cè)操作卸載到遠(yuǎn)程服務(wù)器,而移動(dòng)設(shè)備使用其全部資源用于其它操作。

在各個(gè)方面中,具有不同規(guī)范的多處理核可以可用于被配置為利用各方面技術(shù)的計(jì)算設(shè)備(例如,移動(dòng)設(shè)備)中。根據(jù)要求特定計(jì)算的結(jié)果多快以及多準(zhǔn)確,可以在計(jì)算設(shè)備的各個(gè)處理核上調(diào)度、分派、以及運(yùn)行應(yīng)用(或者應(yīng)用的部分)和/或復(fù)雜算法,以節(jié)省能量同時(shí)提供及時(shí)的結(jié)果。本文中描述的系統(tǒng)架構(gòu)可以被用于通過收集要被用于調(diào)度、調(diào)整和執(zhí)行應(yīng)用和/或與該應(yīng)用相關(guān)聯(lián)的復(fù)雜算法的硬件和應(yīng)用要求和狀態(tài)來實(shí)現(xiàn)該目標(biāo)。在一些方面中,計(jì)算設(shè)備可以利用各種信息來識(shí)別如何配置應(yīng)用和/或復(fù)雜算法(例如,由應(yīng)用調(diào)用的計(jì)算內(nèi)核)以用于在其各個(gè)核中的一個(gè)或多個(gè)核上的高效執(zhí)行。例如,計(jì)算設(shè)備可以利用計(jì)算設(shè)備的硬件(例如,異構(gòu)核、存儲(chǔ)器等)的穩(wěn)態(tài)特性和能力、先前識(shí)別的用于執(zhí)行應(yīng)用和/或復(fù)雜算法的參數(shù)(例如,可接受的執(zhí)行速度或者截止期限、準(zhǔn)確度等)、計(jì)算設(shè)備的各個(gè)硬件的任何當(dāng)前或者暫態(tài)或者狀況、和/或應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的歷史資源使用(例如,緩存缺失、存儲(chǔ)器訪問模式、帶寬利用率、例外和分支頻率等)。這樣的信息可以經(jīng)由對(duì)系統(tǒng)變量的查詢(例如,專用寄存器)、與應(yīng)用相關(guān)聯(lián)的代碼內(nèi)的編譯指示指示符、應(yīng)用和/或相關(guān)的軟件內(nèi)的api調(diào)用、和/或從用戶輸入(例如,檢測(cè)到的指示無耐心的觸摸、指示不正確或者不可接受的延遲的響應(yīng)時(shí)間的選擇輸入等)來獲得。在一些方面中,計(jì)算設(shè)備可以利用調(diào)度器或者負(fù)載分發(fā)器模塊來使用信息(例如,錯(cuò)過的截止期限和負(fù)載平衡歷史)來將軟件配置(或者指派)為在各個(gè)核上執(zhí)行。在一些方面中,計(jì)算設(shè)備可以例如通過在對(duì)應(yīng)用的執(zhí)行期間將內(nèi)核使用數(shù)據(jù)提供給資源歷史子系統(tǒng)來存儲(chǔ)或者以其它方式保留核使用數(shù)據(jù),以在應(yīng)用和/或復(fù)雜算法的隨后執(zhí)行中使用。

在一些方面中,計(jì)算設(shè)備可以利用預(yù)先定義的折衷功能和/或其它用戶或者開發(fā)人員提供的數(shù)據(jù),來確定應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的可以被調(diào)整為最佳改善用戶體驗(yàn)的配置/設(shè)置。例如,基于指示由視頻游戲應(yīng)用使用的向量數(shù)學(xué)算法可以利用用于提供結(jié)果的軟截止期限的編譯指示,計(jì)算設(shè)備可以響應(yīng)于基于觸摸屏上的持續(xù)輕擊而推斷用戶對(duì)計(jì)算設(shè)備的當(dāng)前性能煩惱,相應(yīng)地調(diào)整向量數(shù)學(xué)算法。如本文中描述的,計(jì)算設(shè)備可以基于用戶提供的提示來對(duì)應(yīng)用和/或復(fù)雜算法進(jìn)行調(diào)整(例如,雖然程序員可以將代碼的一部分識(shí)別為計(jì)算密集型的,但是編譯器可能調(diào)整或者可能不會(huì)調(diào)整對(duì)該代碼的執(zhí)行)。然而,在稍后的時(shí)間,該代碼中的由于觀察到的用戶交互而被突出的部分(例如,經(jīng)由api調(diào)用和/或編譯指示)可以由計(jì)算設(shè)備評(píng)估,以識(shí)別可能導(dǎo)致差的用戶體驗(yàn)的潛在延遲。

一些方面可以通過使用解決計(jì)算設(shè)備的動(dòng)態(tài)限制(例如,可用功率、計(jì)算能力等)的折衷功能,來利用被設(shè)計(jì)用于應(yīng)用和/或由在計(jì)算設(shè)備上執(zhí)行的該應(yīng)用使用的復(fù)雜算法的動(dòng)態(tài)執(zhí)行的架構(gòu)。特別是,一些方面技術(shù)可以提供用于對(duì)性能和準(zhǔn)確度與能量和功率消耗進(jìn)行折衷的功能。

為了執(zhí)行設(shè)備上的應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法,可能需要各種評(píng)估來確定該設(shè)備是否將受到執(zhí)行應(yīng)用和/或復(fù)雜算法的負(fù)面影響和/或計(jì)算設(shè)備是否應(yīng)當(dāng)采取其它預(yù)防措施。例如,當(dāng)僅存在有限的可用功率電平時(shí),移動(dòng)設(shè)備可以執(zhí)行測(cè)試以確保復(fù)雜算法執(zhí)行不耗盡電池。作為另一例子,對(duì)于計(jì)算設(shè)備而言,可能需要避免過度優(yōu)化導(dǎo)致針對(duì)某些關(guān)鍵應(yīng)用的遲滯或者非實(shí)時(shí)輸出的預(yù)防措施。另一例子是針對(duì)避免使得處理器過熱同時(shí)嘗試滿足實(shí)時(shí)截止期限的預(yù)防措施和評(píng)估。

用戶可以例如經(jīng)由被嵌入在代碼或者指令集內(nèi)的指令(或者“編譯指示”)來設(shè)置用于適應(yīng)對(duì)應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的執(zhí)行的靜態(tài)參數(shù)。一種這樣的自適應(yīng)可以調(diào)整(例如,增加或者減小)計(jì)算的速度。當(dāng)用戶不需要實(shí)時(shí)算法輸出時(shí),降低執(zhí)行的速度可能是有用的。例如,因?yàn)橐恍┯脩艨梢匀萑逃捎谝云渌绞奖徽加?例如,向照片添加文本描述)而導(dǎo)致的輕微(或者軟)實(shí)時(shí)延遲,所以當(dāng)獲得新照片時(shí)針對(duì)臉部標(biāo)記算法的輸出可以被輕微地延遲。作為另一例子,用戶可以容忍等待,直到計(jì)算設(shè)備通宵被插入到電源中以執(zhí)行對(duì)在白天期間拍攝的照片的聚類以及將它們分組到不同的相冊(cè)中為止。作為另一例子,可以允許機(jī)器學(xué)習(xí)算法通宵處理反饋數(shù)據(jù)(以及當(dāng)設(shè)備被插入到壁式插座中時(shí)),以便將算法的配置調(diào)諧用于第二天的使用。執(zhí)行速度的降低有時(shí)可能是不可行的,例如,當(dāng)算法在提供話音識(shí)別和/或轉(zhuǎn)錄的情況下具有硬實(shí)時(shí)要求時(shí)。

另一種這樣的自適應(yīng)可以調(diào)整(例如,增加或者減小)計(jì)算的精度和/或準(zhǔn)確度。例如,當(dāng)可用功率是有限的時(shí),只要某一百分比的結(jié)果是正確的,用戶就可以容忍臉部檢測(cè)或者臉部標(biāo)記算法的輕微的準(zhǔn)確度或者精度下降。一些應(yīng)用和/或算法可能不需要高精度來提供充分的結(jié)果。

另一種這樣的自適應(yīng)可以是調(diào)度用于在不同的核上執(zhí)行的操作。這樣的調(diào)度可以是依賴于在給定時(shí)間(例如,初始時(shí)間)處的系統(tǒng)的輸入數(shù)據(jù)和狀態(tài)(例如,諸如硬件能力之類的靜態(tài)設(shè)備信息和諸如電池電力之類的其它暫態(tài)信息)的。例如,當(dāng)設(shè)備電池具有大量的可用電池電力時(shí),計(jì)算設(shè)備可以將應(yīng)用配置為利用所有核來滿足科學(xué)庫(kù)函數(shù)的處理截止期限,但是,在其它情況下(例如,當(dāng)電池低于預(yù)先定義的電平時(shí)),計(jì)算設(shè)備可以折衷并且僅使用單個(gè)核或者專用核來執(zhí)行函數(shù)。

在一些方面中,計(jì)算設(shè)備可以被配置為調(diào)諧多少存儲(chǔ)器帶寬(或者信道)被應(yīng)用用來占用以便傳送計(jì)算所需要的數(shù)據(jù)或者代碼。可以完成這樣的調(diào)諧,以便允許其它過程接入并且以其它方式使用與由該應(yīng)用使用的相同的信道。在一些方面中,計(jì)算設(shè)備可以被配置為改變存儲(chǔ)器層級(jí)(例如,被分配給共享存儲(chǔ)器上的各個(gè)核的棧和堆的量),以滿足用于執(zhí)行應(yīng)用的某些截止期限,而需要或者不需要喚醒處于待機(jī)的其它核。

除了基于檢測(cè)到的用戶輸入的機(jī)器學(xué)習(xí)技術(shù)之外,一些方面還可以利用智能系統(tǒng)來確定如何動(dòng)態(tài)地設(shè)置和調(diào)整應(yīng)用和/或復(fù)雜算法的配置,以便在給定時(shí)間處適應(yīng)用戶的設(shè)備性能期望以及設(shè)備約束。因此,一些方面通過使得計(jì)算設(shè)備能夠自動(dòng)地調(diào)整應(yīng)用和/或復(fù)雜算法的性能來適應(yīng)變化的環(huán)境、設(shè)備狀態(tài)、用戶性能期望以及其它設(shè)備約束,從而改善計(jì)算設(shè)備的功能。這樣的調(diào)整可以改善設(shè)備處的功率消耗,同時(shí)平衡用戶體驗(yàn)。

可以由例如計(jì)算設(shè)備的用戶或者應(yīng)用開發(fā)人員來定義邏輯關(guān)系或者規(guī)則集(在本文中被稱為“折衷功能”)。每種折衷功能可以指示可以被應(yīng)用調(diào)用的、用于執(zhí)行應(yīng)用和/或復(fù)雜算法(例如,科學(xué)計(jì)算)的各種配置或者設(shè)置。折衷功能還可以指示計(jì)算設(shè)備在應(yīng)用的執(zhí)行期間的狀況或者設(shè)備狀態(tài),其在被檢測(cè)到時(shí)可以觸發(fā)對(duì)配置中的任何配置的使用。例如,折衷功能可以包括指示熱狀況的數(shù)據(jù)(例如,設(shè)備溫度),熱狀況在被滿足時(shí)指示相關(guān)聯(lián)的庫(kù)函數(shù)的執(zhí)行應(yīng)當(dāng)被重新配置為減慢或者使得較不準(zhǔn)確。作為另一例子,響應(yīng)于確定計(jì)算設(shè)備被連接到電源(例如,壁式插座),折衷功能內(nèi)的數(shù)據(jù)可以提示計(jì)算設(shè)備以較高的精度水平來執(zhí)行矩陣乘法庫(kù)函數(shù)。以這種方式,由計(jì)算設(shè)備執(zhí)行的各方面技術(shù)可以使得用戶能夠更為緊密且動(dòng)態(tài)地控制計(jì)算設(shè)備配置時(shí)間和/或能量密集型應(yīng)用和/或復(fù)雜算法的方式。

作為說明,用戶可以定義用于與應(yīng)用(例如,社交媒體應(yīng)用)相關(guān)聯(lián)地執(zhí)行的特定科學(xué)庫(kù)函數(shù)(例如,向量數(shù)學(xué)算法)的折衷功能。折衷功能可以指示相對(duì)于計(jì)算設(shè)備中的熱或者熱能狀況(或者讀數(shù))的性能設(shè)置(例如,用于執(zhí)行復(fù)雜算法的執(zhí)行或者運(yùn)行時(shí)間速度)。折衷功能可以指示可以針對(duì)科學(xué)庫(kù)函數(shù)實(shí)現(xiàn)較慢的運(yùn)行時(shí)間,試圖節(jié)省由于熱瓶頸而導(dǎo)致的每時(shí)間單位的能量消耗率?;陬A(yù)先定義的熱限制(例如,制造商規(guī)范等),性能與熱狀況之間的這樣的連接對(duì)于計(jì)算設(shè)備的總體健康而言可能是重要的。折衷功能(或者單獨(dú)的折衷功能)可以指示相對(duì)于可用功率狀況(例如,可用電池電平)的性能設(shè)置,并且可以指示可以針對(duì)科學(xué)庫(kù)函數(shù)來實(shí)現(xiàn)較慢的運(yùn)行時(shí)間,試圖節(jié)省電池電力。折衷功能(或者單獨(dú)的折衷功能)可以指示相對(duì)于熱或者熱能狀況的準(zhǔn)確度或者精度設(shè)置,從而指示較低的準(zhǔn)確度或者精度設(shè)置可以被用于降低能量消耗率。折衷功能(或者單獨(dú)的折衷功能)可以指示相對(duì)于功率狀況的準(zhǔn)確度或者精度設(shè)置,從而指示較低的準(zhǔn)確度或者精度設(shè)置可以被用于節(jié)省電池電力。

定義如何以及在何種情況下可以配置應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法(或者庫(kù)函數(shù))的折衷功能可以由計(jì)算設(shè)備以各種方式來激活或者以其它方式獲得。特別是,計(jì)算設(shè)備可以利用折衷功能來在初始時(shí)間(例如,在啟動(dòng)時(shí),在加載應(yīng)用時(shí)等)時(shí)建立用于應(yīng)用和/或由該應(yīng)用使用的函數(shù)的初始配置。響應(yīng)于接收到需要對(duì)應(yīng)用和/或復(fù)雜算法進(jìn)行重新配置的用戶輸入,計(jì)算設(shè)備可以或者可以不覆蓋或者以其它方式忽略基于折衷功能的配置集。例如,雖然應(yīng)用初始被配置為利用“低”精度設(shè)置用于特定臉部標(biāo)記算法,但是計(jì)算設(shè)備隨后可以基于指示用戶對(duì)臉部標(biāo)記結(jié)果不高興的用戶輸入,將精度設(shè)置改變?yōu)椤案摺薄4送?,?jì)算設(shè)備可以被配置為基于當(dāng)前用戶滿意度,忽略與在應(yīng)用和/或復(fù)雜算法中應(yīng)當(dāng)創(chuàng)立的配置相反的折衷功能。例如,計(jì)算設(shè)備可以基于指示用戶滿意度的當(dāng)前用戶輸入,來從折衷功能中識(shí)別用于庫(kù)函數(shù)的低精度設(shè)置,僅作為可以被利用或者可以不被利用的建議的配置。

在一些方面中,折衷功能可以由與要被計(jì)算設(shè)備執(zhí)行的應(yīng)用和/或復(fù)雜算法相關(guān)聯(lián)的代碼內(nèi)的指令定義或者激活。換言之,可以經(jīng)由在代碼中指示的提示(例如,編譯指示(即,引起匯編器/解釋器/編譯器過程的預(yù)處理指令))向應(yīng)用、庫(kù)函數(shù)或者其它復(fù)雜算法通知可以被利用的設(shè)置的可能性。可以在編譯時(shí)間(例如,當(dāng)解析、解釋、編譯以及以其它方式加載包括編譯指示的代碼以進(jìn)行執(zhí)行時(shí))識(shí)別(或者以其它方式獲得)這樣的指令。

在一些方面中,可以在運(yùn)行時(shí)間期間經(jīng)由應(yīng)用編程接口(api)調(diào)用來創(chuàng)立折衷功能。例如,線程、進(jìn)程或者其它具備軟件功能的元件可以被配置為基于在給定時(shí)間(例如,初始化或者初始時(shí)間)時(shí)的熱能讀數(shù)和/或可用電池電力,來調(diào)用特定api調(diào)用,以請(qǐng)求或者使用定義的規(guī)則集來限制對(duì)科學(xué)庫(kù)函數(shù)的執(zhí)行。

在一些方面中,計(jì)算設(shè)備可以從與提供應(yīng)用和/或算法配置相關(guān)聯(lián)的專門保留的存儲(chǔ)器位置(被稱為“專用寄存器”)獲得折衷功能數(shù)據(jù)。例如,專用寄存器可以包括用于指示以下內(nèi)容的信息:數(shù)學(xué)算法可以被配置為使用相對(duì)于當(dāng)前設(shè)備溫度和/或電池電力電平的軟/硬實(shí)時(shí)截止期限。

不管如何獲得或者激活用于與應(yīng)用和/或復(fù)雜算法一起使用的折衷功能,都可以通過持續(xù)地評(píng)估與計(jì)算設(shè)備相關(guān)聯(lián)的各種狀況和/或?qū)φ{(diào)用復(fù)雜算法的應(yīng)用的執(zhí)行,來以動(dòng)態(tài)方式利用折衷功能。換言之,可以基于輪詢的或者測(cè)量的變量的當(dāng)前值(例如,計(jì)算設(shè)備的各種操作狀態(tài)),在應(yīng)用的編譯時(shí)間和/或動(dòng)態(tài)地貫穿應(yīng)用的執(zhí)行,對(duì)應(yīng)用和/或復(fù)雜算法的配置進(jìn)行動(dòng)態(tài)地設(shè)置、調(diào)整和/或返回到默認(rèn)設(shè)置。例如,一旦基于使用向量數(shù)學(xué)算法的應(yīng)用的源代碼內(nèi)包括的指令,在編譯時(shí)間建立用于該應(yīng)用的折衷功能,計(jì)算設(shè)備就可以持續(xù)地評(píng)估該計(jì)算設(shè)備的電池電力、與正在執(zhí)行的應(yīng)用相關(guān)聯(lián)的工作負(fù)載、該設(shè)備的熱能(例如,設(shè)備溫度)、和/或其它狀況,以確定是否調(diào)整向量數(shù)學(xué)算法的執(zhí)行的配置(例如,運(yùn)行較慢/較快、使得較不/較為精確或者準(zhǔn)確、在不同核上運(yùn)行等)。作為另一例子,當(dāng)電池被確定為不足時(shí),因?yàn)閿?shù)據(jù)傳送可能需要太多能量,所以計(jì)算設(shè)備可以動(dòng)態(tài)地決定僅在兩個(gè)核(其不包括gpu)上執(zhí)行機(jī)器學(xué)習(xí)算法。換言之,雖然可以以更加靜態(tài)的方式來建立制定出配置要如何被改變的折衷功能,但是基于計(jì)算設(shè)備和/或應(yīng)用的正在進(jìn)行的狀況,對(duì)于是否使用由所建立的折衷功能定義的各種配置或者設(shè)置的觸發(fā)或者輸入是動(dòng)態(tài)的。

在一些方面中,計(jì)算設(shè)備可以對(duì)利用遵循折衷功能的復(fù)雜算法的應(yīng)用的工作負(fù)載進(jìn)行評(píng)估,以確定是否可以在給定時(shí)間時(shí)重新配置應(yīng)用和/或復(fù)雜算法。例如,計(jì)算設(shè)備可以對(duì)要標(biāo)記的圖像數(shù)據(jù)庫(kù)的大小進(jìn)行評(píng)估,并且基于用于該算法的相關(guān)折衷功能,來動(dòng)態(tài)地請(qǐng)求對(duì)于標(biāo)記過程的延遲處理。在一些方面中,可以根據(jù)由于計(jì)算設(shè)備的當(dāng)前可用功率電平和計(jì)算設(shè)備的熱能水平而導(dǎo)致的折衷功能來調(diào)整配置。在一些方面中,可以根據(jù)基于當(dāng)前外部狀況的折衷功能來調(diào)整配置。例如,被插入到外部電源或者被連接到無線路由器(例如,路由器)可以指示較多的電力可用或者計(jì)算設(shè)備正在使用較少的電力(例如,到路由器的傳輸可以使用較少的發(fā)射功率),并且因此,科學(xué)庫(kù)函數(shù)可以被配置有較高的執(zhí)行速度和/或較高的準(zhǔn)確度或者精度配置。

在一些方面中,計(jì)算設(shè)備可以基于如上所述在初始時(shí)間時(shí)被確定為是有效的折衷功能,來調(diào)整應(yīng)用的配置(例如,復(fù)雜算法、科學(xué)函數(shù)的執(zhí)行設(shè)置等)。這樣的調(diào)整可以包括改變用于執(zhí)行應(yīng)用和/或其使用的復(fù)雜算法的準(zhǔn)確度、精度和/或執(zhí)行速度配置。在一些方面中,調(diào)整可以包括將應(yīng)用配置為將復(fù)雜算法和/或應(yīng)用的可執(zhí)行代碼的部分分派給計(jì)算設(shè)備的一個(gè)或多個(gè)核,例如,應(yīng)用處理器核、圖形處理單元(gpu)、數(shù)字信號(hào)處理器(dsp)或者虛擬或者實(shí)際核的任意組合。例如,當(dāng)電力資源是有限的時(shí)(例如,由于折衷的能量約束而導(dǎo)致的等)和/或當(dāng)計(jì)算設(shè)備逐漸變熱時(shí)(例如,由于折衷的能量約束而導(dǎo)致的等),各方面技術(shù)可以使得使用折衷功能的應(yīng)用提供具有較低準(zhǔn)確度的結(jié)果(例如,對(duì)照片進(jìn)行錯(cuò)誤的臉部標(biāo)記或者聚類等)和/或使用不同的核。

在一些方面中,子程序或者其它可執(zhí)行操作可以被配置為從它們相應(yīng)的父應(yīng)用繼承定義準(zhǔn)確度或者精度配置和實(shí)時(shí)要求的折衷功能。例如,如果父應(yīng)用利用允許執(zhí)行時(shí)間的低時(shí)延的折衷功能,那么針對(duì)與父應(yīng)用有關(guān)的科學(xué)函數(shù)、子應(yīng)用的某個(gè)截止期限(例如,硬截止期限、軟截止期限等)和/或高準(zhǔn)確度結(jié)果可以繼承那些相同或者類似的要求。

各個(gè)方面可以提供用于改善對(duì)計(jì)算密集型應(yīng)用(例如,利用復(fù)雜算法或者科學(xué)計(jì)算庫(kù)的應(yīng)用)的使用的有益技術(shù)。例如,通過減慢計(jì)算和/或降低計(jì)算的準(zhǔn)確度來進(jìn)行折衷的配置可以使得計(jì)算設(shè)備能夠根據(jù)用戶的當(dāng)前滿意度和/或各種操作狀況(例如,較低電池、熱的設(shè)備溫度等)來持續(xù)操作應(yīng)用。以此方式,對(duì)復(fù)雜算法/應(yīng)用的執(zhí)行的用戶反應(yīng)可以被用于持續(xù)地配置隨后的執(zhí)行,以便對(duì)設(shè)備的性能(例如,使用的電力、完成任務(wù)的時(shí)間、使用的組件、結(jié)果的準(zhǔn)確度、結(jié)果的精度等)與可接受的用戶體驗(yàn)進(jìn)行平衡。

可能存在傳統(tǒng)的技術(shù),其關(guān)于對(duì)計(jì)算設(shè)備上的程序的執(zhí)行對(duì)操作系統(tǒng)或者硬件設(shè)置(例如,頻率、電源、時(shí)鐘速度、功耗和資源分配(例如,無線單元激活/使用等))進(jìn)行調(diào)整。然而,這些傳統(tǒng)的技術(shù)不同于本文中公開的對(duì)應(yīng)用和/或由該應(yīng)用利用的軟件(例如,庫(kù)函數(shù)等)進(jìn)行配置的各方面技術(shù)。換言之,這些方面技術(shù)調(diào)整應(yīng)用設(shè)置,而非硬件或者系統(tǒng)設(shè)置,以便關(guān)于準(zhǔn)確度/精度、執(zhí)行速度等達(dá)到對(duì)應(yīng)用的用戶可接受體驗(yàn)。例如,各方面技術(shù)可以基于解釋的對(duì)科學(xué)函數(shù)的先前調(diào)用的用戶滿意度,來對(duì)應(yīng)用如何使用科學(xué)函數(shù)進(jìn)行改變(例如,按雙倍、兩雙(double-double)的精度等)。作為另一例子,這些方面技術(shù)可以被用于對(duì)應(yīng)用如何指派對(duì)科學(xué)函數(shù)的不同部分的執(zhí)行進(jìn)行改變(例如,通過將循環(huán)的部分或者可執(zhí)行代碼的其它部分指派給一個(gè)或多個(gè)處理器或者將循環(huán)或者其它部分設(shè)置為以串行或者并行的方式來執(zhí)行)。作為另一例子,使用這些方面技術(shù),計(jì)算設(shè)備可以將應(yīng)用調(diào)整為被配置為在單個(gè)核上使用庫(kù)函數(shù)的操作的超線程以促進(jìn)對(duì)數(shù)據(jù)的較快預(yù)先取回。

此外,這些方面技術(shù)不同于傳統(tǒng)的技術(shù),這是因?yàn)檫@些方面技術(shù)并不利用或者調(diào)整用戶偏好和/或用戶簡(jiǎn)檔,而是替代地調(diào)整應(yīng)用特定的和/或算法特定的配置。例如,應(yīng)用可以被配置為基于指示來自科學(xué)函數(shù)的先前結(jié)果太不精確的用戶反饋數(shù)據(jù)(例如,指示應(yīng)用進(jìn)行的多個(gè)錯(cuò)誤或者不精確計(jì)算的用戶輸入),對(duì)科學(xué)函數(shù)(例如,矩陣乘法等)利用較低精度的計(jì)算。此外,與被委以識(shí)別對(duì)一般問題的最優(yōu)解決方案的一些傳統(tǒng)技術(shù)不同,這些方面技術(shù)僅利用用戶反饋來改變軟件執(zhí)行,以更好地適應(yīng)用戶的當(dāng)前期望。例如,這些方面技術(shù)并非運(yùn)作為利用專家程序或者解決方案引擎來求解邏輯困境,而是替代地重新配置應(yīng)用,以使得它們的執(zhí)行更好地適合用戶的當(dāng)前滿意度反饋(例如,屏幕上的輕擊、凝視屏幕等)。

這些方面技術(shù)可以使用當(dāng)前的用戶滿意度反饋數(shù)據(jù)(例如,對(duì)應(yīng)用的用戶輸入),以識(shí)別在未來應(yīng)當(dāng)對(duì)應(yīng)用配置進(jìn)行的改變,以改善對(duì)應(yīng)用的執(zhí)行的用戶滿意度。例如,基于測(cè)量的、在(例如,經(jīng)由臉部標(biāo)記函數(shù)調(diào)用)已經(jīng)標(biāo)記有姓名的一批圖像中錯(cuò)誤應(yīng)答的數(shù)量,計(jì)算設(shè)備可以調(diào)整用于應(yīng)用的一個(gè)或多個(gè)面部標(biāo)記準(zhǔn)確度設(shè)置,以使得對(duì)面部標(biāo)記函數(shù)的隨后執(zhí)行可以利用較高精度(但是較慢)的配置。以此方式,計(jì)算設(shè)備確實(shí)可以基于歷史用戶活動(dòng)以及對(duì)應(yīng)用的執(zhí)行的滿意度來識(shí)別如何重新配置執(zhí)行。

以下描述提及了可以基于用戶滿意度并且根據(jù)各個(gè)方面、對(duì)與應(yīng)用相關(guān)聯(lián)的并且由該應(yīng)用執(zhí)行的庫(kù)函數(shù)和/或復(fù)雜算法進(jìn)行的折衷設(shè)置、配置以及其它調(diào)整。例如,以下描述提及了由計(jì)算設(shè)備獲得的、用于由應(yīng)用使用的特定庫(kù)函數(shù)的折衷設(shè)置。然而,應(yīng)當(dāng)意識(shí)到的是,各個(gè)方面技術(shù)可以改變應(yīng)用或者應(yīng)用的部分(即,在計(jì)算設(shè)備上執(zhí)行的軟件或者代碼段)的配置,而不管它們對(duì)復(fù)雜算法或者庫(kù)函數(shù)的使用。因此,對(duì)用于特定庫(kù)函數(shù)、算法、科學(xué)計(jì)算、代碼和/或其它特定功能的配置或設(shè)置的提及僅是說明性的,而非在調(diào)整軟件配置的各方面技術(shù)方面進(jìn)行限制。例如,可以對(duì)整個(gè)應(yīng)用(例如,程序)、應(yīng)用的一部分(例如,應(yīng)用的代碼內(nèi)的循環(huán)等)以及由應(yīng)用調(diào)用的庫(kù)函數(shù)(例如,矩陣乘法運(yùn)算等)的任意組合進(jìn)行與執(zhí)行速度和/或準(zhǔn)確度相關(guān)的配置。

圖2示出了在多核計(jì)算設(shè)備中實(shí)現(xiàn)的并且適于與各個(gè)方面一起使用的架構(gòu)200。架構(gòu)200可以包括用于提供計(jì)算設(shè)備的各種功能的模塊,其包括能夠提供用于指示該設(shè)備的連接和/或操作狀況(例如,被插入到電源插座中,正在被移動(dòng)等)的數(shù)據(jù)的外部數(shù)據(jù)源202(例如,傳感器輸入)。計(jì)算設(shè)備還可以包括可以結(jié)合各種軟件、例程、應(yīng)用和/或指令集執(zhí)行的各個(gè)模塊,例如,行為分析模塊204、運(yùn)動(dòng)狀態(tài)分析(例如,高斯混合模型(gmm)、隱馬爾可夫模型(hmm)等)、聲音分析模塊208(例如,gmm、hmm、人工神經(jīng)網(wǎng)絡(luò)(ann))、視頻和/或圖片分析模塊210(例如,深度卷積網(wǎng)絡(luò)(dcn)、ann等)、機(jī)器學(xué)習(xí)算法212(例如,樸素貝葉斯、邏輯回歸(lr)、支持向量機(jī)(svm)、hmm、gmm/期望最大化(em)、提升(boosting)、ann、dcn等)以及各種復(fù)雜算法(例如,線性代數(shù)程序包(lapack)求解器214、向量數(shù)學(xué)算法216、匯總統(tǒng)計(jì)算法218以及曲線擬合算法220)。架構(gòu)200還可以包括被優(yōu)化用于特定計(jì)算環(huán)境的模塊,例如,被優(yōu)化用于驍龍處理器的線性代數(shù)庫(kù)222(例如,基本線性代數(shù)子程序(blas)等)。這樣的庫(kù)222還可以包括mare模塊224(例如,用于通過利用多核架構(gòu)來優(yōu)化電力和效率的模塊)。各個(gè)組件204-224可以利用可以從如本文描述的各方面折衷功能中受益的復(fù)雜算法。在各個(gè)方面中,架構(gòu)200可以包括還可以從如本文描述的各方面折衷功能和其它配置技術(shù)中受益的各個(gè)其它模塊,例如,與生物分析、視頻游戲或者其它圖形引擎操作等相關(guān)的復(fù)雜算法。

架構(gòu)200還可以包括各個(gè)核,例如,具有不同能力、規(guī)范和/或特性的異構(gòu)核226。還可以包括硬件加速模塊228。在一些方面中,各個(gè)核226可以被用于執(zhí)行如在相關(guān)折衷功能中設(shè)置的和/或以其它方式基于用戶反饋而配置的、與上述模塊204-224相關(guān)的操作。

圖3示出了根據(jù)各個(gè)方面的示例性折衷功能架構(gòu)302。折衷功能架構(gòu)302可以是可以定義用于應(yīng)用或者復(fù)雜算法(例如,特定庫(kù)函數(shù)、科學(xué)計(jì)算等)的不同配置或者設(shè)置的數(shù)據(jù)結(jié)構(gòu)、邏輯單元、指令或者其它存儲(chǔ)的信息。在各個(gè)方面中,折衷功能架構(gòu)302可以是預(yù)先定義的,并且經(jīng)由用戶/開發(fā)人員輸入(例如,api調(diào)用、編譯指示等)激活的,或者替代地可以是基于這樣的輸入而生成的。

折衷功能架構(gòu)302可以包括、存儲(chǔ)、利用諸如以下各項(xiàng)之類的折衷變量304和/或以其它方式與其相關(guān)聯(lián):用于準(zhǔn)確度的變量306(例如,當(dāng)前準(zhǔn)確度設(shè)置、高準(zhǔn)確度設(shè)置、較低準(zhǔn)確度設(shè)置等)、用于能量的變量308(即,上取整電池能量值、下取整電池能量值等)、用于性能的變量310(例如,當(dāng)前執(zhí)行或者運(yùn)行時(shí)間速度、較低執(zhí)行速度設(shè)置、高執(zhí)行速度設(shè)置等)以及用于電力的變量312(即,上取整熱功率值、下取整熱功率值等)。折衷功能架構(gòu)302可以包括、存儲(chǔ)、利用包括以下各項(xiàng)的決策時(shí)間模塊數(shù)據(jù)314和/或以其它方式與其相關(guān)聯(lián):可以指示折衷功能構(gòu)架302可以如何被創(chuàng)立、激活和/或以其它方式調(diào)整的編譯時(shí)間數(shù)據(jù)316(即,靜態(tài)數(shù)據(jù))和/或運(yùn)行時(shí)間數(shù)據(jù)318(即,潛在動(dòng)態(tài)數(shù)據(jù))。折衷功能架構(gòu)302可以包括、存儲(chǔ)、利用接口模式數(shù)據(jù)320(例如,指令數(shù)據(jù)322、api數(shù)據(jù)324和硬件寄存器326)和/或以其它方式與其相關(guān)聯(lián),接口模式數(shù)據(jù)320可以指示折衷功能構(gòu)架302可以被調(diào)整和/或被激活的方式。

圖4示出了適于與各個(gè)方面一起使用的示例性指令(或者“編譯指示”)的集合400。這樣的指令可以由計(jì)算設(shè)備在編譯時(shí)間使用,例如,當(dāng)在編譯期間利用源代碼來生成用于在計(jì)算設(shè)備上使用的可執(zhí)行文件時(shí)。通常,傳統(tǒng)的編譯指示或者其它類似的指令可以是開發(fā)人員插入到其它代碼內(nèi)以便為編譯器或者計(jì)算設(shè)備的其它處理系統(tǒng)提供提示或者指示的代碼、文本和/或其它信息。傳統(tǒng)的編譯指示可以直接地控制編譯時(shí)間操作和結(jié)果。例如,當(dāng)示例性傳統(tǒng)編譯指示指出可執(zhí)行文件的某段將被調(diào)整時(shí),計(jì)算設(shè)備將相應(yīng)地調(diào)整功能。

與傳統(tǒng)指令不同,一些方面技術(shù)可以利用非單方面地確定計(jì)算設(shè)備最終可以進(jìn)行操作的方式的指令。相反,如在一些方面技術(shù)中使用的指令可以僅建議針對(duì)應(yīng)用和/或復(fù)雜算法的操作或者配置的偏好,其可以被與計(jì)算設(shè)備相關(guān)的其它狀況的評(píng)估所覆蓋。換言之,如在一些方面技術(shù)中使用的指令可以指示可應(yīng)用于各個(gè)應(yīng)用和/或復(fù)雜算法的折衷功能,其可以被或者可以不被在計(jì)算設(shè)備上執(zhí)行的應(yīng)用使用。例如,如與各方面技術(shù)一起使用的編譯指示可以指向用戶可能更喜歡在給定時(shí)間時(shí)被用于特定庫(kù)函數(shù)的特定折衷功能(或者規(guī)則集),然而,計(jì)算設(shè)備可以基于實(shí)時(shí)評(píng)估的動(dòng)態(tài)系統(tǒng)狀態(tài)變量,來利用不同的折衷設(shè)置用于庫(kù)函數(shù)。換言之,一些方面技術(shù)可以利用編譯指示作為要使用的一種可能輸入,來告訴系統(tǒng)以下內(nèi)容:系統(tǒng)應(yīng)當(dāng)使用何種折衷方案用于一些應(yīng)用和/或復(fù)雜算法。

以下是對(duì)在圖4中示出的示例性編譯指示的集合400的描述,該編譯指示的集合400可以被用于配置由在計(jì)算設(shè)備上執(zhí)行的應(yīng)用使用的復(fù)雜算法。集合400中的每個(gè)示例性編譯指示402-410可以包括:用于指示其是建議的或者優(yōu)選的指令的關(guān)鍵詞(例如,“#pragma(編譯指示)”)、用于指示由編譯指示提出的目標(biāo)復(fù)雜算法(或者庫(kù)函數(shù))的自變量(例如,“scientific_library(科學(xué)庫(kù))”)、目標(biāo)復(fù)雜算法的特性(例如,“deadline(截止期限)”)、以及用于指示針對(duì)該特性的配置的偏好的關(guān)鍵詞(例如,“hardreal-time(硬實(shí)時(shí))”等)。示例性的編譯指示的集合400可以包括:用于指示針對(duì)要被執(zhí)行以使得其具有硬實(shí)時(shí)截止期限的科學(xué)庫(kù)算法的編譯時(shí)間偏好的第一編譯指示402、用于指示針對(duì)要被執(zhí)行以使得其具有軟實(shí)時(shí)截止期限的科學(xué)庫(kù)算法的編譯時(shí)間偏好的第二編譯指示404、用于指示針對(duì)要被執(zhí)行以使得其可以機(jī)會(huì)性地節(jié)省電池電力(在合適的情況下)的科學(xué)庫(kù)算法的編譯時(shí)間偏好的第三編譯指示406、用于指示針對(duì)要以15秒的截止期限來被執(zhí)行的科學(xué)庫(kù)算法的編譯時(shí)間偏好的第四編譯指示408、以及用于指示針對(duì)要以10分鐘的截止期限來被執(zhí)行的科學(xué)庫(kù)算法的編譯時(shí)間偏好的第五編譯指示410。

圖5示出了適于與各個(gè)方面一起使用的示例性應(yīng)用編程接口(api)調(diào)用的集合500。與以上參照?qǐng)D4描述的示例性編譯指示不同,這樣的api調(diào)用可以實(shí)現(xiàn)對(duì)用于在計(jì)算設(shè)備上執(zhí)行的應(yīng)用和/或復(fù)雜算法的各種折衷功能的實(shí)時(shí)調(diào)用。作為說明,與科學(xué)庫(kù)相關(guān)聯(lián)的標(biāo)量功能可以利用第一行501a來發(fā)起,并且任務(wù)分派器例程可以與用于行501b中的科學(xué)庫(kù)的調(diào)度器相關(guān)聯(lián)。集合500中的每個(gè)api調(diào)用502-510可以示出經(jīng)由任務(wù)分派器的不同調(diào)用以使得不同的折衷被實(shí)時(shí)地請(qǐng)求。示例性集合500可以包括用于強(qiáng)制與標(biāo)量功能相關(guān)的硬實(shí)時(shí)截止期限的第一api調(diào)用502、用于強(qiáng)制與標(biāo)量功能相關(guān)的軟實(shí)時(shí)截止期限的第二api調(diào)用504、用于強(qiáng)制與標(biāo)量功能相關(guān)的軟機(jī)會(huì)性電池節(jié)能裝置截止期限的第三api調(diào)用506、用于強(qiáng)制與標(biāo)量功能相關(guān)的第一數(shù)字截止期限(例如,15秒)的第四api調(diào)用508、以及用于強(qiáng)制與標(biāo)量功能相關(guān)的第二數(shù)字截止期限(例如,600秒)的第五api調(diào)用510。

在以上參照?qǐng)D4-5描述的例子中,計(jì)算設(shè)備被配置為利用與截止期限(或者執(zhí)行速度)相關(guān)的折衷用于由在計(jì)算設(shè)備上執(zhí)行的應(yīng)用利用的復(fù)雜算法。然而,在這些方面技術(shù)的其它可能實(shí)現(xiàn)方式中,折衷功能可以提出由應(yīng)用執(zhí)行的復(fù)雜算法的準(zhǔn)確度和/或精度配置。例如,類似于截止期限,可以通過api或者通過設(shè)置硬件寄存器來將準(zhǔn)確度期望提供為指令。例如,編譯指示可以被用于指示關(guān)于應(yīng)用而言庫(kù)函數(shù)(例如,用于乘以矩陣的復(fù)雜算法、向量乘法等)被優(yōu)選為以高準(zhǔn)確度、粗準(zhǔn)確度和/或特別高準(zhǔn)確度來執(zhí)行(例如,雙倍準(zhǔn)確度、兩雙倍準(zhǔn)確度等)。

圖6a示出了用于計(jì)算設(shè)備如在折衷功能中定義地并且基于評(píng)估的當(dāng)前狀況來調(diào)整在計(jì)算設(shè)備上執(zhí)行的應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的配置的一方面方法600。在各個(gè)方面中,方面600可以由計(jì)算設(shè)備執(zhí)行,以基于相關(guān)聯(lián)的折衷功能來對(duì)一種或多種復(fù)雜算法(以下被簡(jiǎn)單地稱為庫(kù)函數(shù))進(jìn)行調(diào)整。這樣的調(diào)整(即,“折衷”)可以在調(diào)用一種或多種復(fù)雜算法的應(yīng)用的執(zhí)行期間持續(xù)地進(jìn)行。例如,可以在對(duì)向量數(shù)學(xué)庫(kù)函數(shù)的每次調(diào)用的執(zhí)行之前進(jìn)行折衷。

在框602中,計(jì)算設(shè)備的處理器可以開始執(zhí)行(例如,編譯時(shí)間、運(yùn)行時(shí)間)利用特定庫(kù)函數(shù)的應(yīng)用。例如,并且如上所述,應(yīng)用可以是社交媒體應(yīng)用、視頻游戲應(yīng)用或者可以對(duì)需要大量的計(jì)算資源的庫(kù)(例如,線性代數(shù)庫(kù)函數(shù)、矩陣數(shù)學(xué)算法等)進(jìn)行內(nèi)部調(diào)用的其它軟件。在框604中,計(jì)算設(shè)備的處理器可以獲得用于應(yīng)用和/或特定庫(kù)函數(shù)(例如,api調(diào)用、代碼中指令、專用寄存器值等)的折衷設(shè)置。換言之,計(jì)算設(shè)備可以獲得用于應(yīng)用和/或庫(kù)函數(shù)的折衷功能(或者多種折衷功能或者多種折衷設(shè)置),其指示用于調(diào)整計(jì)算設(shè)備的應(yīng)用和/或庫(kù)函數(shù)的配置的各個(gè)變量、值和數(shù)據(jù)(例如,相對(duì)于功率電平的執(zhí)行速度、相對(duì)于熱能的執(zhí)行速度、相對(duì)于功率電平的準(zhǔn)確度、相對(duì)于熱能的準(zhǔn)確度等)。例如,計(jì)算設(shè)備可以在應(yīng)用的運(yùn)行時(shí)間期間經(jīng)由應(yīng)用編程接口(api)獲得用于應(yīng)用的第一折衷設(shè)置,經(jīng)由代碼中指令獲得用于應(yīng)用的第二折衷設(shè)置,和/或經(jīng)由專用寄存器獲得用于應(yīng)用的第三折衷設(shè)置。在各個(gè)方面中,庫(kù)函數(shù)可以與機(jī)器學(xué)習(xí)算法、復(fù)雜數(shù)學(xué)算法、音頻分析算法、圖形處理算法和圖像分析算法相關(guān)聯(lián)。

在框606中,計(jì)算設(shè)備的處理器可以評(píng)估在給定時(shí)間時(shí)的與計(jì)算設(shè)備相關(guān)聯(lián)的各種狀況。以下描述關(guān)于框606中的操作的額外細(xì)節(jié)。在一些方面中,給定時(shí)間可以是被指定用于建立應(yīng)用和/或庫(kù)函數(shù)的初始配置的初始時(shí)間,例如,執(zhí)行應(yīng)用或者庫(kù)函數(shù)的第一時(shí)間。

在確定框614中,計(jì)算設(shè)備的處理器可以基于各種評(píng)估來確定是否需要進(jìn)行對(duì)應(yīng)用和/或庫(kù)函數(shù)(或者“折衷”)的調(diào)整。例如,計(jì)算設(shè)備可以基于所評(píng)估的在初始時(shí)間時(shí)的與計(jì)算設(shè)備相關(guān)聯(lián)的狀況,來確定多個(gè)獲得的折衷設(shè)置中的折衷設(shè)置是否將被用于調(diào)整應(yīng)用和/或庫(kù)函數(shù)的初始配置。響應(yīng)于基于各種評(píng)估而確定不需要進(jìn)行折衷(即,確定框614=“否”),在可選框622中,計(jì)算設(shè)備的處理器可以將應(yīng)用和/或特定庫(kù)函數(shù)返回到默認(rèn)設(shè)置??蛇x框622中的操作可以是可選的,因?yàn)閼?yīng)用和/或庫(kù)函數(shù)可能已經(jīng)被配置為以其默認(rèn)設(shè)置來進(jìn)行操作。響應(yīng)于基于各種評(píng)估而確定需要進(jìn)行折衷(即,確定框614=“是”),在框618中,計(jì)算設(shè)備的處理器可以基于所獲得的折衷設(shè)置,來調(diào)整應(yīng)用和/或庫(kù)函數(shù)的配置。以下描述關(guān)于框618中的操作的額外細(xì)節(jié)。

響應(yīng)于執(zhí)行框618或者622的操作中的任何操作,在框624中,計(jì)算設(shè)備的處理器可以執(zhí)行包括對(duì)特定庫(kù)函數(shù)的任何調(diào)用的應(yīng)用。計(jì)算設(shè)備可以繼續(xù)框606中的評(píng)估操作。

圖6b示出了用于計(jì)算設(shè)備基于評(píng)估的當(dāng)前狀況來利用折衷功能的一方面方法650。方法650類似于以上參照?qǐng)D6a描述的方法600,除了方法650包括用于計(jì)算設(shè)備可以評(píng)估各種狀況并且基于各種評(píng)估來調(diào)整用于應(yīng)用和/或相關(guān)聯(lián)的復(fù)雜算法(或者庫(kù)函數(shù))的配置的方式的詳細(xì)操作之外。

框602-604的操作可以與以上參照?qǐng)D6a描述的類似編號(hào)的框的操作相類似。在可選框652中,計(jì)算設(shè)備的處理器可以例如通過確定可以在某個(gè)時(shí)間段、排隊(duì)的作業(yè)等內(nèi)進(jìn)行的對(duì)特定庫(kù)函數(shù)和/或其它函數(shù)的調(diào)用的數(shù)量,來評(píng)估整個(gè)應(yīng)用的工作負(fù)載。在一些方面中,這樣的評(píng)估可以發(fā)生在初始時(shí)間,例如,當(dāng)應(yīng)用和/或庫(kù)函數(shù)首次被計(jì)算設(shè)備使用時(shí)。

在可選框654中,計(jì)算設(shè)備的處理器可以評(píng)估影響工作負(fù)載的處理的外部狀況,例如,計(jì)算設(shè)備是否被插入到電源中和/或被連接到無線路由器(例如,路由器)。在可選框656中,計(jì)算設(shè)備的處理器可以例如通過輪詢被耦合到處理器的可再充電電池的當(dāng)前電池電平,來評(píng)估該設(shè)備的可用功率電平。

在可選框658中,計(jì)算設(shè)備的處理器可以例如通過輪詢被耦合到處理器的熱敏電阻或者其它溫度傳感器以識(shí)別當(dāng)前設(shè)備溫度和/或特定設(shè)備單元溫度(例如,核溫度等),來評(píng)估該設(shè)備的熱能水平。在確定框614中,如以上針對(duì)參照?qǐng)D6a的類似編號(hào)的框描述的,計(jì)算設(shè)備的處理器可以基于各種評(píng)估來確定是否需要進(jìn)行折衷。

響應(yīng)于基于各種評(píng)估而確定需要進(jìn)行折衷(即,確定框614=“是”),計(jì)算設(shè)備的處理器可以執(zhí)行可選框660-664中的操作中的任何或者所有操作。特別是,在可選框660中,計(jì)算設(shè)備的處理器可以將應(yīng)用和/或特定庫(kù)函數(shù)的執(zhí)行分派(例如,重新指派或者傳送)給輔助處理器。另外地或者替代地,在可選框662中,計(jì)算設(shè)備的處理器可以基于所獲得的折衷設(shè)置,調(diào)整應(yīng)用和/或特定庫(kù)函數(shù)的準(zhǔn)確度配置和/或精度配置。在可選框664中,計(jì)算設(shè)備的處理器可以基于所獲得的折衷設(shè)置,調(diào)整應(yīng)用和/或特定庫(kù)函數(shù)的執(zhí)行速度(或者運(yùn)行時(shí)間)。響應(yīng)于執(zhí)行可選框660-664或者可選框622的操作中的任何操作,計(jì)算設(shè)備的處理器可以在框624中執(zhí)行包括對(duì)特定庫(kù)函數(shù)的任何調(diào)用的應(yīng)用,并且繼續(xù)可選框652中的評(píng)估操作。

如上所述,計(jì)算設(shè)備可以被配置為高效地調(diào)整應(yīng)用和/或由該應(yīng)用利用的復(fù)雜算法的特性或者配置、以及可以被指派來執(zhí)行應(yīng)用和/或算法的部分(也被稱為計(jì)算負(fù)載或者計(jì)算內(nèi)核)的目標(biāo)處理核。這樣的高效的調(diào)整以及對(duì)由應(yīng)用調(diào)用的計(jì)算負(fù)載的分發(fā)可能需要各條信息。例如,計(jì)算設(shè)備可以利用硬件的穩(wěn)態(tài)特性和能力數(shù)據(jù)(例如,關(guān)于異構(gòu)核和/或存儲(chǔ)器的類型、數(shù)量、用途等的數(shù)據(jù))、用于各個(gè)應(yīng)用的復(fù)雜算法的可接受操作參數(shù)(例如,截止期限/執(zhí)行速度、精度水平、準(zhǔn)確度水平等)、硬件資源的當(dāng)前(或者暫態(tài))狀態(tài)(即,異構(gòu)核的用途或者可用性等)、和/或關(guān)于應(yīng)用在執(zhí)行或者請(qǐng)求復(fù)雜算法(例如,由應(yīng)用調(diào)用的計(jì)算內(nèi)核)的執(zhí)行時(shí)的資源使用的歷史數(shù)據(jù)(例如,緩存缺失、存儲(chǔ)器訪問模式、帶寬利用率、例外以及分支頻率等)。在一些方面中,與應(yīng)用和/或由該應(yīng)用使用的特定復(fù)雜算法的執(zhí)行相關(guān)聯(lián)的資源使用數(shù)據(jù)可以被提供給資源歷史子系統(tǒng)。利用這樣的信息,應(yīng)用和/或復(fù)雜算法可以例如通過計(jì)算設(shè)備內(nèi)的調(diào)度器和負(fù)載分發(fā)器功能被調(diào)整和/或指派給不同的異構(gòu)核。

圖7a示出了基本模塊架構(gòu)700,其可以由計(jì)算設(shè)備用于實(shí)現(xiàn)各個(gè)方面技術(shù),例如,用于調(diào)整、指導(dǎo)以及調(diào)度應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的執(zhí)行的功能。這樣的模塊架構(gòu)700可以包括用于為計(jì)算設(shè)備提供數(shù)據(jù)(例如,基線)以決定如何、何時(shí)和/或在何處執(zhí)行應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法(還被稱為“計(jì)算內(nèi)核”)的各個(gè)模塊。換言之,模塊架構(gòu)700的模塊可以被用于識(shí)別計(jì)算設(shè)備可以如何調(diào)整用于執(zhí)行應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的精度、準(zhǔn)確度、執(zhí)行速度和/或目標(biāo)核。

模塊架構(gòu)700可以包括:系統(tǒng)靜態(tài)信息模塊702,其被配置為提供關(guān)于硬件的信息(例如,存儲(chǔ)器帶寬、不同核的頻率等);應(yīng)用信息模塊704,其被配置為提供用于指示針對(duì)特定應(yīng)用的要求的數(shù)據(jù)(例如,多快需要結(jié)果、要求結(jié)果多準(zhǔn)確等);以及系統(tǒng)暫態(tài)信息模塊710,其被配置為提供用于指示多少處理器(或者核)資源當(dāng)前正在由計(jì)算設(shè)備支持的其它進(jìn)程使用、多少存儲(chǔ)器帶寬正在被使用等的數(shù)據(jù)。模塊架構(gòu)700還可以包括調(diào)度器和負(fù)載分發(fā)器模塊712,其可以利用來自模塊702-710的各種信息來選擇要向其指派由在系統(tǒng)中執(zhí)行的應(yīng)用調(diào)用的復(fù)雜算法(或者計(jì)算內(nèi)核)的處理核。在執(zhí)行期間,應(yīng)用可以將關(guān)于要被執(zhí)行的復(fù)雜算法的信息提交給調(diào)度和負(fù)載分發(fā)器模塊712,其進(jìn)而可以查詢模塊702-710以識(shí)別應(yīng)當(dāng)向其發(fā)送工作負(fù)載的處理核和/或應(yīng)當(dāng)如何執(zhí)行工作負(fù)載(例如,經(jīng)調(diào)整的準(zhǔn)確度/精度等)。

模塊架構(gòu)700還可以包括應(yīng)用計(jì)算內(nèi)核模塊714,其可以是以應(yīng)用的庫(kù)和其它功能為基礎(chǔ)的代碼。換言之,應(yīng)用計(jì)算內(nèi)核模塊714可以是要被提交給各個(gè)核以用于執(zhí)行的復(fù)雜算法的指令。此外,計(jì)算設(shè)備可以包括各個(gè)異構(gòu)核716,其可以是可以經(jīng)由調(diào)度器和負(fù)載分發(fā)器模塊712向其指派各種工作負(fù)載的一個(gè)或多個(gè)處理單元,例如,應(yīng)用處理器、圖形處理單元(gpu)、數(shù)字信號(hào)處理器(dsp)、和/或其它處理單元。

在一些方面中,應(yīng)用信息模塊704可以包括適于實(shí)現(xiàn)關(guān)于應(yīng)用的復(fù)雜算法的機(jī)器學(xué)習(xí)功能的精度要求學(xué)習(xí)器模塊706和/或?qū)崟r(shí)要求學(xué)習(xí)器模塊708。精度要求學(xué)習(xí)器模塊706可以被配置為存儲(chǔ)、獲得以及以其它方式利用在計(jì)算設(shè)備處接收的數(shù)據(jù),以學(xué)習(xí)用戶針對(duì)由在計(jì)算設(shè)備上執(zhí)行的應(yīng)用利用的各種復(fù)雜算法的優(yōu)選的、要求的或者期望的精度或者準(zhǔn)確度設(shè)置。類似地,實(shí)時(shí)要求學(xué)習(xí)器模塊708可以利用數(shù)據(jù)來學(xué)習(xí)針對(duì)復(fù)雜算法要求的截止期限或者要求的(或者期望的)執(zhí)行速度??梢栽谀K706-708處使用從用戶接收的信息(例如,接收的用戶輸入的定時(shí)、用戶輸入是否完全是響應(yīng)于提示而接收的、以及指示用戶正在如何對(duì)各個(gè)核上的應(yīng)用(并且因此它們相關(guān)聯(lián)的各種復(fù)雜算法)的執(zhí)行進(jìn)行響應(yīng)的其它數(shù)據(jù))。此外,可以基于持續(xù)觀察到的、相對(duì)于應(yīng)用和/或復(fù)雜算法的執(zhí)行的用戶輸入,隨時(shí)間對(duì)這樣的數(shù)據(jù)進(jìn)行覆蓋、更新和/或調(diào)整。例如,隨著時(shí)間的進(jìn)行,由精度要求學(xué)習(xí)器模塊706利用的數(shù)據(jù)可以與不耐煩的用戶輸入(例如,在執(zhí)行復(fù)雜算法時(shí),在觸摸屏上的多次輕擊)一致,所述不耐煩的用戶輸入可以指示用戶要求或者期望針對(duì)臉部標(biāo)記算法的較快執(zhí)行速度。

在一些方面中,由模塊706-708利用的學(xué)習(xí)功能還可以利用如上所述的折衷功能或者邏輯單元。例如,api調(diào)用、專用寄存器和/或內(nèi)嵌指令可以被用于控制由模塊706-708在確定用戶正在如何對(duì)各個(gè)應(yīng)用和/或復(fù)雜算法的當(dāng)前執(zhí)行進(jìn)行響應(yīng)時(shí)使用的參數(shù)。

圖7b示出了用于計(jì)算設(shè)備基于用戶響應(yīng)來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的配置的一般方面方法750。方法750可以由計(jì)算設(shè)備執(zhí)行,以基于隨著時(shí)間接收的用戶輸入來對(duì)應(yīng)用和/或一種或多種復(fù)雜算法(以下被簡(jiǎn)單地稱為庫(kù)函數(shù))進(jìn)行調(diào)整,其中所述用戶輸入暗示應(yīng)用和/或庫(kù)函數(shù)的配置的充分性。換言之,可以基于用戶正在多大程度上容忍應(yīng)用的、遵循其當(dāng)前配置(例如,執(zhí)行速度、精度、準(zhǔn)確度等)或者其庫(kù)函數(shù)的那些配置的性能。如上所述,可以在應(yīng)用的執(zhí)行期間持續(xù)地進(jìn)行這樣的調(diào)整。在一些方面中,應(yīng)用和/或庫(kù)函數(shù)的初始配置可以基于如以上參照?qǐng)D3-6b描述的折衷功能;然而,基于接收的用戶輸入(例如,在“刷新”按鈕上的重復(fù)的觸摸輸入等),計(jì)算設(shè)備可以被配置為重寫或者以其它方式改變由用于應(yīng)用和/或用于各個(gè)庫(kù)函數(shù)的這樣的初始折衷功能定義的配置。

計(jì)算設(shè)備的處理器可以執(zhí)行如以上針對(duì)參照?qǐng)D6a的類似編號(hào)的框描述的框602和624的操作。在框752中,計(jì)算設(shè)備的處理器可以獲得用于指示對(duì)應(yīng)用的性能的用戶響應(yīng)的信號(hào)(例如,觸摸輸入等)。這樣獲得的信號(hào)可以包括以下各項(xiàng)中的一項(xiàng)或者多項(xiàng):在計(jì)算設(shè)備的觸摸屏上的觸摸輸入、按鈕按壓、來自傳感器的數(shù)據(jù)、與另一應(yīng)用的發(fā)起相關(guān)聯(lián)的狀態(tài)改變、應(yīng)用的狀態(tài)的改變(例如,由于用戶已經(jīng)導(dǎo)航離開,所以被暫?;蛘叻胖迷诤笈_(tái)中等)、以及響應(yīng)于在將要期望輸入時(shí)的提示或者情況而對(duì)用戶輸入的缺乏。例如,計(jì)算設(shè)備可以獲得計(jì)算設(shè)備的觸摸屏上的最近的觸摸輸入、文本字段或者表格中的文本輸入或者刪除、搖桿按鈕按壓、對(duì)“刷新”屏幕/應(yīng)用的請(qǐng)求、相機(jī)輸入、麥克風(fēng)輸入、與應(yīng)用和/或其它應(yīng)用的交互等,它們均可以被評(píng)估以識(shí)別用戶是否正在容忍或者以其它方式接受應(yīng)用的當(dāng)前性能(例如,響應(yīng)時(shí)間是否足夠快、應(yīng)用的結(jié)果是否足夠準(zhǔn)確等)。通常,應(yīng)用的性能可以包括與應(yīng)用相關(guān)聯(lián)的以下各項(xiàng)中的至少一項(xiàng):實(shí)現(xiàn)結(jié)果的執(zhí)行速度、結(jié)果的準(zhǔn)確度、以及結(jié)果的精度。

在確定框754中,計(jì)算設(shè)備的處理器可以基于所獲得的信號(hào),來確定用戶是否正在容忍應(yīng)用的性能。例如,可以對(duì)自從應(yīng)用開始操作以來已經(jīng)檢測(cè)到的屏幕上的輕擊的數(shù)量進(jìn)行評(píng)估,以指示用戶是否正在表現(xiàn)出不耐煩、生氣、冷漠等的跡象??梢詫⒃谝粫r(shí)間段內(nèi)接收的輸入的頻率或者檢測(cè)到的輸入的數(shù)量與用于指示用戶的容忍度的預(yù)先定義的門限進(jìn)行比較??梢曰趯?duì)用戶的與計(jì)算設(shè)備的交互的持續(xù)的評(píng)估來隨著時(shí)間更新這樣的門限。在一些方面中,計(jì)算設(shè)備可以使用專用的邏輯單元、軟件、模塊和/或在計(jì)算設(shè)備上執(zhí)行的其它功能(例如,用于分析用戶行為的子系統(tǒng)),來評(píng)估所獲得的信號(hào),并且進(jìn)行關(guān)于用戶的對(duì)性能的容忍度的確定。

響應(yīng)于基于所獲得的信號(hào)而確定用戶正在不容忍應(yīng)用的性能(即,確定框754=“否”),在框756中,計(jì)算設(shè)備的處理器可以調(diào)整應(yīng)用和/或由該應(yīng)用使用的特定庫(kù)函數(shù)的配置,以改善應(yīng)用的隨后性能。例如,并且如以下更詳細(xì)地描述的,計(jì)算設(shè)備可以通過改變用于如由應(yīng)用調(diào)用的庫(kù)函數(shù)的執(zhí)行速度設(shè)置,來調(diào)整用于使用庫(kù)函數(shù)的應(yīng)用的配置。作為另一例子,計(jì)算設(shè)備可以對(duì)與由應(yīng)用使用的向量數(shù)學(xué)算法相關(guān)聯(lián)的精度設(shè)置進(jìn)行調(diào)整以便產(chǎn)生更為精確/準(zhǔn)確的結(jié)果,對(duì)用于計(jì)算函數(shù)的執(zhí)行速度設(shè)置進(jìn)行調(diào)整以便改善針對(duì)應(yīng)用的響應(yīng)時(shí)間(例如,降低延遲),和/或?qū)⑻幚砻芗蛶?kù)調(diào)用配置為在不同的核上執(zhí)行(例如,傳送給dsp、gpu等)。在一些方面中,可以查詢?nèi)缟纤龅恼壑怨δ埽韵蛴?jì)算設(shè)備提供關(guān)于可以對(duì)應(yīng)用和/或庫(kù)函數(shù)如何進(jìn)行調(diào)整或者進(jìn)行多少調(diào)整的見解。

響應(yīng)于基于所獲得的信號(hào)而確定用戶正在容忍應(yīng)用的性能(即,確定框754=“是”),在可選框758中,計(jì)算設(shè)備的處理器可以例如通過將庫(kù)函數(shù)設(shè)置為使用較低的精度(例如,用于計(jì)算的較不精確的浮點(diǎn)設(shè)置等)、較低的執(zhí)行速度(例如,產(chǎn)生結(jié)果的較大延遲),和/或改變?cè)谄渖蠄?zhí)行庫(kù)函數(shù)的處理核,來對(duì)應(yīng)用和/或特定庫(kù)函數(shù)的配置進(jìn)行調(diào)整,以減小(或者降低)應(yīng)用的性能。以此方式,計(jì)算設(shè)備可以嘗試遞增地降低計(jì)算設(shè)備上的由應(yīng)用和/或庫(kù)函數(shù)的配置導(dǎo)致的負(fù)載,直到用戶指示該配置已經(jīng)被降低到用戶的容忍度門限以下為止。

響應(yīng)于執(zhí)行框756或者可選框758中的操作,在框760中,計(jì)算設(shè)備的處理器可以存儲(chǔ)用于指示對(duì)應(yīng)用按先前的配置的性能的用戶響應(yīng)的數(shù)據(jù)(或者獲得的信號(hào))以及其它外部變量(例如,一天中的時(shí)間、同時(shí)在計(jì)算設(shè)備上執(zhí)行的其它應(yīng)用、傳感器輸入等),用于在對(duì)隨后獲得的用戶輸入(或者信號(hào))的隨后評(píng)估中使用。在一些方面中,可以存儲(chǔ)并且使用的其它示例數(shù)據(jù)(例如,觸發(fā))可以是用于指示以下各項(xiàng)的數(shù)據(jù):對(duì)應(yīng)用的用戶行為、當(dāng)應(yīng)用是社交網(wǎng)絡(luò)應(yīng)用時(shí)的用戶數(shù)據(jù)饋送(userdatafeed)、當(dāng)應(yīng)用與健康(或者衛(wèi)生保健)相關(guān)時(shí)的用戶的健康模式、用戶的年齡、性別和/或其它人口統(tǒng)計(jì)信息。以此方式,可以啟用機(jī)器學(xué)習(xí)技術(shù),其在先前經(jīng)驗(yàn)之上持續(xù)地構(gòu)建,以細(xì)化可以被設(shè)置用于應(yīng)用和/或與計(jì)算設(shè)備的應(yīng)用相關(guān)聯(lián)的各種復(fù)雜算法的配置。計(jì)算設(shè)備可以重復(fù)方法750的以在框624中執(zhí)行包括對(duì)特定庫(kù)函數(shù)的任何調(diào)用的應(yīng)用開始的操作。

圖8a示出了用于計(jì)算設(shè)備基于用戶輸入來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的精度配置的一方面方法800。方法800可以與上面描述的方法750類似,除了方法800可以集中于調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法(即,庫(kù)函數(shù))的精度或者準(zhǔn)確度配置之外。例如,響應(yīng)于接收到用于指示用戶不在容忍庫(kù)函數(shù)結(jié)果的準(zhǔn)確度和/或精度的水平(例如,臉部標(biāo)記準(zhǔn)確度)的用戶輸入,計(jì)算設(shè)備可以改變庫(kù)函數(shù)的精度或者準(zhǔn)確度配置,以便導(dǎo)致在應(yīng)用的隨后操作中的更加可接受的臉部標(biāo)記結(jié)果。

計(jì)算設(shè)備的處理器可以執(zhí)行如以上針對(duì)參照?qǐng)D6a的類似編號(hào)的框描述的框602的操作。在框802中,計(jì)算設(shè)備的處理器可以例如通過查詢存儲(chǔ)的與庫(kù)函數(shù)和/或應(yīng)用相關(guān)聯(lián)的數(shù)據(jù),來識(shí)別用于應(yīng)用和/或特定庫(kù)函數(shù)的當(dāng)前精度設(shè)置。如以上針對(duì)參照?qǐng)D6a的類似編號(hào)的框描述的,在框624中,計(jì)算設(shè)備的處理器可以執(zhí)行包括對(duì)特定庫(kù)函數(shù)的任何調(diào)用的應(yīng)用。計(jì)算設(shè)備的處理器可以執(zhí)行如以上針對(duì)參照?qǐng)D7b的類似編號(hào)的框描述的框752中的操作。

在確定框806中,計(jì)算設(shè)備的處理器可以基于所獲得的指示用戶響應(yīng)的信號(hào),來確定用戶是否忽略了應(yīng)用的輸出。例如,計(jì)算設(shè)備可以確定是否在與庫(kù)函數(shù)相關(guān)的結(jié)果的完成以及呈現(xiàn)之后的某個(gè)時(shí)間段內(nèi)接收到了任何用戶響應(yīng)(例如,按鈕點(diǎn)擊等)。忽略這樣的結(jié)果可以指示由于不相關(guān)性或者不準(zhǔn)確性,用戶沒有注意結(jié)果。響應(yīng)于基于所獲得的指示用戶響應(yīng)的信號(hào)而確定用戶還沒有忽略應(yīng)用的輸出(即,確定框806=“否”),在確定框808中,計(jì)算設(shè)備的處理器可以基于所獲得的指示用戶響應(yīng)的信號(hào),來確定用戶是否已經(jīng)校正應(yīng)用的輸出(例如,如經(jīng)由庫(kù)函數(shù)提供的輸出)。例如,計(jì)算設(shè)備可以對(duì)在呈現(xiàn)結(jié)果之后接收的輸入進(jìn)行評(píng)估,以識(shí)別用戶是否已經(jīng)擊中“退格”、“刪除”、提供重寫信息和/或可以被視為對(duì)結(jié)果的校正或者刪除的其它輸入。響應(yīng)于基于所獲得的指示用戶響應(yīng)的信號(hào)而確定用戶還沒有校正應(yīng)用的輸出(即,確定框808=“否”),在可選框812中,計(jì)算設(shè)備的處理器可以例如通過改變存儲(chǔ)的與庫(kù)函數(shù)相關(guān)聯(lián)的設(shè)置或者變量來減小用于應(yīng)用和/或特定庫(kù)函數(shù)的當(dāng)前精度設(shè)置,以指示可以在該函數(shù)的隨后性能中進(jìn)行較便宜的但是較不準(zhǔn)確或者精確的計(jì)算,以便實(shí)現(xiàn)相同的時(shí)間和/或能量。

響應(yīng)于基于所獲得的指示用戶響應(yīng)的信號(hào)而確定用戶已經(jīng)校正應(yīng)用的輸出(即,確定框808=“是”),或者響應(yīng)于確定用戶已經(jīng)忽略該輸出(即,確定框806=“是”),在框810中,計(jì)算設(shè)備的處理器可以例如通過改變存儲(chǔ)的配置變量值來增加用于應(yīng)用和/或特定庫(kù)函數(shù)的當(dāng)前精度設(shè)置,以指示未來的計(jì)算應(yīng)當(dāng)利用較高的精度并且因此需要更多的時(shí)間和/或處理資源。在可選框811中,計(jì)算設(shè)備的處理器可以例如通過改變與應(yīng)用和/或庫(kù)函數(shù)相關(guān)聯(lián)的執(zhí)行核,來改變被用于執(zhí)行應(yīng)用(例如,應(yīng)用的一部分等)和/或特定庫(kù)函數(shù)的處理核。例如,計(jì)算設(shè)備可以改變執(zhí)行核設(shè)置(例如,存儲(chǔ)的變量、標(biāo)志等),以指示庫(kù)函數(shù)的未來執(zhí)行應(yīng)當(dāng)在計(jì)算設(shè)備內(nèi)的不同的和/或特定的核(例如,dsp、gpu等)上處理。

響應(yīng)于執(zhí)行可選框811或者可選框812的操作,在框814中,計(jì)算設(shè)備的處理器可以存儲(chǔ)用于指示對(duì)應(yīng)用按先前的精度設(shè)置的性能的用戶響應(yīng)的數(shù)據(jù)和其它外部變量???14中的操作可以與如以上針對(duì)參照?qǐng)D7b的類似編號(hào)的框描述的框760的操作類似,除了框814中的操作與精度設(shè)置明確地相關(guān)之外。計(jì)算設(shè)備可以重復(fù)方法800的以在框624中執(zhí)行包括對(duì)特定庫(kù)函數(shù)的任何調(diào)用的應(yīng)用開始的操作。

圖8b示出了用于計(jì)算設(shè)備基于用戶輸入來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的精度配置的一方面方法850。方法850與以上參照?qǐng)D8a描述的方法800類似,除了方法850包括指示以下內(nèi)容的操作之外:可以基于用戶輸入來調(diào)整與執(zhí)行應(yīng)用相關(guān)聯(lián)的多個(gè)庫(kù)函數(shù)中的任何庫(kù)函數(shù)。換言之,計(jì)算設(shè)備可以持續(xù)地進(jìn)行對(duì)要調(diào)整的各個(gè)庫(kù)函數(shù)的智能選擇,以便改善用戶的對(duì)應(yīng)用的執(zhí)行的容忍度。在一些方面中,這樣的選擇可以基于預(yù)先定義的列表或者以云為來源的關(guān)于用于改善在應(yīng)用的執(zhí)行期間的用戶的體驗(yàn)的最佳選擇的信息。例如,如果存在對(duì)執(zhí)行同一應(yīng)用的許多設(shè)備上的總體的用戶體驗(yàn)的基于云的訪問,那么計(jì)算設(shè)備可以從云的對(duì)各種用戶體驗(yàn)的詳盡處理中受益,以識(shí)別潛在最有效的調(diào)整。在一些方面中,可以基于(例如,經(jīng)由如本文描述的折衷功能指示的)用戶提示來進(jìn)行選擇。

在框602’中,計(jì)算設(shè)備的處理器可以開始使用(例如,編譯時(shí)間、運(yùn)行時(shí)間)利用多個(gè)庫(kù)函數(shù)的應(yīng)用。在框802’中,計(jì)算設(shè)備的處理器可以識(shí)別用于應(yīng)用和/或多個(gè)庫(kù)函數(shù)中的每個(gè)庫(kù)函數(shù)的當(dāng)前精度設(shè)置。在框624’中,計(jì)算設(shè)備的處理器可以執(zhí)行包括對(duì)多個(gè)庫(kù)函數(shù)的任何調(diào)用的應(yīng)用???02’、802’和624’的操作可以與上面描述的框602、802和624的操作類似,除了框602’、802’和624’是關(guān)于與應(yīng)用相關(guān)聯(lián)地使用的多個(gè)庫(kù)函數(shù)之外。如以上針對(duì)參照?qǐng)D7b的類似編號(hào)的框描述的,在框752中,計(jì)算設(shè)備的處理器可以獲得用于指示對(duì)應(yīng)用的性能的用戶響應(yīng)的信號(hào)(例如,觸摸輸入等)。在框852中,計(jì)算設(shè)備的處理器可以選擇多個(gè)庫(kù)函數(shù)中的一個(gè)庫(kù)函數(shù)。例如,計(jì)算設(shè)備可以利用用于選定要選擇的下一庫(kù)函數(shù)的隊(duì)列、列表或者其它場(chǎng)景。

計(jì)算設(shè)備的處理器可以執(zhí)行如以上針對(duì)參照?qǐng)D8a的類似編號(hào)的框描述的確定框806-808的操作。響應(yīng)于基于用戶輸入而確定用戶已經(jīng)忽略應(yīng)用的輸出(即,確定框806=“是”),或者響應(yīng)于基于用戶輸入而確定用戶已經(jīng)校正應(yīng)用的輸出(即,確定框808=“是”),在可選框854中,計(jì)算設(shè)備的處理器可以重新設(shè)置用于先前選擇的庫(kù)函數(shù)的精度設(shè)置。在框810’中,計(jì)算設(shè)備的處理器可以增加用于所選擇的庫(kù)函數(shù)的當(dāng)前精度設(shè)置???10’的操作與上面描述的框810的那些操作類似,除了計(jì)算設(shè)備可以增加用于多個(gè)庫(kù)函數(shù)中的選擇的一個(gè)庫(kù)函數(shù)的精度設(shè)置。在可選框811’中,計(jì)算設(shè)備的處理器可以改變用于執(zhí)行所選擇的庫(kù)函數(shù)的處理核。可選框811’的操作與上面描述的可選框811的那些操作類似,除了計(jì)算設(shè)備可以改變用于多個(gè)庫(kù)函數(shù)中的選擇的一個(gè)庫(kù)函數(shù)的處理核。

響應(yīng)于確定用戶還沒有校正應(yīng)用的輸出(即,確定框808=“否”),在可選框812’中,計(jì)算設(shè)備的處理器可以減小用于所選擇的庫(kù)函數(shù)的當(dāng)前精度設(shè)置。可選框812’的操作可以是可選的,因?yàn)榫仍O(shè)置可能已經(jīng)處于默認(rèn)或者最低設(shè)置。響應(yīng)于執(zhí)行可選框811’或者可選框812’的操作,計(jì)算設(shè)備可以執(zhí)行如以上針對(duì)參照?qǐng)D8a的類似編號(hào)的框描述的框814的操作,并且通過在框624’中執(zhí)行包括對(duì)特定庫(kù)函數(shù)的調(diào)用的應(yīng)用,來重復(fù)方法850的操作。

圖9a示出了用于計(jì)算設(shè)備基于用戶輸入來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的執(zhí)行速度配置的一方面方法900。在各個(gè)方面中,方法900可以由計(jì)算設(shè)備執(zhí)行,以基于隨著時(shí)間接收的用戶輸入來對(duì)應(yīng)用和/或一種或多種復(fù)雜算法(以下被簡(jiǎn)單地稱為庫(kù)函數(shù))進(jìn)行調(diào)整,其中用戶輸入暗示應(yīng)用和/或庫(kù)函數(shù)的配置的充分性。方法900可以與上面描述的方法800類似,除了方法900提出對(duì)執(zhí)行速度配置的調(diào)整(與精度配置相反)之外。

計(jì)算設(shè)備的處理器可以執(zhí)行如以上針對(duì)參照?qǐng)D6a的類似編號(hào)的框描述的框602的操作。在框902中,計(jì)算設(shè)備的處理器可以識(shí)別用于應(yīng)用和/或特定庫(kù)函數(shù)的當(dāng)前執(zhí)行速度設(shè)置。計(jì)算設(shè)備的處理器可以執(zhí)行如以上針對(duì)參照?qǐng)D6a的類似編號(hào)的框描述的框624的操作,并且執(zhí)行如以上針對(duì)參照?qǐng)D7b的類似編號(hào)的框描述的框752的操作。在確定框904中,計(jì)算設(shè)備的處理器可以基于所獲得的用于指示用戶響應(yīng)的信號(hào),來確定用戶是否已經(jīng)導(dǎo)航離開該應(yīng)用。例如,可以對(duì)用戶輸入進(jìn)行評(píng)估以識(shí)別用戶是否已經(jīng)在圖形元素上點(diǎn)擊,以使得其它應(yīng)用發(fā)起如下的元素:所述元素使得操作系統(tǒng)的關(guān)注點(diǎn)改變到不同的應(yīng)用等。

響應(yīng)于確定用戶已經(jīng)導(dǎo)航離開該應(yīng)用(即,確定框904=“是”),在可選的確定框906中,計(jì)算設(shè)備的處理器可以基于所獲得的用于指示用戶響應(yīng)的信號(hào),來確定用戶是否已經(jīng)導(dǎo)航返回到該應(yīng)用。例如,計(jì)算設(shè)備可以對(duì)觸摸輸入進(jìn)行評(píng)估,以識(shí)別用戶是否在先前已經(jīng)將關(guān)注點(diǎn)切換到另一應(yīng)用之后已經(jīng)點(diǎn)擊返回到該應(yīng)用上。在一些方面中,響應(yīng)于確定用戶已經(jīng)導(dǎo)航返回到該應(yīng)用(即,可選的確定框906=“是”),在可選的確定框907中,計(jì)算設(shè)備的處理器可以確定用戶所花費(fèi)的導(dǎo)航返回到該應(yīng)用的時(shí)間是否超過預(yù)先定義的時(shí)間門限。例如,計(jì)算設(shè)備可以識(shí)別用戶離開該應(yīng)用(例如,使用另一應(yīng)用等)的時(shí)間量,并且將該離開時(shí)間與被建立為用于用戶的對(duì)系統(tǒng)性能的煩惱或者接受的基線的時(shí)間量(例如,秒、毫秒等)進(jìn)行比較。響應(yīng)于確定用戶在導(dǎo)航返回到應(yīng)用之前超過預(yù)先定義的門限,計(jì)算設(shè)備可以確定需要改善應(yīng)用的性能以滿足用戶。

響應(yīng)于確定用戶還沒有導(dǎo)航離開應(yīng)用(即,確定框904=“否”),或者響應(yīng)于確定用戶已經(jīng)導(dǎo)航返回到該應(yīng)用(即,可選的確定框906=“是”),或者響應(yīng)于確定用于用戶導(dǎo)航返回到該應(yīng)用的時(shí)間還沒有超過預(yù)先定義的門限(即,可選的確定框907=“否”),在確定框908中,計(jì)算設(shè)備的處理器可以基于所獲得的信號(hào)或者用戶響應(yīng),來確定用戶是否已經(jīng)按壓刷新(例如,刷新功能)或者重復(fù)地按壓其它按鈕。計(jì)算設(shè)備處理器可以利用用于對(duì)超過正常點(diǎn)擊/輸入的輸入的數(shù)量進(jìn)行評(píng)估的預(yù)先定義的門限,來識(shí)別與典型的使用不一致的交互。

響應(yīng)于確定用戶已經(jīng)按壓刷新或者重復(fù)地按壓其它按鈕(即,確定框908=“是”),或者響應(yīng)于確定用戶還沒有導(dǎo)航返回到應(yīng)用(即,可選的確定框906=“否”),或者響應(yīng)于確定用于用戶導(dǎo)航返回到應(yīng)用的時(shí)間已經(jīng)超過預(yù)先定義的門限(即,可選的確定框907=“是”),在框910中,計(jì)算設(shè)備的處理器可以例如通過設(shè)置與庫(kù)函數(shù)相關(guān)聯(lián)的變量值來增加用于應(yīng)用和/或特定庫(kù)函數(shù)的當(dāng)前執(zhí)行速度設(shè)置。換言之,因?yàn)橛脩艉芸赡懿粷M意當(dāng)前配置,所以可以通過增加執(zhí)行速度來減少執(zhí)行(或者完整執(zhí)行)應(yīng)用的時(shí)間。在可選框811中,計(jì)算設(shè)備的處理器可以改變用于執(zhí)行應(yīng)用和/或特定庫(kù)函數(shù)的核。

響應(yīng)于確定用戶還沒有按壓刷新或者重復(fù)地按壓其它按鈕(即,確定框908=“否”),在可選框912中,計(jì)算設(shè)備的處理器可以減小用于應(yīng)用和/或特定庫(kù)函數(shù)的當(dāng)前執(zhí)行速度設(shè)置。換言之,因?yàn)橛脩艉芸赡軡M意當(dāng)前配置,所以可以通過減小執(zhí)行速度來增加執(zhí)行(或者完整執(zhí)行)應(yīng)用的時(shí)間。當(dāng)應(yīng)用和特定庫(kù)函數(shù)的執(zhí)行速度已經(jīng)處于最小執(zhí)行速度時(shí),可選框912的操作可以是可選的。

響應(yīng)于執(zhí)行可選框911或者可選框912的操作,在框914中,計(jì)算設(shè)備的處理器可以存儲(chǔ)用于指示對(duì)應(yīng)用按先前的執(zhí)行速度設(shè)置的性能的用戶響應(yīng)的數(shù)據(jù)和其它外部變量。計(jì)算設(shè)備的處理器可以執(zhí)行框914的操作,框914的操作與以上參照?qǐng)D7b描述的方法750的框760的那些操作類似,除了框914中的操作與執(zhí)行速度設(shè)置相關(guān)之外。計(jì)算設(shè)備可以重復(fù)方法900的以在框624中執(zhí)行包括對(duì)特定庫(kù)函數(shù)的任何調(diào)用的應(yīng)用開始的操作。

圖9b示出了用于計(jì)算設(shè)備基于用戶輸入來調(diào)整應(yīng)用和/或由該應(yīng)用使用的復(fù)雜算法的執(zhí)行速度配置的一方面方法950。方法950與以上參照?qǐng)D9a描述的方法900類似,除了方法950包括指示以下內(nèi)容的操作之外:可以基于用戶輸入來調(diào)整與執(zhí)行應(yīng)用相關(guān)聯(lián)的多個(gè)庫(kù)函數(shù)中的任何庫(kù)函數(shù)。此外,方法950可以與上面描述的方法850類似,除了方法950提出對(duì)執(zhí)行速度配置的調(diào)整(與精度配置相反)之外。

計(jì)算設(shè)備處理器可以執(zhí)行如以上針對(duì)參照?qǐng)D8b的類似編號(hào)的框描述的框602’的操作。在框902’中,計(jì)算設(shè)備的處理器可以識(shí)別用于應(yīng)用和/或多個(gè)庫(kù)函數(shù)中的每個(gè)庫(kù)函數(shù)的當(dāng)前執(zhí)行設(shè)置???02’的操作可以與上面描述的框902的操作類似,除了框902’是關(guān)于與應(yīng)用相關(guān)聯(lián)地使用的多個(gè)庫(kù)函數(shù)之外。計(jì)算設(shè)備可以執(zhí)行如以上針對(duì)參照?qǐng)D8b的類似編號(hào)的框描述的框624’6a的操作,執(zhí)行如以上參照?qǐng)D7b描述的框752的操作,執(zhí)行如以上參照?qǐng)D8b描述的框852的操作,并且執(zhí)行如以上參照?qǐng)D9a描述的確定框904-908的操作。

響應(yīng)于確定用戶還沒有導(dǎo)航返回到該應(yīng)用(即,可選的確定框906=“否”),或者響應(yīng)于確定用于用戶導(dǎo)航返回到該應(yīng)用的時(shí)間已經(jīng)超過預(yù)先定義的門限(即,可選的確定框907=“是”),或者響應(yīng)于確定用戶已經(jīng)按壓刷新或者重復(fù)地按壓其它按鈕(即,確定框908=“是”),計(jì)算設(shè)備的處理器可以在可選框952中重新設(shè)置用于先前選擇的庫(kù)函數(shù)的當(dāng)前執(zhí)行速度設(shè)置,并且在框910’中減小用于所選擇的庫(kù)函數(shù)的當(dāng)前執(zhí)行速度設(shè)置。換言之,可以執(zhí)行可選框952的可選操作,以便撤銷對(duì)先前選擇的庫(kù)函數(shù)的先前不成功的重配置。在一些方面中,計(jì)算設(shè)備可以簡(jiǎn)單地離開先前的重配置,并且移動(dòng)到下一庫(kù)函數(shù),以嘗試找到用于改善用戶的體驗(yàn)的調(diào)整。在可選框811’中,如以上參照?qǐng)D8b描述的,計(jì)算設(shè)備的處理器可以改變用于執(zhí)行所選擇的庫(kù)函數(shù)的核。

響應(yīng)于確定用戶還沒有按壓刷新或者重復(fù)地按壓其它按鈕(即,確定框908=“否”),在可選框912’中,計(jì)算設(shè)備的處理器可以增加用于所選擇的庫(kù)函數(shù)的當(dāng)前執(zhí)行速度設(shè)置。響應(yīng)于執(zhí)行可選框811’或者可選框912’的操作,在框914中,計(jì)算設(shè)備的處理器可以存儲(chǔ)用于指示對(duì)應(yīng)用按先前的執(zhí)行速度設(shè)置的性能的用戶響應(yīng)的數(shù)據(jù)和其它外部變量。計(jì)算設(shè)備可以重復(fù)方法950的以在框624’中執(zhí)行包括對(duì)特定庫(kù)函數(shù)的任何調(diào)用的應(yīng)用開始的操作。

包括個(gè)人計(jì)算機(jī)和膝上型計(jì)算機(jī)的各種形式的計(jì)算設(shè)備可以被用于實(shí)現(xiàn)各個(gè)方面,包括以上參照?qǐng)D2-9b描述的方面??梢员挥糜趯?shí)現(xiàn)各個(gè)方面的示例膝上型計(jì)算設(shè)備1000包括以上參照?qǐng)D2-9b描述的方面。許多膝上型計(jì)算設(shè)備1000包括觸摸板觸摸表面1014,其充當(dāng)計(jì)算機(jī)的定位設(shè)備,并且因此可以接收與在配備有觸摸屏顯示器的移動(dòng)計(jì)算設(shè)備上實(shí)現(xiàn)的那些相類似的拖拽、滾動(dòng)和輕彈手勢(shì)。這樣的膝上型計(jì)算設(shè)備1000通常包括被耦合到易失性內(nèi)部存儲(chǔ)器1002和大容量非易失性存儲(chǔ)器(例如,硬盤驅(qū)動(dòng)器1006)的處理器1001。膝上型計(jì)算設(shè)備1000還可以包括被耦合到處理器1001的壓縮光盤(cd)和/或dvd驅(qū)動(dòng)器1008。膝上型計(jì)算設(shè)備1000還可以包括被耦合到處理器1001的多個(gè)連接器端口1010,其用于建立數(shù)據(jù)連接或者接收外部存儲(chǔ)器設(shè)備(例如,用于將處理器1001耦合到網(wǎng)絡(luò)的網(wǎng)絡(luò)連接電路)。膝上型計(jì)算設(shè)備1000可以具有用于發(fā)送和接收如本文描述的無線信號(hào)的一個(gè)或多個(gè)短距離無線信號(hào)收發(fā)機(jī)1018(例如,(藍(lán)牙)、(紫蜂)、rf無線單元)以及天線1020。收發(fā)機(jī)1018和天線1020可以與上面提及的電路一起使用來實(shí)現(xiàn)各種無線傳輸協(xié)議棧/接口。在膝上型計(jì)算機(jī)或者筆記本配置中,計(jì)算機(jī)殼體可以包括均被耦合到處理器1001的觸摸板觸摸表面1014、鍵盤1012和顯示器1016。膝上型計(jì)算設(shè)備1000的其它配置可以包括如公知的(例如,經(jīng)由usb輸入)被耦合到處理器的計(jì)算機(jī)鼠標(biāo)或軌跡球,其還可以結(jié)合各個(gè)方面來使用。

在圖11中示出了可以被用于實(shí)現(xiàn)各個(gè)方面(其包括以上參照?qǐng)D2-9b描述的方面)的多核移動(dòng)設(shè)備1100的例子。在各個(gè)方面中,多核移動(dòng)設(shè)備1100可以包括被耦合到觸摸屏控制器1104和內(nèi)部存儲(chǔ)器1102的處理器1101。處理器1101可以是被指定用于一般或特定處理任務(wù)的一個(gè)或多個(gè)多核集成電路(ic)。內(nèi)部存儲(chǔ)器1102可以是易失性或非易失性存儲(chǔ)器,并且還可以是安全的和/或加密的存儲(chǔ)器、或者非安全的和/或非加密的存儲(chǔ)器、或者其任意組合。觸摸屏控制器1104和處理器1101還可以被耦合到觸摸屏面板1112,例如,電阻感測(cè)式觸摸屏、電容感測(cè)式觸摸屏、紅外感測(cè)式觸摸屏等。多核移動(dòng)設(shè)備1100可以具有用于發(fā)送和接收的一個(gè)或多個(gè)無線信號(hào)收發(fā)機(jī)1108(例如,(藍(lán)牙)、(紫蜂)、rf無線單元)和天線1110,其相互耦合和/或耦合到處理器1101。收發(fā)機(jī)1108和天線1110可以與上面提及的電路一起使用,以實(shí)現(xiàn)各種無線傳輸協(xié)議棧和接口。多核移動(dòng)設(shè)備1100可以包括蜂窩網(wǎng)絡(luò)無線調(diào)制解調(diào)器芯片1116,其經(jīng)由蜂窩網(wǎng)絡(luò)實(shí)現(xiàn)通信并且被耦合到處理器。多核移動(dòng)設(shè)備1100可以包括外圍設(shè)備連接接口1118,其被耦合到處理器1101。外圍設(shè)備連接接口1118可以被特別地配置為接受一種類型的連接或者被多樣地配置為接受各種類型的物理和通信連接(公共的或?qū)S械?,例如,usb、firewire(火線)、thunderbolt(雷電)或者pcie。外圍設(shè)備連接接口1118還可以被耦合到類似配置的外圍設(shè)備連接端口(未示出)。多核移動(dòng)設(shè)備1100還可以包括用于提供音頻輸出的揚(yáng)聲器1114。多核移動(dòng)設(shè)備1100還可以包括用于容納本文討論的組件中的所有或者一些組件的殼體1120,其由塑料、金屬或者材料的組合構(gòu)成。多核移動(dòng)設(shè)備1100可以包括被耦合到處理器1101的電源1122,例如,一次性或者可再充電電池??稍俪潆婋姵剡€可以被耦合到外圍設(shè)備連接端口,以從在多核移動(dòng)設(shè)備1100的外部的源接收充電電流。

本文描述的各個(gè)處理器可以是任何可編程微處理器、微計(jì)算機(jī)或者多個(gè)處理器芯片或者多個(gè)芯片,其可以由軟件指令(應(yīng)用)配置為執(zhí)行各種各樣的功能,其包括本文描述的各個(gè)方面的功能。在各個(gè)設(shè)備中,可以提供多個(gè)處理器,例如,專用于無線通信功能的一個(gè)處理器和專用于運(yùn)行其它應(yīng)用的一個(gè)處理器。通常,在訪問軟件應(yīng)用并且將其加載到處理器中之前,可以將軟件應(yīng)用存儲(chǔ)在內(nèi)部存儲(chǔ)器中。處理器可以包括足以存儲(chǔ)應(yīng)用軟件指令的內(nèi)部存儲(chǔ)器。在許多設(shè)備中,內(nèi)部存儲(chǔ)器可以是易失性或非易失性存儲(chǔ)器(例如,閃速存儲(chǔ)器)或者這兩者的混合。出于該描述的目的,對(duì)存儲(chǔ)器的一般提及是指可由處理器訪問的存儲(chǔ)器,其包括內(nèi)部存儲(chǔ)器、被插入到各個(gè)設(shè)備的可移動(dòng)存儲(chǔ)器以及在處理器內(nèi)的存儲(chǔ)器。

前述方法描述和過程流程圖僅是作為說明性例子來提供的,并非旨在要求或者暗示各個(gè)方面的步驟必須以所呈現(xiàn)的次序來執(zhí)行。如本領(lǐng)域技術(shù)人員將意識(shí)到的,可以以任何次序來執(zhí)行前述方面中的步驟的次序。諸如“之后”、“然后”、“接下來”等的詞語并非旨在限制步驟的次序;這些詞語僅被用于引導(dǎo)讀者通讀所述方法的描述。此外,對(duì)單數(shù)形式的權(quán)利要求要素的任何提及(例如,使用冠詞“一(a)”、“一個(gè)(an)”或者“所述(the)”)并不被解釋為將該要素限制為單數(shù)。

結(jié)合本文公開的方面描述的各個(gè)說明性的邏輯框、模塊、電路和算法步驟可以被實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或這二者的組合。為了清楚地說明硬件和軟件的這種可交換性,上文對(duì)各個(gè)說明性的組件、框、模塊、電路和步驟已經(jīng)圍繞其功能進(jìn)行了總體描述。至于這樣的功能是被實(shí)現(xiàn)為硬件還是軟件,取決于特定的應(yīng)用和對(duì)整個(gè)系統(tǒng)施加的設(shè)計(jì)約束。熟練的技術(shù)人員可以針對(duì)每個(gè)特定應(yīng)用,以變通的方式實(shí)現(xiàn)所描述的功能,但是這樣的實(shí)現(xiàn)決策不應(yīng)當(dāng)被解釋為造成對(duì)本發(fā)明的范圍的背離。

利用被設(shè)計(jì)為執(zhí)行本文描述的功能的通用處理器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場(chǎng)可編程門陣列(fpga)或其它可編程邏輯器件、分立門或者晶體管邏輯、分立硬件組件或者其任意組合,可以實(shí)現(xiàn)或執(zhí)行被用于實(shí)現(xiàn)結(jié)合本文公開的方面描述的各個(gè)說明性的邏輯單元、邏輯框、模塊和電路的硬件。通用處理器可以是微處理器,但是在替代方案中,該處理器可以是任何常規(guī)的處理器、控制器、微控制器或者狀態(tài)機(jī)。處理器還可以被實(shí)現(xiàn)為計(jì)算設(shè)備的組合,例如,dsp和微處理器的組合、多個(gè)微處理器、結(jié)合dsp核的一個(gè)或多個(gè)微處理器、或任何其它這樣的配置。替代地,一些步驟或方法可以由特定于給定功能的電路來執(zhí)行。

在一個(gè)或多個(gè)示例性方面中,所描述的功能可以用硬件、軟件、固件、或其任意組合來實(shí)現(xiàn)。如果用軟件來實(shí)現(xiàn),則功能可以被存儲(chǔ)在非暫時(shí)性處理器可讀、計(jì)算機(jī)可讀、或者服務(wù)器可讀介質(zhì)或者非暫時(shí)性處理器可讀存儲(chǔ)介質(zhì)上或者作為其上的一個(gè)或多個(gè)指令或代碼來傳輸。本文公開的方法或算法的步驟可以被體現(xiàn)在處理器可執(zhí)行軟件模塊或者處理器可執(zhí)行軟件指令中,其可以存在于非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、非暫時(shí)性服務(wù)器可讀存儲(chǔ)介質(zhì)和/或非暫時(shí)性處理器可讀存儲(chǔ)介質(zhì)上。在各個(gè)方面中,這樣的指令可以是存儲(chǔ)的處理器可執(zhí)行指令或者存儲(chǔ)的處理器可執(zhí)行軟件指令。有形的、非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以由計(jì)算機(jī)訪問的任何可用介質(zhì)。通過舉例而非限制的方式,這樣的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)可以包括ram、rom、eeprom、cd-rom或其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或者可以被用于存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并且可以被計(jì)算機(jī)訪問的任何其它介質(zhì)。如本文中使用的,磁盤和光盤包括壓縮光盤(cd)、激光光盤、光盤、數(shù)字多功能光盤(dvd)、軟盤和藍(lán)光光盤,其中磁盤通常磁性地復(fù)制數(shù)據(jù),而光盤則利用激光來光學(xué)地復(fù)制數(shù)據(jù)。上述各項(xiàng)的組合也應(yīng)當(dāng)被包括在非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。另外,方法或算法的操作可以作為代碼和/或指令中的一種或任意組合或集合存在于有形的、非暫時(shí)性處理器可讀存儲(chǔ)介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上,其可以被并入到計(jì)算機(jī)程序產(chǎn)品中。

為了使得本領(lǐng)域任何技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明,提供了對(duì)所公開的方面的先前描述。對(duì)于本領(lǐng)域技術(shù)人員而言,對(duì)這些方面的各種修改將是顯而易見的,并且在不背離本發(fā)明的精神或范圍的情況下,本文中定義的總體原理可以被應(yīng)用于其它方面。因此,本發(fā)明并非旨在限于本文中示出的方面,而是要被賦予與所附的權(quán)利要求和本文公開的原理和新穎特征相一致的最寬的范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
白城市| 和田市| 申扎县| 册亨县| 蓝山县| 南汇区| 临汾市| 葵青区| 乌鲁木齐县| 长子县| 叙永县| 都昌县| 澄迈县| 永顺县| 万盛区| 宁乡县| 台前县| 固安县| 榆林市| 武城县| 古田县| 巴彦县| 湘阴县| 靖远县| 方正县| 阿荣旗| 卓资县| 太保市| 扎赉特旗| 新源县| 酒泉市| 星座| 甘德县| 西林县| 汤阴县| 姚安县| 广平县| 深水埗区| 宜良县| 罗江县| 平原县|