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

數(shù)據(jù)優(yōu)化的神經(jīng)網(wǎng)絡(luò)遍歷的制作方法

文檔序號:11952256閱讀:435來源:國知局
數(shù)據(jù)優(yōu)化的神經(jīng)網(wǎng)絡(luò)遍歷的制作方法與工藝

本公開涉及神經(jīng)網(wǎng)絡(luò)。更具體地,本公開涉及神經(jīng)網(wǎng)絡(luò)的執(zhí)行。



背景技術(shù):

神經(jīng)網(wǎng)絡(luò)是指模仿生物大腦的計(jì)算架構(gòu)。在神經(jīng)網(wǎng)絡(luò)內(nèi),被稱為神經(jīng)元的節(jié)點(diǎn)可互相連接并被共同地操作,以處理復(fù)雜的輸入數(shù)據(jù)。不同類型的神經(jīng)網(wǎng)絡(luò)的示例包括卷積神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)、深度信念網(wǎng)絡(luò)(Deep Belief Networks)、受限玻爾茲曼機(jī)(Restricted Boltzman Machines)等,但不限于此。在前饋神經(jīng)網(wǎng)絡(luò)中,神經(jīng)網(wǎng)絡(luò)的神經(jīng)元鏈接到其他神經(jīng)元。這些鏈接通過神經(jīng)網(wǎng)絡(luò)僅沿一個(gè)方向(即,前向)延伸。

神經(jīng)網(wǎng)絡(luò)可用于從復(fù)雜的輸入數(shù)據(jù)提取“特征”。神經(jīng)網(wǎng)絡(luò)可包括多個(gè)層。每個(gè)層可接收輸入數(shù)據(jù)并通過處理到該層的輸入數(shù)據(jù)而產(chǎn)生輸出數(shù)據(jù)。輸出數(shù)據(jù)可以是神經(jīng)網(wǎng)絡(luò)通過利用卷積核對輸入圖像或特征映射(feature map)進(jìn)行卷積而產(chǎn)生的輸入數(shù)據(jù)的特征映射。神經(jīng)網(wǎng)絡(luò)的初始層(例如,卷積層)可被操作為從輸入(諸如圖像)提取低層特征(諸如邊緣和/或梯度)。神經(jīng)網(wǎng)絡(luò)的初始層也被稱為特征提取層。神經(jīng)網(wǎng)絡(luò)的后續(xù)層(被稱為特征分類層)可提取或檢測逐漸更復(fù)雜的特征(諸如眼睛、鼻子等)。特征分類層也被稱為“全連接層”。

可使用外部存儲器來存儲在神經(jīng)網(wǎng)絡(luò)的執(zhí)行期間所產(chǎn)生的大量的中間結(jié)果數(shù)據(jù)。外部存儲器也可被用于存儲在特征分類層中使用的大量權(quán)重。



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

實(shí)施例包括一種執(zhí)行神經(jīng)網(wǎng)絡(luò)的方法。所述方法包括:通過處理到神經(jīng)網(wǎng)絡(luò)的第一層的輸入圖塊產(chǎn)生第一層的輸出圖塊;將第一層的輸出圖塊存儲在處理器的內(nèi)部存儲器中。所述方法還包括:使用處理器通過處理存儲在內(nèi)部存儲器中的第一層的輸出圖塊產(chǎn)生神經(jīng)網(wǎng)絡(luò)的第二層的輸出圖塊。

另一實(shí)施例包括用于執(zhí)行神經(jīng)網(wǎng)絡(luò)的設(shè)備。所述設(shè)備包括:在處理器內(nèi)的內(nèi)部存儲器;在處理器內(nèi)的第一計(jì)算單元,結(jié)合到內(nèi)部存儲器,并且被配置為將可執(zhí)行的操作初始化??蓤?zhí)行的操作包括:通過處理到神經(jīng)網(wǎng)絡(luò)的第一層的輸入圖塊產(chǎn)生第一層的輸出圖塊;將第一層的輸出圖塊存儲在內(nèi)部存儲器中。可執(zhí)行的操作還包括:通過處理存儲在內(nèi)部存儲器中的第一層的輸出圖塊產(chǎn)生神經(jīng)網(wǎng)絡(luò)的下一層的輸出圖塊。

提供本發(fā)明內(nèi)容部分僅為介紹一些構(gòu)思,而不為識別所要求的主題的關(guān)鍵特征或本質(zhì)特征。本發(fā)明的許多其他特征和實(shí)施例將通過附圖和通過以下具體實(shí)施方式而清楚。

附圖說明

附圖示出一個(gè)或多個(gè)實(shí)施例;然而,附圖不應(yīng)被認(rèn)為將本發(fā)明限制于僅僅示出的實(shí)施例。在綜觀以下具體實(shí)施方式并參考附圖后,各種方面和優(yōu)點(diǎn)將變得清楚。

圖1是示出由神經(jīng)網(wǎng)絡(luò)的多個(gè)層進(jìn)行處理的示例的示圖;

圖2是示出由示例神經(jīng)網(wǎng)絡(luò)引擎執(zhí)行的處理的框圖;

圖3是示出利用重疊圖塊對神經(jīng)網(wǎng)絡(luò)進(jìn)行的示例分割的框圖;

圖4-1和圖4-2是示出對神經(jīng)網(wǎng)絡(luò)的進(jìn)一步示例分割的框圖;

圖5是示出執(zhí)行神經(jīng)網(wǎng)絡(luò)的示例方法的流程圖;

圖6是示出確定神經(jīng)網(wǎng)絡(luò)的錐臺(frustum)的示例方法的流程圖;

圖7是示出用于執(zhí)行神經(jīng)網(wǎng)絡(luò)的批處理的示例的示圖;

圖8是示出執(zhí)行神經(jīng)網(wǎng)絡(luò)的示例方法的流程圖;

圖9是示例數(shù)據(jù)處理系統(tǒng)的示圖。

具體實(shí)施方式

雖然本公開以限定新穎的特征的權(quán)利要求書作為總結(jié),但是相信這里描述的各種特征將通過考慮結(jié)合附圖的描述而被更好地理解。為了說明的目的而提供在本公開中描述的過程、機(jī)器、制造和它們的任何變化。所描述的任何具體結(jié)構(gòu)和功能細(xì)節(jié)將不被解釋為限制,而僅作為權(quán)利要求書的基礎(chǔ)和用于教導(dǎo)本領(lǐng)域技術(shù)人員以多種形式采用在幾乎任何適合的具體結(jié)構(gòu)中所描述的特征的代表性基礎(chǔ)。此外,本公開中使用的術(shù)語和短語不意在限制,而用于提供對描述的特征的可理解描述。

本公開涉及神經(jīng)網(wǎng)絡(luò)。更具體地,這里公開的示例實(shí)施例涉及減少存儲器訪問和神經(jīng)網(wǎng)絡(luò)在運(yùn)行期間的網(wǎng)絡(luò)內(nèi)帶寬消耗。根據(jù)這里公開的示例布置,提供用于運(yùn)行神經(jīng)網(wǎng)絡(luò)的方法和系統(tǒng)。這里描述的示例實(shí)施例能促進(jìn)內(nèi)部存儲器的有效使用并減少在神經(jīng)網(wǎng)絡(luò)的運(yùn)行期間執(zhí)行的對外部存儲器或高級高速緩沖存儲器的數(shù)據(jù)訪問量。

例如,這里公開的示例實(shí)施例能在神經(jīng)網(wǎng)絡(luò)的前向運(yùn)行期間減少、消除所有或消除幾乎所有的用于中間結(jié)果的數(shù)據(jù)通信量和相關(guān)的存儲。示例實(shí)施例涉及神經(jīng)網(wǎng)絡(luò)的一個(gè)或多個(gè)階段的執(zhí)行。例如,結(jié)合圖1至圖6描述特征提取層(例如,卷積層)的執(zhí)行。另外或可選地,如結(jié)合圖7和圖8更詳細(xì)地描述的,示例實(shí)施例能消除與神經(jīng)網(wǎng)絡(luò)的全連接層的執(zhí)行有關(guān)的很多(例如,所有的或幾乎所有的)從外部存儲器讀取的參數(shù)和寫入外部存儲器的參數(shù)。如在這里使用的,術(shù)語“全連接層”意思是神經(jīng)網(wǎng)絡(luò)的特征分類層。

減少用于執(zhí)行神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)通信量,從而提高性能并減少確定相同計(jì)算結(jié)果(例如,無近似)所需的電力。通過減少從外部存儲器讀取或向外部存儲器寫入中間結(jié)果和/或特征分類層的權(quán)重,這里描述的示例實(shí)施例能促進(jìn)提高執(zhí)行速度、減少功耗和減小內(nèi)存存儲負(fù)載。

卷積神經(jīng)網(wǎng)絡(luò)可被部署用于很多應(yīng)用,包括(但不限于)圖像中的對象識別、圖像重構(gòu)、語義分割、場景識別等。對象識別是指檢測或識別圖像中的特定對象(諸如貓、汽車、椅子等)的圖像處理。圖像重構(gòu)是指嘗試校正圖像的圖像處理。圖像重構(gòu)的示例可包括銳化模糊圖像。語義分割是指標(biāo)注圖像的部分的圖像處理。場景識別是指確定在圖像中表示的特定場景(諸如辦公室、臥室、體育館等)的圖像處理。除了這些視覺的示例,還存在許多其中有效地應(yīng)用類似的神經(jīng)網(wǎng)絡(luò)的其他應(yīng)用領(lǐng)域。

雖然神經(jīng)網(wǎng)絡(luò)能實(shí)現(xiàn)卓越的精度(準(zhǔn)確度),但是神經(jīng)網(wǎng)絡(luò)可以是計(jì)算密集型的。例如,神經(jīng)網(wǎng)絡(luò)通常對每個(gè)圖像執(zhí)行大量運(yùn)算、需要大量權(quán)重來執(zhí)行、以及產(chǎn)生大量中間結(jié)果通信量。舉例說明,通常的神經(jīng)網(wǎng)絡(luò)可按每個(gè)圖像十億次運(yùn)算的數(shù)量級執(zhí)行運(yùn)算、利用數(shù)以百計(jì)的數(shù)百萬至數(shù)十億的權(quán)重、以及產(chǎn)生數(shù)以百計(jì)的十億字節(jié)的中間結(jié)果數(shù)據(jù)。在很多實(shí)施方式中,權(quán)重和中間結(jié)果數(shù)據(jù)通信量在能效方面具有高消耗。隨著神經(jīng)網(wǎng)絡(luò)的計(jì)算效率提高,這些通信量構(gòu)成執(zhí)行神經(jīng)網(wǎng)絡(luò)所花費(fèi)的電力的更大比例,從而限制神經(jīng)網(wǎng)絡(luò)在電力受限的移動(dòng)裝置和其他電力限制的應(yīng)用和/或計(jì)算環(huán)境下的使用。因此,這里公開的示例實(shí)施例能有助于部署神經(jīng)網(wǎng)絡(luò)和移動(dòng)電子裝置上的基于神經(jīng)網(wǎng)絡(luò)的應(yīng)用。

圖1是示出由神經(jīng)網(wǎng)絡(luò)100的多個(gè)層進(jìn)行處理的示例的示圖。圖1示出輸入102和多個(gè)特征映射集104和106。例如,輸入102可以是將通過神經(jīng)網(wǎng)絡(luò)100被處理的圖像。如在這里使用的,術(shù)語“特征映射集”意思是一個(gè)或多個(gè)特征映射(例如,數(shù)據(jù))。特征映射集作為輸入被接收并被神經(jīng)網(wǎng)絡(luò)的層處理和/或被神經(jīng)網(wǎng)絡(luò)的層作為輸出產(chǎn)生。在示例實(shí)施例中,特征映射集104和106由神經(jīng)網(wǎng)絡(luò)100的特征提取層或卷積層產(chǎn)生。

通常,神經(jīng)網(wǎng)絡(luò)100的層能定義輸入到輸出的映射。例如,在卷積神經(jīng)網(wǎng)絡(luò)的情況下,由層定義的映射被實(shí)現(xiàn)為將被應(yīng)用于輸入數(shù)據(jù)(諸如圖像和/或特定特征映射)的一個(gè)或多個(gè)卷積核,以從所述層進(jìn)一步產(chǎn)生特征映射作為輸出。參照圖1,層(未示出)在前向執(zhí)行期間接收輸入102并產(chǎn)生特征映射集104作為輸出。下一層(未示出)在前向執(zhí)行期間接收特征映射集104作為輸入并產(chǎn)生特征映射集106作為輸出。再下一層可在前向執(zhí)行期間接收特征映射集106作為輸入并產(chǎn)生進(jìn)一步的特征映射集作為輸出。因此,在前向執(zhí)行期間,數(shù)據(jù)從輸入102向上流至特征映射集104、流至特征映射集106。接收和/或產(chǎn)生特征映射集104和106的所有層或其中的一個(gè)或多個(gè)層可以是隱藏層(例如,隱藏卷積層)。除了應(yīng)用卷積核來將輸入特征映射映射到輸出特征映射之外,還可執(zhí)行其他處理操作。這些處理操作的示例可包括啟動(dòng)功能、池化(pooling)和重采樣的應(yīng)用,但不限于此。

在圖1的示例中,特征映射集104包括四個(gè)特征映射104-1、104-2、104-3和104-4。特征映射集106包括六個(gè)特征映射106-1、106-2、106-3、106-4、106-5和106-6。應(yīng)理解,在特征映射集104和106中的每個(gè)特征映射集中示出的特征映射的數(shù)量是為了說明的目的。在本公開中描述的示例布置不意在被神經(jīng)網(wǎng)絡(luò)100的任何特征映射集中的特征映射的特定數(shù)量和/或被神經(jīng)網(wǎng)絡(luò)100中的層的特定數(shù)量所限制。

術(shù)語“中間數(shù)據(jù)”是指由神經(jīng)網(wǎng)絡(luò)的隱藏卷積層(例如,層1至層N-1)產(chǎn)生的特征映射的數(shù)據(jù)。例如,神經(jīng)網(wǎng)絡(luò)引擎(NN引擎)在神經(jīng)網(wǎng)絡(luò)(諸如神經(jīng)網(wǎng)絡(luò)100)的執(zhí)行期間產(chǎn)生中間數(shù)據(jù)。

通常,各個(gè)特征映射集104和106可由數(shù)十至數(shù)百的特征映射組成。在一個(gè)示例中,每個(gè)特征映射是表示在所有x、y位置的已知特征的強(qiáng)度的16位值的2D圖像映射。為針對神經(jīng)網(wǎng)絡(luò)的層N+1產(chǎn)生每個(gè)特征映射,NN引擎讀取由神經(jīng)網(wǎng)絡(luò)的層N輸出的每個(gè)特征映射。例如,如果層N產(chǎn)生10個(gè)特征映射作為到層N+1(層N+1產(chǎn)生20個(gè)特征映射作為輸出)的輸入,則在運(yùn)行層N+1的過程中必須讀取層N中的每個(gè)特征映射20次。因此,NN引擎必須執(zhí)行從層N讀取的總共200次特征映射。

在一個(gè)布置中,NN引擎可使用并行化(parallelism)來重新整理計(jì)算,以使中間數(shù)據(jù)在產(chǎn)生之后很快被消耗。通過在產(chǎn)生之后很快消耗中間數(shù)據(jù),在任一時(shí)刻僅存儲少量的中間數(shù)據(jù)。可將所述少量的中間數(shù)據(jù)納入附近的片上存儲器(例如,內(nèi)部存儲器)中,而不是將中間數(shù)據(jù)存儲在外部隨機(jī)存取存儲器(RAM)或其他遠(yuǎn)的高速緩沖存儲器中。此外,在示例實(shí)施例中,少量中間數(shù)據(jù)(如果有的話)在NN引擎自身內(nèi)部被移動(dòng)任意顯著的距離。產(chǎn)生中間數(shù)據(jù)的乘法累加(MAC)單元的相同的本地集可被用于在中間數(shù)據(jù)產(chǎn)生之后很快將其作為輸入消耗。因?yàn)椴恍枰狽N引擎內(nèi)的長的互連來傳輸中間數(shù)據(jù),因此這進(jìn)一步減少了電力。

在另一示例實(shí)施例中,NN引擎可被配置為重新整理計(jì)算以通過對神經(jīng)網(wǎng)絡(luò)的一個(gè)或多個(gè)或者可能所有的卷積層的產(chǎn)生進(jìn)行交織(interleaving)來減少和/或消除中間數(shù)據(jù)并本地化中間數(shù)據(jù)。這與執(zhí)行所有層以產(chǎn)生特征映射集104然后執(zhí)行所有的下一層以產(chǎn)生特征映射集106等形成對照。相反,根據(jù)這里描述的示例布置,NN引擎可執(zhí)行層的部分以產(chǎn)生特征映射集104的部分,然后執(zhí)行下一層的部分以產(chǎn)生特征映射集106等。例如,NN引擎可產(chǎn)生被特征映射集106的相應(yīng)圖塊112-1等跟隨的特征映射集104中的圖塊110-1。NN引擎可隨后產(chǎn)生被圖塊112-2等跟隨的圖塊110-2。

為了說明的目的,圖1的神經(jīng)網(wǎng)絡(luò)100可被可視化為層的金字塔。如所述的,執(zhí)行可通過處理輸入102以產(chǎn)生具有圖塊110的特征映射集104并且處理特征映射集104以產(chǎn)生具有圖塊112的特征映射集106,來從金字塔的底部開始執(zhí)行。隨著神經(jīng)網(wǎng)絡(luò)100被向上遍歷,在每個(gè)下一更高的層的特征映射的數(shù)量可增加的同時(shí),所述每個(gè)下一更高的層可在x-y維度方面收縮。例如,產(chǎn)生特征映射集106的層的x-y維度可小于產(chǎn)生特征映射集104的層的x-y維度。特征映射集106比特征映射集104具有更多的特征映射。在其他情況下,神經(jīng)網(wǎng)絡(luò)的下一更高的層中的特征映射的數(shù)量可保持不變。

根據(jù)另一示例實(shí)施例,神經(jīng)網(wǎng)絡(luò)100的3D體積可被概念地分解或分割為多個(gè)矩形錐臺(rectangular frustums)。每個(gè)矩形錐臺可具有矩形相交面,所述矩形相交面利用由神經(jīng)網(wǎng)絡(luò)100使用的輸入和/或每個(gè)特征映射集限定圖塊。在這點(diǎn)上,圖塊是到神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)或者特征映射集的矩形部分。在圖1的示例中,神經(jīng)網(wǎng)絡(luò)100被分為四個(gè)錐臺,被稱為錐臺1、錐臺2、錐臺3和錐臺4。通過輸入102內(nèi)的錐臺的相交面來限定矩形圖塊,并通過特征映射集104和特征映射集106中的每個(gè)特征映射集內(nèi)的錐臺的相交面來限定矩形圖塊。因此,給出的特征映射集的各個(gè)圖塊包括該特征映射集的各個(gè)特征映射的一部分。例如,圖塊110-1包括特征映射104-1、104-2、104-3和104-4中的每個(gè)的左上部分。為了討論的目的,特征映射集的每個(gè)圖塊的參考標(biāo)號的延伸部分表示該圖塊所屬的特定錐臺。例如,錐臺1可包括輸入102的圖塊108-1、特征映射集104的圖塊110-1和特征映射集106的圖塊112-1。錐臺2可包括輸入102的圖塊108-2、特征映射集104的圖塊110-2和特征映射集106的圖塊112-2等。因?yàn)閷邮褂镁矸e核定義輸入到輸出的映射,因此應(yīng)理解,每個(gè)錐臺也定義操作輸入圖塊并產(chǎn)生輸出圖塊的每個(gè)層中的卷積核中的特定的卷積核。結(jié)合圖6來更詳細(xì)地描述用于分割的示例方法。

如在這里使用的,(例如,通過使用諸如處理器、計(jì)算單元、NN引擎等)使用神經(jīng)網(wǎng)絡(luò)的層“執(zhí)行層”和“處理數(shù)據(jù)”的示例包括“將神經(jīng)網(wǎng)絡(luò)的層的卷積核應(yīng)用到被提供為到層的輸入的數(shù)據(jù)以產(chǎn)生層的輸出特征映射集”。數(shù)據(jù)可以是特征映射、特征映射集或另一輸入(諸如一個(gè)或多個(gè)圖像)。在這點(diǎn)上,應(yīng)理解,神經(jīng)網(wǎng)絡(luò)的部分可被執(zhí)行以處理圖塊。如在這里使用的,使用神經(jīng)網(wǎng)絡(luò)的層“處理圖塊”的示例包括“應(yīng)用與被提供為到層的輸入的圖塊所對應(yīng)的神經(jīng)網(wǎng)絡(luò)的層的卷積核的子集來產(chǎn)生層的輸出圖塊”。例如,定義被提供為輸入的圖塊的錐臺中的層的卷積核可被應(yīng)用于輸入圖塊以產(chǎn)生輸出圖塊。

通常,每個(gè)錐臺中的處理可被獨(dú)立于各個(gè)其他錐臺執(zhí)行。在一個(gè)示例實(shí)施例中,可在相鄰的錐臺之間共享少量的數(shù)據(jù)。此外,針對層的給出的圖塊,可將產(chǎn)生下一層的相應(yīng)圖塊所必需的所有特征映射部分存儲在產(chǎn)生所述下一層中的相應(yīng)圖塊的特定邏輯電路本地的緩沖器中。如本公開中所定義的,術(shù)語“相應(yīng)圖塊”是指作為參考圖塊或主體圖塊的在神經(jīng)網(wǎng)絡(luò)的同一錐臺中并且在相鄰層中的圖塊。

例如,針對神經(jīng)網(wǎng)絡(luò)100的給出的層的圖塊,由NN引擎的處理器消耗和產(chǎn)生的特征映射的部分可被存儲在處理器芯片上的內(nèi)部存儲器中。由處理器針對圖塊產(chǎn)生的特征映射的部分被用于產(chǎn)生被提供為到下一層的輸入的輸出圖塊。舉例說明,處理器可消耗存儲在內(nèi)部存儲器中的輸入102的部分(例如,圖塊108-1)以產(chǎn)生特征映射集104的相應(yīng)圖塊110-1。特征映射集104的圖塊110-1也可被存儲在內(nèi)部存儲器中。然后,處理器可利用內(nèi)部存儲器中的特征映射集104的圖塊110-1來產(chǎn)生特征映射集106的圖塊112-1。圖塊112-1也可被存儲在內(nèi)部存儲器中。在一個(gè)方面,內(nèi)部存儲器處理錐臺所需的總存儲是神經(jīng)網(wǎng)絡(luò)100的兩個(gè)相鄰層中的所述錐臺的相應(yīng)圖塊的最大占用空間(例如,存儲使用)。例如,與圖塊112-1相應(yīng)的數(shù)據(jù)可覆蓋圖塊108-1的數(shù)據(jù)。應(yīng)理解,圖塊的x和y維度(例如,錐臺大小)可被減小為保證將中間結(jié)果納入可用的內(nèi)部存儲器所需的大小。

針對神經(jīng)網(wǎng)絡(luò)100的每個(gè)錐臺,NN引擎可從由層N的圖塊定義的特征映射的部分產(chǎn)生由層N+1的相應(yīng)圖塊定義的特征映射的部分。在一個(gè)實(shí)施例中,NN引擎可在在內(nèi)部存儲器或緩沖器中保持所有需要的數(shù)據(jù)的同時(shí)以各種不同順序中的任意順序執(zhí)行必要的處理。例如,NN引擎可通過對由層N的圖塊定義的所有輸入特征映射進(jìn)行讀取和卷積并將結(jié)果相加來產(chǎn)生層N+1的相應(yīng)圖塊的每個(gè)特征映射的部分。在產(chǎn)生層N+1的相應(yīng)圖塊之后,不再需要用于產(chǎn)生層N+1的圖塊的層N的圖塊的數(shù)據(jù)。因此,NN引擎可回收、刪除、釋放或覆蓋用于存儲層N的圖塊的存儲,以便存儲層N+2的結(jié)果(例如,相應(yīng)圖塊),以此類推。當(dāng)如所述產(chǎn)生下一層的新產(chǎn)生的中間數(shù)據(jù)時(shí),NN引擎可繼續(xù)覆蓋層的中間數(shù)據(jù)。結(jié)合圖5更詳細(xì)地描述示例方法。

通過將神經(jīng)網(wǎng)絡(luò)劃分為可被彼此獨(dú)立地處理的錐臺,NN引擎可使用多個(gè)計(jì)算單元并行地處理錐臺。例如,NN引擎的一個(gè)計(jì)算單元可處理圖塊108-1、110-1和112-1;而同時(shí)NN引擎的另一計(jì)算單元可處理圖塊108-2、110-2和112-2;而同時(shí)NN引擎的另一計(jì)算單元可處理圖塊108-3、110-3和112-3,同時(shí)NN引擎的另一計(jì)算單元可處理圖塊108-4、110-4和112-4。結(jié)合圖4更詳細(xì)地描述并行處理。

在一些情況下,一些數(shù)據(jù)(例如,極少數(shù)據(jù))被同一特征映射集內(nèi)的緊密相鄰的圖塊所使用。因此,雖然錐臺可被獨(dú)立地處理,但是在被神經(jīng)網(wǎng)絡(luò)的層處理時(shí),少部分中間數(shù)據(jù)可沿著同一特征映射集內(nèi)的相鄰圖塊的邊界被共享。例如,針對特征映射集104的圖塊110-1產(chǎn)生的數(shù)據(jù)的少部分可被特征映射集104的圖塊110-2分享。因?yàn)樵诿總€(gè)錐臺內(nèi)處理是一致的(執(zhí)行相同數(shù)量的計(jì)算并且數(shù)據(jù)被內(nèi)部保持),所以處理時(shí)間可以是可預(yù)測的。因此,圖塊之間的同步可被簡單控制而沒有任何明顯的停滯。在示例實(shí)施例中,計(jì)算單元將與計(jì)算單元對緊鄰的輸入圖塊進(jìn)行操作基本上同時(shí)地自然地完成輸入圖塊的處理,而此時(shí),數(shù)據(jù)在相鄰圖塊的邊緣處的可被交換。在另一示例實(shí)施例中,同步和數(shù)據(jù)交換可按照特征映射的基礎(chǔ)在特征映射上以更精細(xì)粒度實(shí)現(xiàn)。神經(jīng)網(wǎng)絡(luò)遍歷的基于錐臺的方法使架構(gòu)的有效換算簡單且高效。

在另一示例實(shí)施例中,可通過限定圖塊在圖塊邊界處彼此重疊來消除相鄰圖塊之間的數(shù)據(jù)共享。在這種情況下,NN引擎可每個(gè)圖塊一次地產(chǎn)生圖塊(包括圖塊的邊界區(qū)域)的數(shù)據(jù)。因此,在重疊圖塊的情況下,兩個(gè)相鄰圖塊的數(shù)據(jù)不需要被共享。結(jié)合圖3更詳細(xì)地描述重疊圖塊的示例。

圖2是示出由示例NN引擎200執(zhí)行的處理的框圖。如圖,NN引擎200可包括處理器205和外部存儲器215。處理器205可包括一個(gè)或多個(gè)計(jì)算單元208。在處理器205包括不止一個(gè)計(jì)算單元208的情況下,計(jì)算單元208可被配置為彼此并行或同時(shí)地操作。此外,計(jì)算單元208可彼此獨(dú)立地操作。在一個(gè)示例中,每個(gè)計(jì)算單元208可被實(shí)現(xiàn)為可執(zhí)行指令的核。

處理器205可被實(shí)現(xiàn)為一個(gè)或多個(gè)硬件電路。例如,處理器205可被實(shí)現(xiàn)為集成電路。在一個(gè)示例實(shí)施例中,處理器205可被配置為執(zhí)行指令(諸如指令225)。指令225可被包含在程序代碼中。處理器205的示例實(shí)施方式可包括(但不限于)中央處理器(CPU)、多核CPU、陣列處理器、向量處理器、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、可編程邏輯陣列(PLA)、專用集成電路(ASIC)、可編程邏輯電路、控制器、圖形處理器(GPU)等。可使用結(jié)合外部存儲器215描述的各種不同的處理器中的任意處理器來實(shí)現(xiàn)NN引擎200。

處理器205可包括內(nèi)部存儲器210。內(nèi)部存儲器210可以是片上存儲器。例如,內(nèi)部存儲器210可以是處理器205的高速緩沖存儲器。內(nèi)部存儲器210可被實(shí)現(xiàn)為簡單緩沖器、1級高速緩沖存儲器、2級高速緩沖存儲器或處理器205的其他類型的片上存儲器。如圖所示,計(jì)算單元208可連接到內(nèi)部存儲器210。在處理器205包括多個(gè)計(jì)算單元208的布置中,每個(gè)計(jì)算單元208可具有專用的內(nèi)部存儲器210。內(nèi)部存儲器210或視情況而定的各個(gè)內(nèi)部存儲器可將特征映射和/或它們的部分存儲為特征映射數(shù)據(jù)222-1、權(quán)重220-1和指令225。

如圖所示,處理器205可連接到外部存儲器215。在一個(gè)示例中,外部存儲器215可被實(shí)現(xiàn)為處理器205的一個(gè)或多個(gè)更高級別的高速緩沖存儲器。然而,外部存儲器215可不位于與處理器205的同一芯片上。在另一示例中,外部存儲器215可被實(shí)現(xiàn)為RAM(例如,DRAM、SRAM)或其他存儲器。在另一示例中,處理器205可通過存儲器控制器(未示出)連接到外部存儲器215。

在一個(gè)示例實(shí)施例中,外部存儲器215針對神經(jīng)網(wǎng)絡(luò)的當(dāng)前不使用的神經(jīng)元存儲權(quán)重220-2。外部存儲器215還能存儲最終輸出圖塊數(shù)據(jù)222-2。因此,在存儲器215存儲權(quán)重220-2的同時(shí),權(quán)重220-1可被存儲在內(nèi)部存儲器210中。例如,權(quán)重220-1是處理到神經(jīng)網(wǎng)絡(luò)100的當(dāng)前層的輸入圖塊以產(chǎn)生將要被用作下一層的輸入的神經(jīng)網(wǎng)絡(luò)100的當(dāng)前層的輸出圖塊所需要的那些權(quán)重。在圖2的示例中,權(quán)重220-1是處理輸入102的圖塊108-1以產(chǎn)生特征映射集104的圖塊110-1作為輸出所需要的權(quán)重。權(quán)重220-2是當(dāng)前不使用的或不是處理圖塊108-1所需的神經(jīng)網(wǎng)絡(luò)100的其他權(quán)重。在另一示例實(shí)施例中,處理器205可壓縮權(quán)重220-1以存儲在內(nèi)部存儲器210中。

在處理器205包括多個(gè)計(jì)算單元(每個(gè)計(jì)算單元具有自己的內(nèi)部存儲器)的另一示例實(shí)施例中,權(quán)重可被每層一次地裝載。當(dāng)處理相同的特征映射時(shí),每個(gè)計(jì)算單元使用與其他計(jì)算單元相同的權(quán)重。每個(gè)計(jì)算單元的內(nèi)部存儲器可例如針對神經(jīng)網(wǎng)絡(luò)的當(dāng)前正在被處理的層存儲不同的權(quán)重。用于存儲各個(gè)計(jì)算單元的權(quán)重的內(nèi)部存儲器的部分可與各個(gè)其他計(jì)算單元共享。每個(gè)計(jì)算單元的內(nèi)部存儲器可被其他計(jì)算單元訪問以共享存儲在其中的用于處理圖塊的權(quán)重。

圖3是示出利用重疊圖塊對神經(jīng)網(wǎng)絡(luò)進(jìn)行的示例分割的框圖。更具體地,圖3示出使用重疊的圖塊實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)100的特征映射集104。如圖所示,圖塊110-1、110-2、110-3和110-4被限定為彼此交疊。重疊區(qū)域305以陰影顯示。重疊區(qū)域305還在沒有圖塊110-1、110-2、110-3和110-4的情況下單獨(dú)示出。如所述的定義具有重疊的圖塊避免必須在相鄰圖塊之間共享數(shù)據(jù)。

在更粗略級別上,可存在均處理具有多個(gè)錐臺的整個(gè)神經(jīng)網(wǎng)絡(luò)的更廣區(qū)域一些計(jì)算單元。例如,4單元的配置可將網(wǎng)絡(luò)劃分為4個(gè)象限,每個(gè)象限具有16個(gè)錐臺。在這種情況下,每個(gè)計(jì)算單元可從左上角至右下角穿過被分配給該計(jì)算單元的象限。在另一示例中,神經(jīng)網(wǎng)絡(luò)可被分為棋盤格的錐臺。

圖4-1和圖4-2是示出對神經(jīng)網(wǎng)絡(luò)的進(jìn)一步示例分割的框圖。在圖4-1和圖4-2的示例中,圖塊不重疊。參照圖4-1,特征映射集402被分割為包括被示出為圖塊404-434的16個(gè)圖塊。處理特征映射集402的NN引擎可包括如所述的多個(gè)不同的計(jì)算單元或核。例如,NN引擎可包括4個(gè)計(jì)算單元A、B、C和D。因此,NN引擎可將工作分散給計(jì)算單元A、B、C和D以實(shí)現(xiàn)針對相鄰圖塊之間的數(shù)據(jù)的交換具有最小(或至少更少)交叉通信量(cross traffic)的良好的換算(scaling,伸縮性)。

在圖4-1的示例中,特征映射集402的部分440可包括圖塊404、406、408和410。NN引擎可將部分440的特征映射的圖塊處理為到神經(jīng)網(wǎng)絡(luò)的下一層的輸入。計(jì)算單元A可處理圖塊404。計(jì)算單元B可處理圖塊406。計(jì)算單元C可處理圖塊408。計(jì)算單元D可處理圖塊410。計(jì)算單元A、B、C和D同時(shí)進(jìn)行操作。

類似地,部分442包括圖塊412、414、416和418。NN引擎可將部分442的特征映射的圖塊處理為神經(jīng)網(wǎng)絡(luò)的下一層的輸入。計(jì)算單元A可處理圖塊414。計(jì)算單元B可處理圖塊412。計(jì)算單元C可處理圖塊418。計(jì)算單元D可處理圖塊416。計(jì)算單元A、B、C和D同時(shí)進(jìn)行操作。

部分444包括圖塊420、422、424和426。NN引擎可將部分444的特征映射的圖塊處理為到神經(jīng)網(wǎng)絡(luò)的下一層的輸入。計(jì)算單元A可處理圖塊424。計(jì)算單元B可處理圖塊426。計(jì)算單元C可處理圖塊420。計(jì)算單元D可處理圖塊422。計(jì)算單元A、B、C和D同時(shí)進(jìn)行操作。

部分446包括圖塊428、430、432和434。NN引擎可將部分446的特征映射的圖塊處理為到神經(jīng)網(wǎng)絡(luò)的下一層的輸入。計(jì)算單元A可處理圖塊434。計(jì)算單元B可處理圖塊432。計(jì)算單元C可處理圖塊430。計(jì)算單元D可處理圖塊428。計(jì)算單元A、B、C和D同時(shí)進(jìn)行操作。

在圖4-1中的處理的描述過程中,NN引擎可處理一個(gè)部分,然后繼續(xù)處理下一層的相應(yīng)部分并繼續(xù)上行處理神經(jīng)網(wǎng)絡(luò)的一個(gè)或多個(gè)其他特征提取層。在其他布置中,NN引擎可操作部分440,然后是部分442,然后在回到層402處理部分444和446之前視情況而定進(jìn)行下一層或多層中的相應(yīng)部分的處理。

應(yīng)理解,提供圖4-1僅用于說明的目的。在一個(gè)或多個(gè)其他實(shí)施例中,NN引擎能將神經(jīng)網(wǎng)絡(luò)劃分為帶(band),以行優(yōu)先的順序、Z順序等進(jìn)行遍歷。存在能夠使用的其他可能的粗略級別的子劃分和遍歷。一種考慮是減少錐臺和/或計(jì)算單元之間的數(shù)據(jù)交換。例如,參照圖4-1,計(jì)算單元B操作來自不同的部分的鄰近的圖塊406和圖塊412并且操作來自不同的部分的鄰近的圖塊426和圖塊432。對于計(jì)算單元C和鄰近圖塊408和420以及鄰近圖塊418和430,同樣如此。計(jì)算單元D操作圖塊410、416、422和428的鄰近圖塊組成。

圖4-2示出特征映射集402的另一示例分割。在圖4-2的示例中,特征映射集402被分割成圖塊1002-1008、1012-1018、1022-1028和1032-1038。圖塊1002-1008在行1010中。圖塊1012-1018在行1020中。圖塊1022-1028在行1030中。圖塊1032-1038在行1040中。圖4-2中的每個(gè)圖塊也標(biāo)注有操作該圖塊的NN引擎的特定核。如圖所示,計(jì)算單元A操作行1010的每個(gè)圖塊。計(jì)算單元B操作行1020的每個(gè)圖塊。計(jì)算單元C操作行1030的每個(gè)圖塊。計(jì)算單元D操作行1040的每個(gè)圖塊。箭頭表示每個(gè)計(jì)算單元被配置為從左至右遍歷行中的圖塊。例如,參照行1010,計(jì)算單元A處理圖塊1002,然后處理圖塊1004,然后處理圖塊1006,然后處理圖塊1008。各個(gè)其他計(jì)算單元可以以相同的方式操作其他行中的圖塊。顯然,如果期望的話可從右至左處理圖塊。

處理圖塊或遍歷圖塊的順序可按照帶來確定。如這里定義的,術(shù)語“帶”意思是在同一行或同一列中的兩個(gè)或更多個(gè)鄰近圖塊的集合。在一個(gè)示例實(shí)施例中,帶是行或列的各個(gè)鄰近圖塊。以行為基礎(chǔ)從左至右對圖塊的遍歷示出水平的(或基于行的)帶的示例。在一個(gè)示例中,每行可能是一個(gè)帶,其中,行1010對應(yīng)于帶1104;行1020對應(yīng)于帶1106;行1030對應(yīng)于帶1108;行1040對應(yīng)于帶1110。圖4-2示出每個(gè)帶按一行形成的示例實(shí)施方式。然而,在其他示例中,每個(gè)帶可由2行、3行、4行或更多行形成。

在帶中的圖塊的組織和遍歷提供不重疊圖塊的情況下的多個(gè)優(yōu)點(diǎn)。在一個(gè)方面,在從帶的一個(gè)圖塊移動(dòng)到同一個(gè)帶中的下一相鄰圖塊的過程中,不需要在這兩個(gè)圖塊的邊界處在計(jì)算單元之間交換數(shù)據(jù)。例如,計(jì)算單元A處理圖塊1002和圖塊1002之后的下個(gè)圖塊1004。如此,不需要與不同的計(jì)算單元交換數(shù)據(jù)以處理圖塊1002和圖塊1004之間共享的邊界或邊緣。

在另一方面,由于計(jì)算單元在近乎相同的時(shí)間完成對不同帶的相鄰圖塊(例如,如圖4-2所示的同一列中的圖塊)的操作而促進(jìn)計(jì)算單元A、B、C和D之間的數(shù)據(jù)交換。例如,帶1104和帶1106具有共享的邊界區(qū)域1204。如果計(jì)算單元A處理帶1104并且計(jì)算單元B處理帶1106,則計(jì)算單元A和計(jì)算單元B共享數(shù)據(jù)以便處理共享邊界區(qū)域1204。計(jì)算單元A處理圖塊1002與計(jì)算單元B處理圖塊1012同時(shí)。計(jì)算單元A和計(jì)算單元B在近乎相同的時(shí)間分別結(jié)束對圖塊1002和1012的處理,從而允許計(jì)算單元A和計(jì)算單元B更容易地共享共享邊界區(qū)域1204(圖塊1002和1012之間的共享邊緣)的那部分?jǐn)?shù)據(jù)。計(jì)算單元A和計(jì)算單元B然后可分別繼續(xù)轉(zhuǎn)到圖塊1004和1014,同時(shí)處理圖塊1004和1014,共享數(shù)據(jù),并且繼續(xù)往下處理各自的帶。

類似地,帶1106和帶1108具有共享邊界區(qū)域1206。如果計(jì)算單元B處理帶1106并且計(jì)算單元C處理帶1108,則計(jì)算單元B和計(jì)算單元C共享數(shù)據(jù)以便處理共享邊界區(qū)域1206。計(jì)算單元B處理圖塊1012與計(jì)算單元C處理圖塊1022同時(shí)。計(jì)算單元B和計(jì)算單元C在近乎相同的時(shí)間分別結(jié)束對圖塊1012和1022的處理,從而允許計(jì)算單元B和計(jì)算單元C更容易地共享共享邊界區(qū)域1206(圖塊1012和1022之間的共享邊緣)的那部分?jǐn)?shù)據(jù)。計(jì)算單元B和計(jì)算單元C然后可分別移動(dòng)到圖塊1014和1024,同時(shí)處理圖塊1014和1024,共享數(shù)據(jù),并且繼續(xù)往下處理各自的帶。

最后,帶1108和帶1110具有共享邊界區(qū)域1208。如果計(jì)算單元C處理帶1108并且計(jì)算單元D處理帶1110,則計(jì)算單元C和計(jì)算單元D共享數(shù)據(jù)以便處理共享邊界區(qū)域1208。計(jì)算單元C處理圖塊1022與計(jì)算單元D處理圖塊1032同時(shí)。計(jì)算單元C和計(jì)算單元D在近乎相同的時(shí)間分別結(jié)束對圖塊1022和1032的處理,從而允許計(jì)算單元C和計(jì)算單元D更容易地共享共享邊界區(qū)域1208(圖塊1022和1032之間的共享邊緣)的那部分?jǐn)?shù)據(jù)。計(jì)算單元C和計(jì)算單元D然后可分別繼續(xù)轉(zhuǎn)到圖塊1024和1034,同時(shí)處理圖塊1024和1034,共享數(shù)據(jù),并且繼續(xù)往下處理各自的帶。

雖然大致描述圖4-2具有由圖塊的一個(gè)或多個(gè)行形成的帶,但是應(yīng)理解,帶可被形成為圖塊的一個(gè)或多個(gè)列。例如,第一帶可由圖塊1002、1012、1022和1032形成,第二帶由圖塊1004、1014、1024和1034形成,以此類推。在這種情況下,每個(gè)計(jì)算單元可從帶的頂部(或底部)開始,并且從帶的頂部(或底部)至底部(或頂部)移動(dòng)地處理圖塊。每個(gè)帶還可由2個(gè)列、3個(gè)列、4個(gè)列或更多列形成。

圖5是示出執(zhí)行神經(jīng)網(wǎng)絡(luò)的示例方法500的流程圖。更具體地,方法500示出執(zhí)行神經(jīng)網(wǎng)絡(luò)的特征提取層的示例方法。除了塊505之外,方法500可由參考圖2描述的NN引擎執(zhí)行。

在塊505,可將神經(jīng)網(wǎng)絡(luò)分割為多個(gè)錐臺。這些錐臺可以是矩形的??蓪⑸窠?jīng)網(wǎng)絡(luò)劃分成從神經(jīng)網(wǎng)絡(luò)的更高層投影到更低層的矩形錐臺。在一個(gè)實(shí)施例中,使用如由數(shù)據(jù)處理系統(tǒng)執(zhí)行的離線處理將神經(jīng)網(wǎng)絡(luò)分割成錐臺。可將分割的神經(jīng)網(wǎng)絡(luò)與所述分割存儲在存儲器中作為數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)結(jié)構(gòu)的部分,以使NN引擎和/或另一系統(tǒng)可在執(zhí)行神經(jīng)網(wǎng)絡(luò)時(shí)讀取和/或確定所述分割。

例如,系統(tǒng)可根據(jù)神經(jīng)網(wǎng)絡(luò)的處理器的內(nèi)部存儲器的大小分割神經(jīng)網(wǎng)絡(luò)。系統(tǒng)可根據(jù)能夠被處理器內(nèi)部地用來存儲權(quán)重的存儲量來標(biāo)定錐臺的大小,其中,所述權(quán)重用來處理用于產(chǎn)生下一層的圖塊的一層的圖塊、相鄰層中的特征映射的圖塊以及指令。結(jié)合圖6描述實(shí)現(xiàn)塊505的示例方法。

在塊510,NN引擎可將神經(jīng)網(wǎng)絡(luò)的層選擇作為當(dāng)前層。例如,NN引擎可選擇層N作為當(dāng)前層。在塊515,NN引擎可確定當(dāng)前層是否是被指定為用于執(zhí)行圖5所示的執(zhí)行方法的一個(gè)停止點(diǎn)。如果是,在一個(gè)方面,方法500可結(jié)束。在另一方面,可在神經(jīng)網(wǎng)絡(luò)的選擇的層重新開始方法500。

例如,在塊515,NN引擎可確定已經(jīng)達(dá)到神經(jīng)網(wǎng)絡(luò)的特定層。作為響應(yīng),如果接下來的圖塊保持被處理為到起始層的輸入(例如,神經(jīng)網(wǎng)絡(luò)的至少一個(gè)其他錐臺需要處理),則NN引擎可從起始層開始處理,否則結(jié)束。如果未達(dá)到指定的層,則方法500可繼續(xù)至塊520。

在塊520,NN引擎可將作為到當(dāng)前層的輸入的圖塊選擇為當(dāng)前圖塊。在塊525,NN引擎可針對當(dāng)前圖塊產(chǎn)生神經(jīng)網(wǎng)絡(luò)的下一層或相鄰層的相應(yīng)圖塊。例如,神經(jīng)網(wǎng)絡(luò)引擎將選擇的圖塊作為輸入圖塊處理以產(chǎn)生輸出圖塊(例如,相應(yīng)圖塊)。在塊530,系統(tǒng)確定是否處理到當(dāng)前層的輸入對象(圖像或特征映射集)的另一圖塊還是繼續(xù)至神經(jīng)網(wǎng)絡(luò)中的下一層。響應(yīng)于確定將處理輸入對象的不同圖塊或下一圖塊,方法500循環(huán)回到塊520以選擇輸入對象的下一圖塊。響應(yīng)于確定將要處理神經(jīng)網(wǎng)絡(luò)的下一層中的相應(yīng)圖塊,方法500循環(huán)回到塊510,以選擇神經(jīng)網(wǎng)絡(luò)的下一相鄰層。例如,在塊520的下一迭代中選擇的圖塊可以是在塊520的前一迭代中產(chǎn)生的輸出圖塊。

在一個(gè)實(shí)施例中,根據(jù)分割、帶、NN引擎中的計(jì)算單元的數(shù)量、內(nèi)部存儲器的大小等,NN引擎可處理當(dāng)前層中的另一圖塊。例如,NN引擎可僅將圖塊的子集(例如,一個(gè)或多個(gè),但少于所有的圖塊)處理為當(dāng)前層的輸入。NN引擎可在處理前一層中的所有圖塊之前,繼續(xù)至神經(jīng)網(wǎng)絡(luò)的下一層。如討論的,通過處理到當(dāng)前層的輸入圖塊而產(chǎn)生的中間數(shù)據(jù)可被存儲在內(nèi)部存儲器中并被用于下一層(例如,作為用于產(chǎn)生下一層中的輸出圖塊的輸入圖塊)。

在另一實(shí)施例中,方法500可由NN引擎的第一計(jì)算單元執(zhí)行,而NN引擎的一個(gè)或多個(gè)其他計(jì)算單元也與第一計(jì)算單元同時(shí)地實(shí)現(xiàn)圖5的方法500。計(jì)算單元也可以以異步方式操作,因此在正由同時(shí)操作的計(jì)算單元處理的相同特征映射集中的鄰近圖塊的邊緣處的數(shù)據(jù)可被共享??蛇x地,可以以重疊方式限定圖塊,以避免計(jì)算單元之間的數(shù)據(jù)的共享。

在另一實(shí)施例中,可執(zhí)行方法500以通過多個(gè)第一相鄰層來處理神經(jīng)網(wǎng)絡(luò)的第一錐臺。方法500可迭代,以通過所述多個(gè)第一相鄰層來處理各個(gè)其他錐臺。然后,可再次執(zhí)行方法500,以處理具有與所述多個(gè)第一相鄰層不同的分割的多個(gè)不同的第二相鄰層的第一錐臺。可重復(fù)方法500,以通過具有不同分割的所述多個(gè)第二相鄰層來處理其余的錐臺。

圖6是示出確定神經(jīng)網(wǎng)絡(luò)的錐臺的示例方法600的流程圖。可執(zhí)行方法600以將神經(jīng)網(wǎng)絡(luò)分割成錐臺,錐臺定義了神經(jīng)網(wǎng)絡(luò)的各個(gè)特征提取層的圖塊的大小。在一個(gè)方面,方法600可以是圖5的塊505的示例實(shí)施方式。在一個(gè)實(shí)施例中,方法600可由諸如計(jì)算機(jī)的數(shù)據(jù)處理系統(tǒng)(系統(tǒng))執(zhí)行。例如,方法600可被執(zhí)行為離線處理,其中,可在神經(jīng)網(wǎng)絡(luò)的執(zhí)行之前執(zhí)行方法600。確定的分割可被存儲為神經(jīng)網(wǎng)絡(luò)的部分,用于由NN引擎進(jìn)行后續(xù)執(zhí)行。

在塊605,系統(tǒng)可選擇神經(jīng)網(wǎng)絡(luò)的相鄰特征提取層的組來共同處理,將中間數(shù)據(jù)保持在NN引擎的處理器的內(nèi)部存儲器中。例如,系統(tǒng)可選擇兩個(gè)相鄰特征提取層。如討論的,將中間數(shù)據(jù)保持在NN引擎的處理器的內(nèi)部存儲器中減少在執(zhí)行神經(jīng)網(wǎng)絡(luò)的過程中產(chǎn)生的片外數(shù)據(jù)通信量。

在塊610,系統(tǒng)可從確定的內(nèi)部存儲器大小減去用于存儲所述組中壓縮的權(quán)重所需的存儲。針對神經(jīng)網(wǎng)絡(luò)的每一層存儲壓縮的權(quán)重所需的存儲量可從在分割之前執(zhí)行的訓(xùn)練過程來確定。在塊615,系統(tǒng)可基于所述組的層N中的特征映射的數(shù)量所需的存儲加上所述組的下一層(層N+1)的相應(yīng)存儲需求來確定圖塊的寬度和高度。層N+1所需的存儲是換算的寬度和高度與層N+1中的特征映射的數(shù)量的乘積。寬度和高度被從層N換算并且針對卷積核寬度和高度而占有(account,考慮)圖塊邊界處的另外的神經(jīng)元。

針對塊605中選擇的層的組,系統(tǒng)可確定在任意給出的層的寬度和高度以使在從內(nèi)部存儲器的總共可用存儲減去壓縮的權(quán)重之后,兩個(gè)相鄰層的圖塊(例如,相應(yīng)圖塊)的特征映射的部分被納入剩余存儲中。由于圖塊分辨率在每一層被換算,因此一個(gè)大小將導(dǎo)致不會(huì)換算超出可用存儲。

圖6僅為說明的目的而呈現(xiàn),因此不意在作為對這里公開的發(fā)明布置的限制。圖6示出基于NN引擎的內(nèi)部存儲器的大小將神經(jīng)網(wǎng)絡(luò)分割為錐臺的示例處理。在一個(gè)布置中,可針對神經(jīng)網(wǎng)絡(luò)中的相鄰特征提取層的不同組執(zhí)行圖6,以確定神經(jīng)網(wǎng)絡(luò)的不止一個(gè)分割。以這種方式,可使用第一分割來執(zhí)行神經(jīng)網(wǎng)絡(luò)的具有多個(gè)相鄰特征提取層的部分,而可使用第二(不同的)分割來執(zhí)行神經(jīng)網(wǎng)絡(luò)的具有相鄰特征提取層的第二(或第三或更多的)不同部分。

在另一方面,這里描述的示例實(shí)施例還可解決參數(shù)數(shù)據(jù)通信量的減少。例如,參數(shù)數(shù)據(jù)的讀取可消耗神經(jīng)網(wǎng)絡(luò)的特征分類層中的存儲器帶寬的很大部分。如本說明書中定義的,術(shù)語“參數(shù)”意思是應(yīng)用于從輸入特征映射讀取以在神經(jīng)網(wǎng)絡(luò)的后續(xù)層中產(chǎn)生輸出特征映射的數(shù)據(jù)的權(quán)重。在這點(diǎn)上,術(shù)語“參數(shù)”可在本公開中與“權(quán)重”互換使用。通常,每個(gè)權(quán)重是8位或16位,但是本發(fā)明布置不意在被參數(shù)的特定位寬所限制。作為說明性示例,很多卷積神經(jīng)網(wǎng)絡(luò)包括數(shù)百萬的權(quán)重,從而產(chǎn)生大量的網(wǎng)絡(luò)內(nèi)數(shù)據(jù)通信量。

在很多實(shí)施例中,大部分權(quán)重(例如,大約90%)是用于神經(jīng)網(wǎng)絡(luò)的最終特征分類層。例如,隨著神經(jīng)網(wǎng)絡(luò)在將來演變?yōu)閷Ω嗟哪繕?biāo)類別進(jìn)行分類(或處理更復(fù)雜的任務(wù)),特征分類層中的參數(shù)的數(shù)量會(huì)增加,使得用于執(zhí)行網(wǎng)絡(luò)的參數(shù)通信量對功耗而言是更大的問題。為減少或幾乎消除參數(shù)通信量的開銷,可批量處理測試用例。例如,在一些應(yīng)用中,可由網(wǎng)絡(luò)共同處理數(shù)十或數(shù)百的圖像。

在很多情況下,神經(jīng)網(wǎng)絡(luò)可從神經(jīng)網(wǎng)絡(luò)的輸入層至輸出側(cè)變窄。例如,神經(jīng)網(wǎng)絡(luò)可具有特征提取層的集合,隨后是全連接特征分類層。大部分權(quán)重屬于特征分類層。神經(jīng)網(wǎng)絡(luò)的特征提取層的頂部所需的針對中間數(shù)據(jù)的存儲量可以很小。

圖7是示出用于執(zhí)行神經(jīng)網(wǎng)絡(luò)的批處理的示例的示圖。在圖7的示例中,NN引擎(例如,圖2的NN引擎)包括存儲器系統(tǒng)700。存儲器系統(tǒng)700包括與NN引擎的特定處理器、邏輯、計(jì)算單元等一起位于芯片上的內(nèi)部存儲器705。存儲器系統(tǒng)700還包括外部(或片外)存儲器710。外部存儲器710可通過存儲器控制器(未示出)連接到NN引擎。如圖所示,神經(jīng)網(wǎng)絡(luò)包括多個(gè)特征提取層740和多個(gè)特征分類層745。

如圖所示,NN引擎可通過如由特征映射715、720、725和最終特征映射730表示的神經(jīng)網(wǎng)絡(luò)的特征提取層740處理N個(gè)圖像。在這個(gè)示例中,N是大于1的整數(shù)值。NN引擎將針對這N個(gè)圖像中的每個(gè)圖像的中間結(jié)果735保存在內(nèi)部存儲器705中。

進(jìn)行至神經(jīng)網(wǎng)絡(luò)的特征分類層745,NN引擎讀取第一全連接特征分類層755的權(quán)重750的部分或子集,并且通過層755處理這N個(gè)圖像的每個(gè)中間結(jié)果。在對內(nèi)部存儲器705的批處理中,NN引擎保存全部N個(gè)圖像的部分結(jié)果。在一些情況下,NN引擎可將針對這N個(gè)圖像的層755的部分結(jié)果保存在外部存儲器710中。

例如,如果在內(nèi)部存儲器705中針對層755存在1600萬16位參數(shù)并且針對權(quán)重750存在32KB的存儲,則NN引擎將權(quán)重750的子集(例如,16K的權(quán)重750)讀入內(nèi)部存儲器705,將權(quán)重750的所述子集應(yīng)用于所有N個(gè)圖像,并將權(quán)重750的所述子集的貢獻(xiàn)添加到存儲在內(nèi)部存儲器705中的N個(gè)圖像的中間結(jié)果。然后,NN引擎將權(quán)重750的下一子集(例如,下16K的權(quán)重750)讀入內(nèi)部存儲器705,從而覆蓋權(quán)重750的第一子集,以此類推。

在這個(gè)示例中,可重復(fù)這個(gè)過程1000次以處理層755的全部1600萬個(gè)參數(shù)。以這種方式,將讀取所述1600萬權(quán)重的開銷分?jǐn)偟竭@N個(gè)圖像,將相關(guān)的讀取通信量減少至(1/N)×(16000000權(quán)重×2字節(jié)/權(quán)重)。如果N=16,則針對批處理的讀取通信量是32MB,而不是256MB。然后,NN引擎針對權(quán)重760和層765執(zhí)行描述的過程,并再對權(quán)重770和層775執(zhí)行描述的過程。NN引擎針對層780執(zhí)行最后的處理,以產(chǎn)生輸出分類。例如,層780可被實(shí)現(xiàn)為軟性最大層(softmax layer),軟性最大層被配置為從全連接層輸出找到具有最大可能性的分類。因此,NN引擎針對整批N個(gè)圖像一次讀取特征分類層745中的每一層的權(quán)重,而不是針對這N個(gè)圖像中的每個(gè)圖像進(jìn)行一次讀取。如這里參照特征分類層745的描述而處理的一批16個(gè)圖像將具有針對特征分類層745讀取的權(quán)重的數(shù)量的1/16(與逐一地處理每個(gè)圖像相比)。如果特征分類層745構(gòu)成神經(jīng)網(wǎng)絡(luò)的大約90%的權(quán)重,則本公開中描述的示例實(shí)施例節(jié)省用于執(zhí)行神經(jīng)網(wǎng)絡(luò)的權(quán)重通信量的大約84%(15/16×9/10)。

圖8是示出執(zhí)行神經(jīng)網(wǎng)絡(luò)的示例方法800的流程圖。更具體地,圖8示出執(zhí)行神經(jīng)網(wǎng)絡(luò)的特征分類層的示例方法800。方法800可在NN引擎已如這里描述的通過神經(jīng)網(wǎng)絡(luò)的特征提取層處理多個(gè)圖像的狀態(tài)下開始??墒褂萌缢龅姆指詈蛨D塊來執(zhí)行特征提取層。在一個(gè)示例中,可如參考圖2描述的由NN引擎執(zhí)行方法800。

在塊805,NN引擎選擇神經(jīng)網(wǎng)絡(luò)的層(即,特征分類層)作為用于處理的當(dāng)前層。在塊810,將當(dāng)前層的權(quán)重的集裝載到內(nèi)部存儲器中。被裝載到內(nèi)部存儲器中的權(quán)重可以是當(dāng)前層的權(quán)重的子集。此外,當(dāng)前層的裝載的權(quán)重的所述子集可以是允許NN引擎將N個(gè)圖像中的每個(gè)圖像的中間結(jié)果與這N個(gè)圖像的中間結(jié)果存儲在內(nèi)部存儲器中的很多權(quán)重。

在塊815,NN引擎將在塊810裝載的權(quán)重的集應(yīng)用于圖像的集中的圖像的中間結(jié)果。在塊820,NN引擎將來自權(quán)重的集的貢獻(xiàn)添加到內(nèi)部存儲器中的該圖像的中間結(jié)果。

在塊825,NN引擎確定是否還留有任何將針對當(dāng)前層被處理的通過神經(jīng)網(wǎng)絡(luò)的特征分類層處理的一批圖像中的不同圖像的進(jìn)一步的中間結(jié)果。如果留有,則方法800循環(huán)回塊815來處理下一圖像的中間結(jié)果。如果否(例如,已經(jīng)使用在塊810裝載的權(quán)重的集處理這批圖像中的所有圖像),則方法800繼續(xù)到塊830。

在塊830,NN引擎確定是否存在將應(yīng)用于圖像的當(dāng)前層的另外的權(quán)重。如果是,則方法800循環(huán)回塊810來裝載當(dāng)前層的權(quán)重的下一集合(例如,子集)。如果否,則方法800繼續(xù)到塊835。在塊835,NN引擎確定是否存在將被執(zhí)行的神經(jīng)網(wǎng)絡(luò)的任何其他的層(例如,特征分類層)。如果是,則方法800循環(huán)回塊805來選擇下一特征分類層并繼續(xù)處理。如果否,則方法800結(jié)束。

圖9是示出用于確定神經(jīng)網(wǎng)絡(luò)的錐臺的示例數(shù)據(jù)處理系統(tǒng)(系統(tǒng))900的示圖。例如,系統(tǒng)900被用于實(shí)現(xiàn)如參考圖6在這里描述的分割過程。在另一示例實(shí)施例中,系統(tǒng)900被用于執(zhí)行神經(jīng)網(wǎng)絡(luò)。

如圖,系統(tǒng)900包括通過系統(tǒng)總線915或其他合適的電路連接到存儲器元件910的至少一個(gè)處理器(例如,中央處理器(CPU))905。系統(tǒng)900將計(jì)算機(jī)可讀指令(也被稱為“程序代碼”)存儲在存儲器元件910中。存儲器元件910可被看作計(jì)算機(jī)可讀存儲介質(zhì)的示例。處理器905執(zhí)行經(jīng)由系統(tǒng)總線915從存儲器元件910存取的程序代碼。在一個(gè)示例中,處理器905可被實(shí)現(xiàn)為如關(guān)于圖2所描述的。

存儲器元件910包括一個(gè)或多個(gè)物理存儲器(例如,諸如本地存儲器920以及一個(gè)或多個(gè)大容量存儲裝置925)。本地存儲器920是指在程序代碼的實(shí)際執(zhí)行期間通常使用的RAM或其他非持久性存儲器裝置。大容量存儲裝置925可被實(shí)現(xiàn)為硬盤驅(qū)動(dòng)器(HDD)、固態(tài)驅(qū)動(dòng)器(SSD)或其他持久性數(shù)據(jù)存儲裝置。系統(tǒng)900還可包括提供至少一些程序代碼的暫時(shí)存儲的一個(gè)或多個(gè)高速緩沖存儲器(未示出),以便減少程序代碼在執(zhí)行期間必須從大容量存儲裝置925提取的次數(shù)。

輸入/輸出(I/O)裝置(諸如鍵盤930、顯示器裝置935、指示裝置940)和一個(gè)或多個(gè)網(wǎng)絡(luò)適配器945可連接到系統(tǒng)900。I/O裝置可直接或通過中間I/O控制器連接到系統(tǒng)900。在一些情況下,一個(gè)或多個(gè)I/O裝置可被組合為觸摸屏被用作顯示器裝置935的情況。在這種情況下,顯示器裝置935也可實(shí)現(xiàn)鍵盤930和指示裝置940。網(wǎng)絡(luò)適配器945可被用于通過中間的私有網(wǎng)絡(luò)或公共網(wǎng)絡(luò)將系統(tǒng)900連接至其他系統(tǒng)、計(jì)算機(jī)系統(tǒng)、遠(yuǎn)程打印機(jī)和/或遠(yuǎn)程存儲裝置。調(diào)制解調(diào)器、光纜調(diào)制解調(diào)器、以太網(wǎng)卡、無線收發(fā)器和/或無線廣播是可與系統(tǒng)900一起使用的網(wǎng)絡(luò)適配器945的不同類型的示例。根據(jù)系統(tǒng)900的特定實(shí)施方式,具體類型的網(wǎng)絡(luò)適配器或視情況而定的網(wǎng)絡(luò)適配器將變化。

如圖9所示,存儲器元件910可存儲操作系統(tǒng)950以及一個(gè)或多個(gè)應(yīng)用955。例如,應(yīng)用955可以是神經(jīng)網(wǎng)絡(luò)實(shí)用工具,當(dāng)被執(zhí)行時(shí),將神經(jīng)網(wǎng)絡(luò)分割和/或執(zhí)行神經(jīng)網(wǎng)絡(luò)。例如,應(yīng)用955可包括使處理器905執(zhí)行方法500、600和/或800中的一個(gè)或多個(gè)方法的程序代碼。以這種方式,處理器905是用于執(zhí)行由一個(gè)或多個(gè)計(jì)算機(jī)程序定義的功能的專用處理器。

在一個(gè)方面,以可執(zhí)行程序代碼的形式實(shí)現(xiàn)的操作系統(tǒng)950和應(yīng)用955被系統(tǒng)900執(zhí)行,具體地,被處理器905執(zhí)行。如此,操作系統(tǒng)950和應(yīng)用955可被看作系統(tǒng)900的集成部分。操作系統(tǒng)950、應(yīng)用955和由系統(tǒng)900使用、產(chǎn)生和/或操作的任何數(shù)據(jù)項(xiàng)是當(dāng)被系統(tǒng)900利用時(shí)賦予功能的功能性數(shù)據(jù)結(jié)構(gòu)。

在一個(gè)方面,系統(tǒng)900可以是適于存儲和/或執(zhí)行程序代碼的計(jì)算機(jī)或其他裝置。系統(tǒng)900可表示包括處理器和存儲器的多種計(jì)算機(jī)系統(tǒng)和/或裝置中的任何計(jì)算機(jī)系統(tǒng)和/或裝置并且能夠執(zhí)行本公開中描述的操作。這種系統(tǒng)的示例可包括移動(dòng)裝置、智能電話和/或其他便攜式計(jì)算和/或通信裝置。在一些情況下,特定的計(jì)算機(jī)系統(tǒng)和/或裝置可包括比所述更少或更多的組件。系統(tǒng)900可被實(shí)現(xiàn)為如所示的單個(gè)系統(tǒng)或被實(shí)現(xiàn)為多個(gè)網(wǎng)絡(luò)化的或互連的系統(tǒng),其中,每個(gè)系統(tǒng)具有與系統(tǒng)900相同或相似的架構(gòu)。

在一個(gè)示例中,系統(tǒng)900可接收神經(jīng)網(wǎng)絡(luò)作為輸入。系統(tǒng)900在執(zhí)行操作系統(tǒng)950和應(yīng)用955的過程中可分割神經(jīng)網(wǎng)絡(luò)并將分割的神經(jīng)網(wǎng)絡(luò)存儲在存儲器或計(jì)算機(jī)可讀存儲介質(zhì)中,以待后續(xù)執(zhí)行。

這里使用的術(shù)語僅是為描述特定實(shí)施例的目的,而不意在限制。盡管如此,現(xiàn)在仍將呈現(xiàn)貫穿本文所應(yīng)用的一些定義。

如在這里定義的,除非另有明確指示,否則單數(shù)形式意在也包括復(fù)數(shù)形式。

如在這里定義的,術(shù)語“另一”意思是至少第二或更多。

如在這里定義的,除非明確地另有陳述,否則術(shù)語“至少一個(gè)”、“一個(gè)或多個(gè)”以及“和/或”是在操作中既是結(jié)合性的又是分離性的開放式表述。例如,“A、B和C中的至少一個(gè)”、“A、B或C中的至少一個(gè)”、“A、B和C中的一個(gè)或多個(gè)”、“A、B或C中的一個(gè)或多個(gè)”以及“A、B和/或C”中的每個(gè)表述意思是僅A、僅B、僅C、A和B一起、A和C一起、B和C一起或者A、B和C一起。

如在這里定義的,術(shù)語“自動(dòng)地”意思是沒有用戶介入。

如在這里定義的,術(shù)語“計(jì)算機(jī)可讀存儲介質(zhì)”意思是包含或存儲由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的或與指令執(zhí)行系統(tǒng)、設(shè)備或裝置有關(guān)的程序代碼的存儲介質(zhì)。如在這里定義的,“計(jì)算機(jī)可讀存儲介質(zhì)”本身不是暫時(shí)的傳播的信號。計(jì)算機(jī)可讀存儲介質(zhì)可以是(但不限于)電子存儲裝置、磁性存儲裝置、光學(xué)存儲裝置、電磁存儲裝置、半導(dǎo)體存儲裝置或上述任何合適的組合。如在這里描述的存儲器元件是計(jì)算機(jī)可讀存儲介質(zhì)的示例。計(jì)算機(jī)可讀存儲介質(zhì)的更具體示例的非窮盡的列表可包括:便攜式計(jì)算機(jī)軟盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦寫可編程只讀存儲器(EPROM或閃存)、靜態(tài)隨機(jī)存取存儲器(SRAM)、便攜式致密盤只讀存儲器(CD-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤等。

如在這里定義的,除非另有指示,否則術(shù)語“連接”意思是沒有任何中間元件的連接或是利用一個(gè)或多個(gè)中間元件非直接地連接。兩個(gè)元件可通過通信信道、通路、網(wǎng)絡(luò)或系統(tǒng)進(jìn)行機(jī)械地、電地或通信鏈接地連接。

如在這里定義的,除非上下文另有指示,否則術(shù)語“可執(zhí)行的操作”或“操作”是由數(shù)據(jù)處理系統(tǒng)或數(shù)據(jù)處理系統(tǒng)內(nèi)的處理器執(zhí)行的任務(wù)??蓤?zhí)行的操作的示例包括(但不限于)“處理”、“運(yùn)算”、“計(jì)算”、“確定”、“顯示”、“比較”等。在這點(diǎn)上,操作是指數(shù)據(jù)處理系統(tǒng)(例如,計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算裝置)的動(dòng)作和/或處理,所述動(dòng)作和/或處理將被表示為計(jì)算機(jī)系統(tǒng)的寄存器和/或存儲器內(nèi)的物理(電子)量的數(shù)據(jù)操控并轉(zhuǎn)換成被類似表示為計(jì)算機(jī)系統(tǒng)存儲器和/或寄存器或其他這種信息存儲、傳輸或顯示裝置內(nèi)的物理量的其他數(shù)據(jù)。

如在這里定義的,術(shù)語“包括”和/或“包含”指定存在陳述的特征、整體、步驟、操作、元件和/或組件,但是不排除存在或添加一個(gè)或多個(gè)其他特征、整體、步驟、操作、元件、組件和/或它們的組。

如在這里定義的,根據(jù)上下文,術(shù)語“如果”意思是“當(dāng)……時(shí)”或“在……時(shí)”或“響應(yīng)于”或“作為對……的回應(yīng)”。因此,根據(jù)上下文,短語“如果確定”或“如果檢測到[陳述的條件或事件]”可被解釋為意味著“在確定……時(shí)”或“響應(yīng)于確定……”或“在檢測到[陳述的條件或事件]”或“響應(yīng)于檢測到[陳述的條件或事件]”或“作為對檢測到[陳述的條件或事件]的回應(yīng)”。

如在這里定義的,術(shù)語“一個(gè)實(shí)施例”、“實(shí)施例”或類似語言意思是在本公開中描述的至少一個(gè)實(shí)施例中包括了關(guān)于所述實(shí)施例描述的特定的特征、結(jié)構(gòu)或特性。因此,貫穿本公開出現(xiàn)的短語“在一個(gè)實(shí)施例中”、“在實(shí)施例中”和類似語言可(但不必須)全部是指相同的實(shí)施例。術(shù)語“實(shí)施例”和“布置”在本公開中可互換使用。

如在這里定義的,術(shù)語“輸出”意思是存儲在物理存儲器元件(例如,裝置)中、寫入顯示器或其他外設(shè)輸出裝置、發(fā)送或傳輸至另一系統(tǒng)、出口等。

如在這里定義的,術(shù)語“多個(gè)”意思是兩個(gè)或多于兩個(gè)。

如在這里定義的,術(shù)語“處理器”意思是被配置為執(zhí)行包含在程序代碼中的指令的至少一個(gè)硬件電路。硬件電路可以是集成電路。處理器的示例包括(但不限于)中央處理器(CPU)、陣列處理器、向量處理器、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、可編程邏輯陣列(PLA)、專用集成電路(ASIC)、可編程邏輯電路、圖形處理器(GPU)、控制器等。

如在這里定義的,術(shù)語“實(shí)時(shí)”意思是用戶或系統(tǒng)感受的作出的特定處理或確定是足夠及時(shí)的或能使處理器跟上一些外部處理的處理響應(yīng)性的程度。

如在這里定義的,術(shù)語“作為對……的回應(yīng)”意思是對動(dòng)作或事件快捷地響應(yīng)或反應(yīng)。因此,如果執(zhí)行第二動(dòng)作“作為對第一動(dòng)作的回應(yīng)”,則第一動(dòng)作的出現(xiàn)和第二動(dòng)作的出現(xiàn)存在因果關(guān)系。術(shù)語“作為對……的回應(yīng)”表示所述因果關(guān)系。

如在這里定義的,術(shù)語“用戶”意思是人。

術(shù)語“第一”、“第二”等可在這里使用以描述各種元件。除非另有陳述或上下文明確地另有指示,否則這些元件不應(yīng)被這些術(shù)語限制,因?yàn)檫@些術(shù)語只是用來將一個(gè)元件與另一元件區(qū)分開。

計(jì)算機(jī)程序產(chǎn)品可包括計(jì)算機(jī)可讀存儲介質(zhì),在計(jì)算機(jī)可讀存儲介質(zhì)上具有用于使處理器執(zhí)行本發(fā)明的方面的計(jì)算機(jī)可讀程序指令。在本公開中,術(shù)語“程序代碼”與術(shù)語“計(jì)算機(jī)可讀程序指令”可互換使用。這里描述的計(jì)算機(jī)可讀程序指令可經(jīng)由網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)、LAN、WAN和/或無線網(wǎng)絡(luò))從計(jì)算機(jī)可讀存儲介質(zhì)被下載到各個(gè)計(jì)算/處理裝置或被下載到外部計(jì)算機(jī)或外部存儲裝置。網(wǎng)絡(luò)可包括銅傳輸電纜、光傳輸光纖、無線傳輸、路由、防火墻、交換機(jī)、網(wǎng)關(guān)計(jì)算機(jī)和/或包括邊緣服務(wù)器的邊緣裝置。在每個(gè)計(jì)算/處理裝置中的網(wǎng)絡(luò)適配卡或網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計(jì)算機(jī)可讀程序指令并且將計(jì)算機(jī)可讀程序指令轉(zhuǎn)發(fā),用于各個(gè)計(jì)算/處理裝置中的計(jì)算機(jī)可讀存儲介質(zhì)中的存儲。

用于執(zhí)行這里描述的發(fā)明布置的操作的計(jì)算機(jī)可讀程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機(jī)器指令、依賴機(jī)器指令(machine dependent instruction)、微代碼、固件指令或者寫入一個(gè)或多個(gè)編程語言(包括面向?qū)ο笳Z言和/或過程編程語言)的任意組合的源代碼或目標(biāo)代碼。計(jì)算機(jī)可讀程序指令可指定狀態(tài)設(shè)置數(shù)據(jù)。計(jì)算機(jī)可讀程序指令可完全在用戶計(jì)算機(jī)上、部分地在用戶計(jì)算機(jī)上、作為獨(dú)立軟件包、部分地在用戶計(jì)算機(jī)上并且部分地在遠(yuǎn)程計(jì)算機(jī)上、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后面的情況下,遠(yuǎn)程計(jì)算機(jī)可通過任何類型的網(wǎng)絡(luò)(包括LAN或WAN)連接到用戶計(jì)算機(jī),或者可對外部計(jì)算機(jī)做連接(例如,通過使用互聯(lián)網(wǎng)服務(wù)提供商的互聯(lián)網(wǎng))。在一些情況下,包括例如可編程邏輯電路、FPGA或PLA的電子電路可通過利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息將電子電路個(gè)性化來執(zhí)行計(jì)算機(jī)可讀程序指令,以便執(zhí)行這里描述的發(fā)明布置的方面。

參考方法、設(shè)備(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程示圖和/或塊示圖在這里描述了本發(fā)明布置的一些方面。將理解,流程示圖和/或塊示圖中的每個(gè)塊以及流程示圖和/或塊示圖中的塊的組合可由計(jì)算機(jī)可讀程序指令(例如,程序代碼)實(shí)現(xiàn)。

這些計(jì)算機(jī)可讀程序指令可被提供給用于產(chǎn)生機(jī)器的專用計(jì)算機(jī)的處理器或其他可編程數(shù)據(jù)處理設(shè)備,使得通過計(jì)算機(jī)的處理器或其他可編程數(shù)據(jù)處理設(shè)備而執(zhí)行的指令創(chuàng)建用于實(shí)現(xiàn)在流程圖和/或塊示圖的塊中指定的功能/動(dòng)作的方法。這些計(jì)算機(jī)可讀程序指令還可被存儲在能指導(dǎo)計(jì)算機(jī)、可編程數(shù)據(jù)處理設(shè)備和/或其他裝置以特定方式起作用的計(jì)算機(jī)可讀存儲介質(zhì)中,使得其中存儲有指令的計(jì)算機(jī)可讀存儲介質(zhì)包括包含指令的制造產(chǎn)品,所述指令實(shí)現(xiàn)在流程圖和/或塊示圖的塊中指定的操作的方面。

計(jì)算機(jī)可讀程序指令還可被裝載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理設(shè)備、或其他裝置上,以使一系列操作在計(jì)算機(jī)、其他可編程數(shù)據(jù)處理設(shè)備、或其他裝置上被執(zhí)行以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得在計(jì)算機(jī)、其他可編程數(shù)據(jù)處理設(shè)備、或其他裝置上執(zhí)行的指令實(shí)現(xiàn)在流程圖和/或塊示圖的塊中指定的功能/動(dòng)作。

附圖中的流程圖和塊示圖示出根據(jù)本發(fā)明布置的各個(gè)方面的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或塊示圖中的每個(gè)塊可表示包括用于實(shí)現(xiàn)指定的操作的一個(gè)或多個(gè)可執(zhí)行指令的模塊、區(qū)段或指令的部分。在一些可選實(shí)現(xiàn)中,在塊中指出的操作可不以附圖中指出的順序發(fā)生。例如,根據(jù)涉及的功能,連續(xù)示出的兩個(gè)塊可基本上同時(shí)被執(zhí)行,或者有時(shí)可以以相反的順序被執(zhí)行。還將注意,在塊示圖和/或流程示圖中的每個(gè)塊以及在塊示圖和/或流程示圖中的塊的組合可由執(zhí)行專門功能或動(dòng)作或者執(zhí)行專用硬件和計(jì)算機(jī)指令的組合的專用的基于硬件的系統(tǒng)實(shí)現(xiàn)。

為了說明的簡單和清晰的目的,在附圖中示出的元件不必須按比例繪制。例如,為了清楚,一些元件的維度可相對于其他元件被夸大。此外,在認(rèn)為合適的地方,參考標(biāo)號在附圖中被重復(fù)以表示相應(yīng)的、類似的或相同的特征。

可在權(quán)利要求書中發(fā)現(xiàn)的所有方法或步驟以及功能元件的相應(yīng)的結(jié)構(gòu)、材料、動(dòng)作和等同物意在包括如特別主張的用于執(zhí)行結(jié)合其他主張的元件的功能的任何結(jié)構(gòu)、材料或動(dòng)作。

這里提供的本發(fā)明布置的描述是為了說明的目的而不意在窮盡或限于所公開的形式和示例。選擇這里使用的術(shù)語以解釋本發(fā)明布置、實(shí)際應(yīng)用或在市場中發(fā)現(xiàn)的技術(shù)中的技術(shù)改良的原理,和/或使本領(lǐng)域的其他普通技術(shù)人員理解這里公開的實(shí)施例。在不脫離描述的發(fā)明布置的范圍和精神的情況下,修改和變化對于本領(lǐng)域的那些普通技術(shù)人員而言是明顯的。因此,在表示這些特征和實(shí)現(xiàn)的范圍時(shí)應(yīng)參考權(quán)利要求書而不是上述公開。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
绍兴市| 基隆市| 苍南县| 上饶市| 尼勒克县| 灵石县| 郁南县| 灯塔市| 攀枝花市| 鄂尔多斯市| 叶城县| 达尔| 江孜县| 莱芜市| 庄河市| 晋宁县| 嫩江县| 台山市| 拉萨市| 桐庐县| 西畴县| 罗田县| 商洛市| 棋牌| 阜宁县| 滨州市| 湖南省| 澜沧| 株洲县| 綦江县| 阿克| 库尔勒市| 天门市| 临清市| 虞城县| 富平县| 西藏| 赞皇县| 湘乡市| 铜陵市| 繁昌县|