TWI808219B - 用於多任務遞迴神經網路的方法、系統及設備 - Google Patents

用於多任務遞迴神經網路的方法、系統及設備 Download PDF

Info

Publication number
TWI808219B
TWI808219B TW108125405A TW108125405A TWI808219B TW I808219 B TWI808219 B TW I808219B TW 108125405 A TW108125405 A TW 108125405A TW 108125405 A TW108125405 A TW 108125405A TW I808219 B TWI808219 B TW I808219B
Authority
TW
Taiwan
Prior art keywords
memory
memory access
data
internal state
neural network
Prior art date
Application number
TW108125405A
Other languages
English (en)
Other versions
TW202020746A (zh
Inventor
米蘭達 歐麗亞 哈雪米
傑米 亞歷山大 史密斯
凱文 喬丹 史瓦斯基
Original Assignee
美商谷歌有限責任公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 美商谷歌有限責任公司 filed Critical 美商谷歌有限責任公司
Publication of TW202020746A publication Critical patent/TW202020746A/zh
Application granted granted Critical
Publication of TWI808219B publication Critical patent/TWI808219B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Analysis (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Small-Scale Networks (AREA)
  • Feedback Control In General (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本發明提供與多任務遞迴神經網路相關的方法、系統及設備,包括經編碼於電腦儲存媒體上之電腦程式。該等方法中之一者包括:維護指定用於一遞迴神經網路的複數個記憶體區中之每一者的一分開之內部狀態的資料;接收一當前輸入;識別由該當前輸入定義的該記憶體存取位址之一特定記憶體區;自該所維護資料中指定之該等內部狀態中選擇用於該特定記憶體區之該內部狀態;根據該特定記憶體區之該所選擇內部狀態使用該遞迴神經網路處理該輸入序列中之該當前輸入以:產生一輸出,該輸出定義一預測記憶體存取位址之一機率分佈,並更新該特定記憶體區之該所選擇內部狀態;及將該經更新所選擇內部狀態與該所維護資料中之該特定記憶體區相關聯。

Description

用於多任務遞迴神經網路的方法、系統及設備
本說明書係關於遞迴神經網路。
神經網路為使用多層操作以自一或多個輸入預測一或多個輸出的機器學習模型。神經網路通常包括位於輸入層與輸出層之間的一或多個隱藏層。每一隱藏層之輸出用作至下一層(例如,下一隱藏層或輸出層)之輸入。
神經網路之每一層指定待對該層輸入執行之一或多個變換操作。一些神經網路層具有被稱作神經元之操作。每一神經元接收一或多個輸入並產生藉由另一神經網路層接收的輸出。常常,每一神經元接收來自其他神經元之輸入,且每一神經元提供輸出至一或多個其他神經元。
每一層使用用於該層的一參數集之當前值產生一或多個輸出。訓練神經網路涉及對輸入不斷地執行前向傳遞、運算梯度值,及更新用於每一層的參數集之當前值。在神經網路經訓練後,最終參數集可用以在生產系統中進行預測。
一些神經網路為遞迴神經網路。遞迴神經網路為接收一輸入序列並自該輸入序列產生輸出序列的神經網路。詳言之,遞迴神經網路可在當前時間步驟處在運算輸出時使用來自先前時間步驟的網路之內部狀 態中之一些或所有。此允許遞迴神經網路展現動態時間特性。換言之,遞迴神經網路概括其直至當前時間步驟已接收的全部資訊並能夠捕獲資料序列中之長期相依性。
本說明書描述多任務遞迴神經網路,且更特定言之,改良微處理器中之時間序列預測的多任務遞迴神經網路。
實施多任務遞迴神經網路之電路包括經組態以執行遞迴神經網路之操作的遞迴神經網路單元(「RNN單元」)。亦即,RNN單元經組態以執行由遞迴神經網路中之每一層定義的變換操作。該電路亦包括狀態暫存器。每一狀態暫存器經組態以(i)儲存遞迴神經網路之內部狀態資料及(ii)對應於遞迴神經網路已經訓練以執行的各別任務。狀態資料為遍及時間步驟持續存在的資料,亦即在處理一序列中之一個輸入之後經維護以供用於處理該序列中之下一輸入的資料。舉例而言,若遞迴神經網路為長短期記憶體(LSTM)網路,則狀態資料可包括用於網路中之每一LSTM單元的隱藏狀態h及單元狀態c。
電路接收輸入序列中之當前輸入及序列識別資料。電路基於序列識別資料識別特定任務。電路自對應於所識別任務之狀態暫存器獲得內部狀態資料。電路提供所獲得內部狀態資料及當前輸入至RNN單元以引起RNN單元處理所獲得內部狀態資料及當前輸入以產生用於所識別任務之神經網路輸出及經更新內部狀態資料。電路自RNN單元接收用於所識別任務之神經網路輸出及經更新內部狀態資料。最終,電路寫入經更新內部狀態資料至對應於所識別任務之狀態暫存器。
上文所描述的電路可用以更準確預測運算系統中之記憶體 存取。具體言之,電路可:維護指定用於經訓練以預測若干記憶體區中之一者的一電腦程式之記憶體存取位址的一遞迴神經網路的該等記憶體區中之每一者的一分開之內部狀態的資料;接收一輸入序列中之一當前輸入,該輸入序列定義該電腦程式之一先前記憶體存取位址序列;識別由該輸入序列中之該當前輸入定義的該記憶體存取位址之一特定記憶體區;自該維護之資料中指定的該等內部狀態中選擇用於該特定記憶體區之該內部狀態;根據用於該特定記憶體區之該所選擇內部狀態使用該遞迴神經網路處理該輸入序列中之該當前輸入以:(i)產生一輸出,該輸出定義一預測記憶體存取位址之一機率分佈,該預測之記憶體存取位址為該特定記憶體區中之該電腦程式之一將來記憶體存取位址,及(ii)更新該特定記憶體區之該所選擇內部狀態;及將該經更新所選擇內部狀態與該所維護資料中之該特定記憶體區相關聯。
本說明書中所描述之標的物可實施於特定實施例中以便實現以下優勢中之一或多者。藉由在硬體中實施遞迴神經網路,包括將遞迴神經網路狀態儲存於耦接至遞迴神經網路之狀態暫存器中,遞迴神經網路可快速連續執行不同任務,其稱為多任務。更特定言之,每一狀態暫存器可儲存各別任務之狀態。遞迴神經網路可獲得來自第一狀態暫存器之第一狀態以處理第一輸入序列,且在第一輸入序列的處理完成之前,獲得來自第二狀態暫存器之第二狀態以處理第二不同輸入序列。舉例而言,實施遞迴神經網路之單個硬體電路可藉由自各別狀態暫存器獲得對應於彼等任務中之一者的狀態簡單地預測記憶體存取、快取未命中及分支。儲存狀態資料於狀態暫存器中減少RNN必須在每一時間步驟處運算的依序相依性的數目並使總潛時減少輸入序列之長度。
本說明書亦描述可藉由潛在原因如何分類及解聚輸入序列。在資料預提取中,藉由潛在原因解聚之一個實例為分離在不同記憶體區中之記憶體存取位址的交錯串流。此等區中之每一者可具有不同記憶體存取圖案,且若串流在用作至遞迴神經網路之輸入之前分離,則機器學習模型可更有效地學習。在資料預提取中藉由潛在原因解聚之另一個實例為藉由引起彼等記憶體存取之資料結構分離記憶體存取之串流。再次,如此進行可使得機器學習模型更有效地學習。
本說明書之標的物的一或多個實施例之細節係在隨附圖式及以下描述中闡述。標的物之其他特徵、態樣及優勢自描述、圖式及申請專利範圍將變得顯而易見
100:遞迴神經網路
110:輸入單元
120:RNN單元
130:RNN單元
140:輸出單元
200:遞迴神經網路系統
210a:狀態暫存器
210b:狀態暫存器
210n:狀態暫存器
220:RNN選擇器
230:RNN運算單元
240:輸入單元
300:程序
310:步驟
320:步驟
330:步驟
340:步驟
350:步驟
360:步驟
400:運算系統
410:程式計數器
420:記憶體
422:指令記憶體
424:資料記憶體
430:本端快取
440:預測子系統
442:神經網路子系統
444:記憶體區分類器
500:程序
510:步驟
520:步驟
530:步驟
540:步驟
550:步驟
560:步驟
圖1為實施於硬體中的實例遞迴神經網路之圖式。
圖2為具有狀態暫存器及多工器之實例遞迴神經網路系統的圖式。
圖3為用於使用硬體電路處理多任務遞迴神經網路之實例程序的流程圖。
圖4為經組態以自記憶體預提取資料的實例運算系統之圖式。
圖5為用於預測在運算系統中執行的電腦程式之將來記憶體存取位址的實例程序之流程圖。
各種圖式中之相同參考數字及名稱指示相同元件。
相關申請案之交叉參考
本申請案主張2018年11月19日申請之美國臨時申請案第62/769,512號之優先權。將先前申請案之揭示內容認為本申請案之揭示內容的部分且以引用的方式併入。
本說明書描述多任務遞迴神經網路,且更特定言之,改良微處理器中之時間序列預測的多任務遞迴神經網路。
圖1為實施於硬體中的遞迴神經網路100之圖式。遞迴神經網路大體上包括一輸入層、一或多個隱藏層及一輸出層。
遞迴神經網路之輸入層大體上經組態以接收一輸入序列(包括在自0至當前時間步驟N之每一時間步驟處的各別輸入)並處理輸入序列以產生該序列之特徵表示。
遞迴神經網路之隱藏層為遞迴層,意謂其維護序列中之輸入之間的狀態並作為產生當前時間步驟之輸出之部分,更新當前狀態。傳統遞迴神經網路具有運算用於該層之輸出及下一狀態的隱藏層,其中下一狀態係基於先前狀態及當前輸入。狀態遍及時間步驟而維護且捕獲輸入序列中之相依性。
特定類型的遞迴神經網路為長短期記憶體(LSTM)網路。LSTM網路中之隱藏層包括輸入序列中之每輸入一個LSTM單元。每一LSTM單元提供輸出至其自身層中之另一LSTM單元並至下一隱藏層或輸出層中之LSTM單元。每一LSTM單元包括隱藏狀態h、單元狀態c、輸入閘i、遺忘閘f,及輸出閘o。三個閘中之每一者可被認為運算加權和之啟動的個別神經元。直觀地,輸入閘控制新值流入單元所達的程度,遺忘閘控制值保持在單元中所達的程度且輸出閘控制單元中之值用以運算LSTM單元之輸出啟動所達的程度。換言之,此等閘控制LSTM單元「記住」什 麼或其狀態如何受先前狀態影響。
遞迴神經網路之輸出層大體上經組態以接收來自最後隱藏層之輸入並在每一時間步驟處產生輸出,例如預測。輸出層可為soft-max層、邏輯層、線性層或類似者。Softmax輸出層產生相對於時間步驟之可能輸出的離散機率分佈。亦即,每一可能輸出係與離散分值相關聯。邏輯輸出層產生相對於時間步驟之可能輸出的分佈之參數,例如平均值、對數標度或混合權重。且線性層將最後隱藏層之輸出投射至適當輸出空間中。在一些實施方案中,遞迴神經網路不具有輸出層,亦即最後隱藏層之輸出為遞迴神經網路之輸出。
用於遞迴神經網路之訓練資料包括輸入序列及用於彼等輸入序列之標記。每一標記對應於在特定輸入序列之特定時間步驟處的所要或預期輸出。訓練遞迴神經網路涉及設定網路之權重(例如,輸入層、RNN單元及輸出層之權重)以最小化針對給定輸入序列之實際輸出與預期輸出之間的差異。若在針對給定輸入序列的實際輸出與預期輸出之間存在差異,則遞迴神經網路之權重可例如經由時間訓練技術使用習知反向傳播而更新。此項技術中已知的其他技術亦可用以更新遞迴神經網路之權重。
遞迴神經網路100為包括每隱藏層一個狀態暫存器及每隱藏層一個RNN單元的遞迴神經網路之硬體實施方案。在一些實施方案中,每一RNN單元為處理單元之脈動陣列中的處理單元。每一處理單元例如藉由包括共同地執行矩陣乘法之一組乘法累積單元及應用任何必要閘控功能並執行逐元素乘法的其他電路執行硬體中之遞迴神經網路層的矩陣乘法及其他操作。
在時間步驟N處,輸入單元110接收輸入序列中之輸入N並 產生彼輸入之特徵表示。RNN單元120及130使用遞迴神經網路之固定參數及儲存於每一隱藏層之狀態暫存器中之狀態資料兩者處理特徵表示。RNN單元130的輸出接著經提供至輸出單元140,其產生時間步驟N+1之輸出。RNN單元120及130亦更新其各別狀態暫存器中之狀態資料以反映輸入N。此狀態資料捕獲全部先前輸入及狀態。
圖2為以不同方式利用狀態暫存器的實例遞迴神經網路系統200之圖式。狀態暫存器210a至210n可各自儲存指定遞迴神經網路之不同內部狀態的資料。每一內部狀態及因此每一狀態暫存器對應於神經網路已經訓練以執行的各別不同任務。舉例而言,第一狀態暫存器可儲存指定對應於預測記憶體存取位址(亦即載入及儲存位址)之內部狀態的資料,而第二狀態暫存器可儲存指定對應於預測電腦程式分支之內部狀態的資料。同時,其他狀態暫存器可例如儲存指定對應於預測將來程式指令或快取未命中之內部狀態的資料。
RNN選擇器220(其為多工器)可基於序列識別資料選擇遞迴神經網路在特定時間使用的特定內部狀態。序列識別資料指定應載入至RNN運算單元230中的狀態暫存器(及因此內部狀態)。序列識別資料可基於指定RNN運算單元230應執行之特定任務(例如預測記憶體存取位址(相較於分支、程式指令或快取未命中))的使用者輸入。替代地,序列識別資料可基於關於當前輸入之觀測。舉例而言,序列識別資料可基於當前輸入為快取位址之觀測。在此情形中,序列識別資料可能指定對應於預測快取未命中之任務的內部狀態應載入至RNN運算單元230中。
遞迴神經網路系統200亦包括載入有一組固定參數之輸入單元240。輸入單元240可接收當前輸入,產生當前輸入之特徵表示,並 提供特徵表示至RNN運算單元230。
使用維護在RNN運算單元230中的所選擇狀態、特徵表示及一組固定權重,RNN運算單元230可產生用於任務之預測及下一狀態。若遞迴神經網路具有多個隱藏層,則RNN運算單元230可提供所產生預測至另一RNN運算單元,其將具有其自身狀態暫存器及RNN選擇器。此外,遞迴神經網路系統可視情況包括一輸出單元。同時,RNN運算單元230可提供用於任務之下一狀態至適當狀態暫存器210a至210n,從而覆寫彼暫存器之先前狀態。訓練類似於上文所描述之遞迴神經網路的多任務遞迴神經網路需要訓練遞迴神經網路以執行每一任務。
替代地,狀態暫存器210a至210n可各自儲存指定用於經訓練以預測複數個記憶體區中之電腦程式之記憶體存取位址的遞迴神經網路之用於複數個記憶體區中之每一者的分開之內部狀態的資料。以此方式藉由記憶體區解聚記憶體存取可改良記憶體存取預測,此係因為與遍及兩個或大於兩個記憶體區之記憶體存取相比,單個記憶體區內之記憶體存取大體上遵循更可預測圖案。亦即,RNN運算單元230當其預測特定記憶體區中而非遍及整個位址空間之記憶體存取時產生更準確預測。
圖3為用於處理多任務遞迴神經網路之實例程序300的流程圖。程序300係藉由經適當程式化電路執行。電路包括經組態以執行遞迴神經網路之操作的RNN單元、多個狀態暫存器及其他電路。每一狀態暫存器(i)經組態以儲存用於遞迴神經網路之內部狀態資料及(ii)對應於神經網路已經訓練以執行的多個任務之各別任務。
電路接收輸入序列中之當前輸入及序列識別資料(310)。輸入序列包括在多個時間步驟中之每一者處的各別輸入。時間步驟可或可不 係連續的。序列識別資料指定內部狀態資料載入至RNN單元中所藉以的任務(及因此狀態暫存器)。
電路基於序列識別資料識別待執行之特定任務(320)。序列識別資料可基於指定RNN單元應執行的一特定任務(例如,預測記憶體存取位址)(相較於分支、程式指令或快取未命中)的使用者輸入。替代地,序列識別資料可基於關於當前輸入之觀測。舉例而言,序列識別資料可基於當前輸入為快取位址之觀測。在此情形中,序列識別資料可能指定對應於預測快取未命中之任務的內部狀態應載入至RNN單元中。
電路自對應於所識別任務之狀態暫存器獲得內部狀態資料(330)。電路提供所獲得內部狀態資料及當前輸入至RNN單元以引起RNN單元處理所獲得內部狀態資料及當前輸入以產生用於所識別任務的神經網路輸出及經更新內部狀態資料(340)。
電路自RNN單元接收用於所識別任務之神經網路輸出及經更新內部狀態資料(350)。最終,電路寫入經更新內部狀態資料至對應於所識別任務之狀態暫存器(360)。
關於圖1及圖2描述之實例遞迴神經網路及關於圖3描述之實例程序可用以預測運算系統中之將來記憶體存取位址。
電腦程式使得運算系統對儲存於運算系統中之各種記憶體位置中的資料進行操作。一般而言,運算系統必須在其可對來自主記憶體或本端快取之資料進行操作之前將彼資料載入至本端暫存器中。但載入來自主記憶體之資料特別緩慢,此係因為一般而言,主記憶體較大且實體地遠離本端暫存器。因此常規地使得運算系統自主記憶體擷取資料的電腦程式比不使得運算系統自主記憶體擷取資料的電腦程式更緩慢地執行。藉由 自主記憶體預提取資料並在需要其之前將其儲存於較快本端快取中,運算系統可減少電腦程式之運行時間。遞迴神經網路可用以預測應被預提取的資料。
圖4為經組態以自記憶體預提取資料並將彼資料儲存於本端快取中的實例運算系統400之圖式。運算系統400可使用未描畫之一或多個處理器執行電腦程式指令。詳言之,運算系統400可將電腦程式指令儲存於指令記憶體中且接著按由電腦程式定義的次序執行指令。
運算系統400具有程式計數器410。程式計數器(亦即指令位址暫存器)為儲存指向待執行之下一電腦程式指令的值的暫存器。亦即,程式計數器410儲存一記憶體位址,將待執行的下一電腦程式指令儲存於該記憶體位址中。
當指令循環開始時,運算系統400自藉由程式計數器410指定的位址擷取下一電腦程式指令。儲存於程式計數器410中的位址對應於指令記憶體422中之位置,其為記憶體420中之記憶體區塊。
通常,給定電腦程式指令指定操作(例如,載入、儲存、加上、減去、反或、分支等)、一或多個源暫存器及目的地暫存器。運算系統400對儲存於源暫存器中之資料執行所指定操作並將結果儲存於目的地暫存器中。舉例而言,電腦程式指令可指定儲存於暫存器A中之資料應被添加至儲存於暫存器B中的資料且結果應儲存於暫存器C中。
一般而言,運算系統具有有限數目個本端暫存器,因此待被操作的資料僅僅當其被需要時經載入至彼等本端暫存器中。但自記憶體提取資料係耗時的且減緩電腦程式之執行。此問題之一個解決方案係預測在將來將被操作的資料,預提取彼資料,並將其儲存於較快本端記憶體 (諸如本端快取430)中。自本端快取提取資料比自主記憶體提取資料更快,此係因為本端快取一般而言比主記憶體實體地更接近於系統並小於主記憶體兩者。
但因為本端快取亦具有有限大小,因此運算系統可在任一給定時間在本端快取中僅僅儲存主記憶體之較小子集。因此,運算系統400可有利地預測將來記憶體存取位址之子集並將來自彼等位址之資料儲存於本端快取中。若運算系統進行準確預測,則運算系統可更快執行電腦程式指令。
運算系統400之預測子系統440經組態以接收先前程式計數器位址及對應記憶體存取位址之序列並預測將來記憶體存取位址。預測子系統40包括神經網路子系統442。神經網路子系統442可為關於圖2描述之遞迴神經網路系統。除了關於圖2描述之組件之外,神經網路子系統442還包括經組態以自多個記憶體區當中判定每一記憶體存取之特定記憶體區的記憶體區分類器444。藉由記憶體區分離記憶體存取可改良記憶體存取預測,此係因為與遍及兩個或大於兩個記憶體區之記憶體存取相比,單個記憶體區內之記憶體存取大體上遵循更可預測圖案。將關於圖5更詳細地描述將記憶體分割成區之重要性。
預測子系統440可實施於執行電腦程式所在的同一電腦上,或其可實施於不同電腦上。
在預測子系統440預測特定記憶體存取位址之後,運算系統400自彼位址預提取資料並將其儲存於本端快取430中。當電腦程式被執行時,預測子系統440繼續預測記憶體存取位址(運算系統400繼續自彼等位址預提取資料)。自本端快取430提取資料比自資料記憶體424提取資 料更快。此導致藉由運算系統400更快執行電腦程式。
儘管本說明書主要描述資料預提取,但本文中所描述的遞迴神經網路系統可經組態以在微處理器中進行其他時間序列預測。舉例而言,系統可用以自指令記憶體預提取指令。
系統亦可用以最佳化記憶體解疑。記憶體解疑為藉由不按照次序執行記憶體存取指令的運算系統採用的一組技術。技術偵測或預測記憶體操作之間的相依性以增加記憶體存取效率及速度。
本文中所描述的遞迴神經網路系統亦可用以最佳化快取替換策略。因為快取具有有限大小,因此當運算系統將資料置放至快取中時,其必須大體上自快取移除對應資料量。遞迴神經網路系統可預測自快取移除之最佳資料(例如,最不可能在不久的將來由運算系統使用的資料)。替代地,遞迴神經網路系統可預測最可能在不久的將來使用的資料並確保彼資料保留在快取中。舉例而言,在「最近最少使用」快取中,亦即在具有指定快取中之最近最少使用資料應被移除以有利於新的資料的替換策略的快取中,系統可更新經預測待在不久的將來使用的資料之「使用期位元」。更新使用期位元確保資料將不用新的資料替換。
圖5為用於預測在運算系統中執行的電腦程式之將來記憶體存取位址的實例程序500之流程圖。關於圖2描述的遞迴神經網路系統可執行實例程序500。替代地,程序500可實施於軟體中。為方便起見,程序500將描述為藉由在一或多個位置中的一或多個電腦之適當經程式化系統執行。
系統維護指定用於經訓練以預測若干記憶體區中的一電腦程式之記憶體存取位址的一遞迴神經網路的該若干記憶體區中之每一者的 一分開之內部狀態的資料(510)。
系統接收一輸入序列中之一當前輸入,該輸入序列定義一電腦程式之一先前記憶體存取位址序列(520)。輸入序列可為先前程式計數器位址及對應差異值之序列。每一差異值定義各別第一記憶體存取位址與各別第二記憶體存取位址之間的差。第一記憶體存取位址為當藉由對應程式計數器位址指向的指令被執行時存取的記憶體位址。舉例而言,特定程式計數器位址可指向儲存一指令的記憶體位址,該指令當經執行時自記憶體提取資料。在此情況下,彼資料之記憶體位址為第一記憶體存取位址。第二記憶體存取位址為在第一記憶體位址被存取之前存取的記憶體位址。每一先前記憶體存取位址為運算系統之主記憶體中的若干記憶體區中之一者中的位址。系統可藉由識別記憶體存取觸碰之記憶體頁判定記憶體區。替代地,系統可藉由將叢集演算法(例如,k均值叢集演算法)應用於記憶體存取而判定記憶體區。
在一些實施方案中,系統產生當前輸入之輸入表示。舉例而言,在其中當前輸入為程式計數器位址及差異值的實施方案中,系統可接著將程式計數器位址及差異值映射至嵌入於高維空間中的數值,其充當輸入表示。嵌入為高維實數值向量。
系統可使用藉由經訓練神經網路產生的查找表產生嵌入。舉例而言,程式計數器位址及差異值對可映射至索引,且該索引可用以在查找表中查找嵌入。替代地,系統可藉由直接提供程式計數器位址及差異值至經訓練神經網路而產生嵌入。
識別由輸入序列中之當前輸入定義的記憶體存取位址之一特定記憶體區(530)。
自維護之資料中指定的內部狀態中選擇用於特定記憶體區之內部狀態(540)。
根據用於特定記憶體區之所選擇內部狀態,系統使用遞迴神經網路處理輸入序列中之當前輸入以產生輸出並更新所選擇內部狀態(550)。輸出定義預測記憶體存取位址之機率分佈。預測記憶體存取位址為特定記憶體區中之電腦程式之將來記憶體存取位址。
系統可設定臨限值準則並判定分佈中之該等機率的任何者是否滿足臨限值準則。舉例而言,臨限值準則可為0.5之機率,亦即特定記憶體位址將為將來記憶體存取位址(亦即,電腦程式將引起運算系統存取記憶體位址中之資料)的50%機會。系統可動態調整臨限值準則。舉例而言,系統可在記憶體頻寬利用率為高時設定較高臨限值並在記憶體頻寬利用率為低時設定較低臨限值。
回應於判定機率分佈中之特定機率滿足臨限值準則,系統可自與彼機率相關聯的記憶體位址提取資料並將彼資料儲存於本端快取中。在一些情況下,系統可判定多個機率滿足臨限值準則並自與彼等機率相關聯的多個記憶體位址預提取資料。如此進行增加正確資料被預提取的可能性。此減少在運算系統上執行的電腦程式之運行時間。
系統大體上經組態以預測所識別記憶體區中之下一記憶體存取位址。然而,有可能訓練遞迴神經網路以預測在將來較遠的記憶體存取位址。舉例而言,遞迴神經網路可經訓練以預測所識別記憶體區中之下一第二(N+2)、下一第四(N+4)或下一第八(N+8)記憶體存取位址。相較於依序記憶體存取位址,遞迴神經網路可經訓練以例如藉由提供差異值至遞迴神經網路而預測下一第二記憶體存取位址,該等差異值各自使用在時間 步驟N處之記憶體存取位址及在時間步驟N-2處之記憶體存取位址來計算。
在一些實施方案中,系統可插入一提取指令至電腦程式中,而非如上文所描述預提取資料。提取指令之執行引起資料待自與滿足臨限值準則之機率相關聯的將來記憶體位址提取。提取指令必須在將另外引起資料待自記憶體提取的電腦程式之將來指令之前插入至電腦程式中。以此方式,當執行將來指令時將來指令需要的資料將已經在本端快取中。將來指令之執行將接著導致快取命中而非快取未命中,且系統將不需要自記憶體提取資料。此使電腦程式運行較快,此係由於自記憶體提取資料為時間密集。若多於一個機率滿足臨限值準則,則系統可插入多於一個提取指令至電腦程式中。
在一些實施方案中,系統提供額外特徵至遞迴神經網路。舉例而言,系統可提供最新記憶體存取係負載抑或儲存器的指示。系統亦可提供當前快取佔有率至遞迴神經網路。當前快取佔有率可影響如上文所描述之臨限值準則。
最終,系統將經更新所選擇內部狀態與所維護資料中之特定記憶體區相關聯(560)。
本說明書中所描述之標的物及功能性操作之實施例可實施於數位電子電路中、有形地體現之電腦軟體或韌體中、包括在本說明書中所揭示之結構及其結構等效物的電腦硬體中,或其中之一或多種的組合中。本說明書中所描述之標的物的實施例可實施為一或多個電腦程式,亦即經編碼於有形非暫時性儲存媒體上以供資料處理設備執行或用以控制資料處理設備之操作的電腦程式指令之一或多個模組。電腦儲存媒體可為機 器可讀存儲裝置、機器可讀儲存基板、隨機或串行存取記憶體裝置,或其中之一或多者的組合。替代地或另外,程式指令可經編碼於人工產生之傳播信號(例如機器產生之電氣、光學或電磁信號)上,其經產生以編碼資訊以用於傳輸至適合之接收器設備以用於由資料處理設備執行。
術語「資料處理設備」指代資料處理硬體並涵蓋用於處理資料之全部種類設備、裝置及機器,包括(作為舉例)可程式化處理器、電腦或多個處理器或電腦。該設備亦可為或進一步包括現成的或訂製並行處理子系統,例如,GPU或另一種類專用處理子系統。該設備亦可為或進一步包括專用邏輯電路,例如場可程式化閘陣列(FPGA)或特殊應用積體電路(ASIC)。除了硬體之外,該設備可視情況包括建立用於電腦程式之執行環境的程式碼(例如,構成處理器韌體之程式碼)、協定堆疊、資料庫管理系統、作業系統或其中之一或多者的組合。
亦可稱為或描述為程式、軟體、軟體應用程式、app、模組、軟體模組、指令碼或程式碼的電腦程式可以任何形式程式設計語言(包括編譯或解釋語言,或陳述或程序語言)寫入,且其可以任何形式部署,包括作為獨立程式或作為模組、組件、次常式或適合用於運算環境之其他單元。程式可但不必對應於檔案系統中之檔案。程式可儲存於保持其他程式或資料(例如,儲存於標示語言文獻中之一或多個指令碼)的檔案之一部分中、儲存於專用於所討論之程式的單個檔案中,或儲存於多個經協調檔案(例如,儲存一或多個模組、子程式或程式碼之部分的檔案)中。電腦程式可經部署以在一個電腦上或在位於一個部位處或遍及多個部位分佈並藉由資料通信網路互連的多個電腦上執行。
如在本說明書中所用,「引擎」或「軟體引擎」指代提供 不同於輸入之輸出的軟體實施之輸入/輸出系統。引擎可為經編碼功能性區塊,諸如庫、平台軟體開發套組(「SDK」)或物件。每一引擎可實施於包括一或多個處理器及電腦可讀媒體之任一適當類型運算裝置(例如,伺服器、行動電話、平板電腦、筆記型電腦、音樂播放器、電子書閱讀器、膝上型電腦或桌上型電腦、PDA、智慧型手機或其他靜止或攜帶型裝置)上。此外,引擎中之兩者或大於兩者可實施於同一運算裝置或不同運算裝置上。
本說明書中所描述之程序及邏輯流程可藉由執行一或多個電腦程式之一或多個可程式化電腦執行,以藉由操作輸入資料及產生輸出執行功能。程序及邏輯流程亦可藉由專用邏輯電路(例如,FPGA或ASIC)或藉由專用邏輯電路與一或多個經程式化電腦之組合執行。
適用於執行電腦程式之電腦可基於一般或特殊用途微處理器或其兩者,或任何其他種類之中央處理單元。一般而言,中央處理單元將自唯讀記憶體或隨機存取記憶體或其兩者接收指令及資料。電腦之必需元件係用於執行或執行指令之中央處理單元,及用於儲存指令及資料之一或多個記憶體裝置。中央處理單元及記憶體可藉由專用邏輯電路補充或併入於專用邏輯電路中。一般而言,電腦亦將包括或經可操作地耦接以自用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟)接收資料或將資料轉移至一或多個大容量儲存裝置或二者皆有。然而,電腦無需具有此類裝置。此外,電腦可嵌入於另一裝置中,例如行動電話、個人數位助理(PDA)、行動音訊或視訊播放器、遊戲控制台、全球定位系統(GPS)接收器或攜帶型儲存裝置,例如,通用串列匯流排(USB)隨身碟,僅舉幾例。
適合於儲存電腦程式指令及資料之電腦可讀媒體包括所有形式之非揮發性記憶體、媒體及記憶體裝置,包括(藉助於實例)半導體記憶體裝置,例如EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟機或抽取式磁碟;磁光碟;及CD-ROM及DVD-ROM磁碟。
為提供與使用者之互動,本說明書中所描述之標的物的實施例可實施於具有用於向使用者顯示資訊的顯示裝置(例如,陰極射線管(CRT)或液晶顯示器(LCD)監視器)以及鍵盤及指標裝置(例如,滑鼠、軌跡球)或使用者可提供輸入至電腦所藉以的呈現敏感顯示器或其他表面之電腦上。其他種類的裝置亦可用以提供與使用者的互動;舉例而言,提供給使用者的回饋可為任何形式的感官回饋(例如,視覺回饋、聽覺回饋或觸覺回饋);且來自使用者的輸入可以任何形式接收,包括聲學、話音或觸覺輸入。另外,電腦可藉由發送文獻至由使用者使用的裝置及自該裝置接收文獻與使用者互動;例如藉由回應於自網頁瀏覽器接收到之請求而發送網頁至使用者之裝置上的網頁瀏覽器。此外,電腦可藉由發送文字訊息或其他形式之訊息至個人裝置(例如,智慧型電話)、運行訊息傳遞應用程式及隨後接收來自使用者之回應性訊息而與使用者互動。
儘管本說明書含有許多特定實施方案細節,但此等不應被認作任何本發明範疇或可能主張之內容範疇之限制,而實際上認作可特定針對於特定發明之特定實施例之特徵的描述。在分開之實施例之情況下描述於本說明書中之某些特徵亦可在單個實施例中以組合形式實施。相反地,在單個實施例之情況下所描述之各種特徵亦可獨立地在多個實施例中實施或以任何適合子組合來實施。此外,雖然上文可能將特徵描述為在某些組合中起作用且甚至最初按此來主張,但來自所主張組合之一或多個特 徵在一些情況下可自該組合刪除,且所主張組合可針對子組合或子組合之變化。
類似地,雖然在圖式中以特定次序來描繪操作,但不應將此理解為需要以所展示的特定次序或以順序次序執行此等操作,或執行所有所說明操作以達成合乎需要之結果。在某些情形下,多任務及並行處理可為有利的。此外,不應將在上述實施例中之各種系統模組及組件之分離理解為需要在所有實施例中進行此分離,且應理解,所描述之程式組件及系統可大體上在單個軟體產品中整合在一起或經封裝至多個軟體產品中。
已描述標的物之特定實施例。其他實施例在以下申請專利範圍之範疇內。舉例而言,可以不同次序執行申請專利範圍中所述之動作且仍實現合乎需要的結果。作為一個實例,附圖中描繪之程序未必需要展示之特定次序,或依序次序,以實現所需之結果。在某些情況下,多任務及並行處理可為有利的。
300:程序
310:步驟
320:步驟
330:步驟
340:步驟
350:步驟
360:步驟

Claims (19)

  1. 一種用於多任務遞迴神經網路之方法,其包含:維護指定用於經訓練以預測複數個記憶體區中的一電腦程式之記憶體存取位址的一遞迴神經網路的該複數個記憶體區中之每一者的一分開之內部狀態的資料;接收一輸入序列中之一當前輸入,該輸入序列定義該電腦程式之一先前記憶體存取位址序列;識別由該輸入序列中之該當前輸入定義的該記憶體存取位址之一特定記憶體區;自該維護之資料中指定的該等內部狀態中選擇用於該特定記憶體區之該內部狀態;根據用於該特定記憶體區之該所選擇內部狀態使用該遞迴神經網路處理該輸入序列中之該當前輸入以:產生一輸出,該輸出定義一預測記憶體存取位址之一機率分佈,該預測之記憶體存取位址為該特定記憶體區中之該電腦程式之一將來記憶體存取位址,及更新該特定記憶體區之該所選擇內部狀態;及將該經更新所選擇內部狀態與該所維護資料中之該特定記憶體區相關聯。
  2. 如請求項1之方法,其中該預測記憶體存取位址為該特定記憶體區中之該電腦程式之一下一記憶體存取位址。
  3. 如請求項1之方法,其中該輸入序列包含該電腦程式之一先前程式計數器位址序列及對應差異值,其中每一差異值定義一各別第一記憶體存取位址與一各別第二記憶體存取位址之間的一差,其中該第一記憶體存取位址為當藉由該對應程式計數器位址指向的一指令被執行時存取的一位址,且其中該第二記憶體存取位址為在該第一記憶體位址被存取之前存取的一位址。
  4. 如請求項3之方法,其中該第一記憶體存取位址及該第二記憶體存取位址係在該複數個記憶體區中之一同一記憶體區中。
  5. 如請求項1之方法,其中與該預測記憶體存取位址相關聯的一記憶體存取為一讀取存取。
  6. 如請求項5之方法,其進一步包含:判定該分佈中之一或多個機率滿足一臨限值準則;作為回應,自與滿足該準則之該一或多個機率相關聯的該一或多個預測記憶體存取位址中提取資料;及將該資料儲存於本端快取中。
  7. 如請求項5之方法,其進一步包含:判定該分佈中之一或多個機率滿足一臨限值準則;及自動地插入一或多個預提取指令至該電腦程式中,其中該一或多個 預提取指令之執行引起資料待自與滿足該準則之該一或多個機率相關聯的該一或多個預測記憶體存取位址提取,其中該一或多個預提取指令係在引起該預測記憶體存取之一指令之前插入至該電腦程式中。
  8. 一種用於多任務遞迴神經網路之設備,其包含:一遞迴神經網路單元(RNN單元),其經組態以執行一遞迴神經網路之操作;複數個狀態暫存器,其中每一狀態暫存器經組態以(i)儲存用於該遞迴神經網路之內部狀態資料及(ii)對應於該神經網路已經訓練以執行的複數個任務中之一各別任務;及電路,其經組態以執行操作,該等操作包含:接收一輸入序列中之一當前輸入及序列識別資料,基於該序列識別資料識別該複數個任務中之一任務,自對應於該所識別任務之該狀態暫存器獲得內部狀態資料,提供該獲得之內部狀態資料及該當前輸入至該RNN單元以使得該RNN單元處理該獲得之內部狀態資料及該當前輸入以產生用於該所識別任務之一神經網路輸出及經更新內部狀態資料,自該RNN單元接收用於該所識別任務之該神經網路輸出及該經更新內部狀態資料,及寫入該經更新內部狀態資料至對應於該所識別任務之該狀態暫存器。
  9. 如請求項8之設備,其中該序列識別資料係基於該當前輸入之一特 性。
  10. 如請求項8之設備,其中該序列識別資料係基於一使用者輸入。
  11. 如請求項8之設備,其中該RNN單元經組態以維護該遞迴神經網路之一組固定權重。
  12. 如請求項8之設備,其中該電路包含一多工器,該多工器經組態以:基於該序列識別資料選擇對應於該所識別任務之該狀態暫存器;及提供該所獲得內部狀態資料至該RNN單元。
  13. 一種用於多任務遞迴神經網路之系統,其包含一或多個電腦及儲存指令之一或多個儲存裝置,該等指令在由一或多個電腦執行時引起該一或多個電腦執行包含以下各者之操作:維護指定用於經訓練以預測複數個記憶體區中的一電腦程式之記憶體存取位址的一遞迴神經網路的該複數個記憶體區中之每一者的一分開之內部狀態的資料;接收一輸入序列中之一當前輸入,該輸入序列定義該電腦程式之一先前記憶體存取位址序列;識別由該輸入序列中之該當前輸入定義的該記憶體存取位址之一特定記憶體區;自該維護之資料中指定的該等內部狀態中選擇用於該特定記憶體區之該內部狀態; 根據用於該特定記憶體區之該所選擇內部狀態使用該遞迴神經網路處理該輸入序列中之該當前輸入以:產生一輸出,該輸出定義一預測記憶體存取位址之一機率分佈,該預測之記憶體存取位址為該特定記憶體區中之該電腦程式之一將來記憶體存取位址,及更新該特定記憶體區之該所選擇內部狀態;及將該經更新所選擇內部狀態與該所維護資料中之該特定記憶體區相關聯。
  14. 如請求項13之系統,其中該預測記憶體存取位址為該特定記憶體區中之該電腦程式之一下一記憶體存取位址。
  15. 如請求項13之系統,其中該輸入序列包含該電腦程式之一先前程式計數器位址序列及對應差異值,其中每一差異值定義一各別第一記憶體存取位址與一各別第二記憶體存取位址之間的一差,其中該第一記憶體存取位址為當藉由該對應程式計數器位址指向的一指令被執行時存取的一位址,且其中該第二記憶體存取位址為在該第一記憶體位址被存取之前存取的一位址。
  16. 如請求項15之系統,其中該第一記憶體存取位址及該第二記憶體存取位址係在該複數個記憶體區中之一同一記憶體區中。
  17. 如請求項13之系統,其中與該預測記憶體存取位址相關聯的一記憶 體存取為一讀取存取。
  18. 如請求項17之系統,該等操作進一步包含:判定該分佈中之一或多個機率滿足一臨限值準則;作為回應,自與滿足該準則之該一或多個機率相關聯的該一或多個預測記憶體存取位址中提取資料;及將該資料儲存於本端快取中。
  19. 如請求項18之系統,該等操作進一步包含:判定該分佈中之一或多個機率滿足一臨限值準則;及自動地插入一或多個預提取指令至該電腦程式中,其中該一或多個預提取指令之執行引起資料待自與滿足該準則之該一或多個機率相關聯的該一或多個預測記憶體存取位址提取,其中該一或多個預提取指令係在引起該預測記憶體存取之一指令之前插入至該電腦程式中。
TW108125405A 2018-11-19 2019-07-18 用於多任務遞迴神經網路的方法、系統及設備 TWI808219B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862769512P 2018-11-19 2018-11-19
US62/769,512 2018-11-19
US16/262,785 2019-01-30
US16/262,785 US11416733B2 (en) 2018-11-19 2019-01-30 Multi-task recurrent neural networks

Publications (2)

Publication Number Publication Date
TW202020746A TW202020746A (zh) 2020-06-01
TWI808219B true TWI808219B (zh) 2023-07-11

Family

ID=70726431

Family Applications (2)

Application Number Title Priority Date Filing Date
TW112122136A TW202341009A (zh) 2018-11-19 2019-07-18 用於多任務遞迴神經網路的方法、系統及設備
TW108125405A TWI808219B (zh) 2018-11-19 2019-07-18 用於多任務遞迴神經網路的方法、系統及設備

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW112122136A TW202341009A (zh) 2018-11-19 2019-07-18 用於多任務遞迴神經網路的方法、系統及設備

Country Status (10)

Country Link
US (2) US11416733B2 (zh)
EP (1) EP3884391A1 (zh)
JP (3) JP7057437B2 (zh)
KR (2) KR20240010548A (zh)
CN (2) CN118170695A (zh)
BR (1) BR112020020110A2 (zh)
CA (1) CA3095205C (zh)
SG (1) SG11202009486PA (zh)
TW (2) TW202341009A (zh)
WO (1) WO2020106581A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494597B2 (en) * 2019-03-22 2022-11-08 Sri International Generative memory for lifelong machine learning
US11568246B2 (en) 2019-05-09 2023-01-31 Sri International Synthetic training examples from advice for training autonomous agents
US11586895B1 (en) * 2019-06-17 2023-02-21 Green Mountain Semiconductor, Inc. Recursive neural network using random access memory
US11868871B1 (en) * 2019-08-16 2024-01-09 Perceive Corporation Circuit for executing stateful neural network
JP7532934B2 (ja) 2020-06-15 2024-08-14 富士電機株式会社 機器、方法及びプログラム
TWI753630B (zh) * 2020-10-13 2022-01-21 財團法人工業技術研究院 基於神經網路的分類器及分類方法
CN112528664B (zh) * 2021-02-05 2021-04-27 湖南工商大学 基于多任务联合学习与地址层级结构知识的地址匹配方法
CN113705839B (zh) * 2021-09-13 2023-10-20 北京博瑞华通科技有限公司 一种燃料电池电堆的预测性维护方法以及维护系统
WO2023055462A1 (en) * 2021-09-30 2023-04-06 Micron Technology, Inc. Delta predictions for page scheduling
CN114268939B (zh) * 2021-11-12 2024-03-08 重庆市中冉数字科技有限公司 一种移动通信中异常用户识别的方法及智能设备
CN116208583A (zh) * 2023-01-16 2023-06-02 北京邮电大学 地址配置方法及相关设备
CN116431315B (zh) * 2023-06-07 2023-08-29 成都登临科技有限公司 批处理任务的处理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336482B1 (en) * 2015-07-27 2016-05-10 Google Inc. Predicting likelihoods of conditions being satisfied using recurrent neural networks
TWI612488B (zh) * 2016-12-05 2018-01-21 財團法人資訊工業策進會 用於預測商品的市場需求的計算機裝置與方法
CN108780521A (zh) * 2016-02-04 2018-11-09 渊慧科技有限公司 关联长短期记忆神经网络层
US20180329982A1 (en) * 2017-05-09 2018-11-15 Apple Inc. Context-aware ranking of intelligent response suggestions
US20180329883A1 (en) * 2017-05-15 2018-11-15 Thomson Reuters Global Resources Unlimited Company Neural paraphrase generator

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10171653A (ja) * 1996-10-09 1998-06-26 Nkk Corp 情報処理装置の分岐予測方式及びそれを用いた装置
US9141390B2 (en) * 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US7664644B1 (en) 2006-06-09 2010-02-16 At&T Intellectual Property Ii, L.P. Multitask learning for spoken language understanding
US8938655B2 (en) 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
US8200593B2 (en) * 2009-07-20 2012-06-12 Corticaldb Inc Method for efficiently simulating the information processing in cells and tissues of the nervous system with a temporal series compressed encoding neural network
BR112012030903A2 (pt) * 2010-06-07 2019-09-24 Affectiva Inc método imnplantado por computador para analisar estados mentais, produto de programa de computador e sistema para analisar estados mentais
US8965819B2 (en) * 2010-08-16 2015-02-24 Oracle International Corporation System and method for effective caching using neural networks
US8683178B2 (en) 2011-01-21 2014-03-25 Apple Inc. Sharing a fault-status register when processing vector instructions
CN105264501B (zh) * 2013-06-19 2018-06-08 英派尔科技开发有限公司 定位多核处理器中的被高速缓存的数据的方法和装置
US9978014B2 (en) 2013-12-18 2018-05-22 Intel Corporation Reconfigurable processing unit
WO2015130928A1 (en) * 2014-02-26 2015-09-03 Nancy Packes, Inc. Real estate evaluating platform methods, apparatuses, and media
JP6444494B2 (ja) 2014-05-23 2018-12-26 データロボット, インコーポレイテッド 予測データ分析のためのシステムおよび技術
TWI655587B (zh) 2015-01-22 2019-04-01 美商前進公司 神經網路及神經網路訓練的方法
WO2017015390A1 (en) 2015-07-20 2017-01-26 University Of Maryland, College Park Deep multi-task learning framework for face detection, landmark localization, pose estimation, and gender recognition
US9652712B2 (en) 2015-07-27 2017-05-16 Google Inc. Analyzing health events using recurrent neural networks
US9607616B2 (en) 2015-08-17 2017-03-28 Mitsubishi Electric Research Laboratories, Inc. Method for using a multi-scale recurrent neural network with pretraining for spoken language understanding tasks
US10546650B2 (en) * 2015-10-23 2020-01-28 Google Llc Neural network for processing aptamer data
EP3360081A1 (en) * 2015-11-12 2018-08-15 Google LLC Convolutional gated recurrent neural networks
US10410113B2 (en) 2016-01-14 2019-09-10 Preferred Networks, Inc. Time series data adaptation and sensor fusion systems, methods, and apparatus
EP3398117B1 (en) 2016-02-05 2023-12-20 Deepmind Technologies Limited Augmenting neural networks with external memory
US11783173B2 (en) 2016-06-23 2023-10-10 Microsoft Technology Licensing, Llc Multi-domain joint semantic frame parsing
US10154051B2 (en) * 2016-08-31 2018-12-11 Cisco Technology, Inc. Automatic detection of network threats based on modeling sequential behavior in network traffic
US10878314B2 (en) * 2017-03-09 2020-12-29 Alphaics Corporation System and method for training artificial intelligence systems using a SIMA based processor
US11250311B2 (en) * 2017-03-15 2022-02-15 Salesforce.Com, Inc. Deep neural network-based decision network
EP3563302A1 (en) * 2017-04-20 2019-11-06 Google LLC Processing sequential data using recurrent neural networks
CN108197701A (zh) 2018-02-05 2018-06-22 哈工大机器人(合肥)国际创新研究院 一种基于rnn的多任务学习方法
JP2019204335A (ja) 2018-05-24 2019-11-28 株式会社日立製作所 データ処理装置およびプリフェッチ方法
US20190370632A1 (en) * 2018-05-31 2019-12-05 Google Llc Computer system prediction machine learning models
US20200193268A1 (en) * 2018-12-14 2020-06-18 Advanced Micro Devices, Inc. Multi-instance recurrent neural network prediction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336482B1 (en) * 2015-07-27 2016-05-10 Google Inc. Predicting likelihoods of conditions being satisfied using recurrent neural networks
CN108780521A (zh) * 2016-02-04 2018-11-09 渊慧科技有限公司 关联长短期记忆神经网络层
TWI612488B (zh) * 2016-12-05 2018-01-21 財團法人資訊工業策進會 用於預測商品的市場需求的計算機裝置與方法
US20180329982A1 (en) * 2017-05-09 2018-11-15 Apple Inc. Context-aware ranking of intelligent response suggestions
US20180329883A1 (en) * 2017-05-15 2018-11-15 Thomson Reuters Global Resources Unlimited Company Neural paraphrase generator

Also Published As

Publication number Publication date
KR20200127028A (ko) 2020-11-09
CA3095205C (en) 2023-05-02
CN112970006A (zh) 2021-06-15
WO2020106581A1 (en) 2020-05-28
CN118170695A (zh) 2024-06-11
TW202020746A (zh) 2020-06-01
JP2021525404A (ja) 2021-09-24
EP3884391A1 (en) 2021-09-29
US11416733B2 (en) 2022-08-16
JP7494242B2 (ja) 2024-06-03
JP2022109919A (ja) 2022-07-28
JP7057437B2 (ja) 2022-04-19
CA3095205A1 (en) 2020-05-28
US20230033000A1 (en) 2023-02-02
SG11202009486PA (en) 2020-10-29
US20200160150A1 (en) 2020-05-21
TW202341009A (zh) 2023-10-16
KR20240010548A (ko) 2024-01-23
JP2024119850A (ja) 2024-09-03
BR112020020110A2 (pt) 2021-05-25
CN112970006B (zh) 2024-04-09
KR102625762B1 (ko) 2024-01-16
US12033056B2 (en) 2024-07-09

Similar Documents

Publication Publication Date Title
TWI808219B (zh) 用於多任務遞迴神經網路的方法、系統及設備
TW202004497A (zh) 電腦系統預測機器學習模型
Hashemi et al. Learning memory access patterns
JP6790286B2 (ja) 強化学習を用いたデバイス配置最適化
CN109844776B (zh) 具有片上学习和随机时间步长控制的可编程神经元核心
JP2021521505A (ja) 包括的機械学習サービスを提供するアプリケーション開発プラットフォームおよびソフトウェア開発キット
EP3446260A1 (en) Memory-efficient backpropagation through time
CN108804141A (zh) 支持所学习的分支预测器
WO2018211143A1 (en) Neural network system
CN109716364A (zh) 使用延迟因果更新的突触前学习
KR102660544B1 (ko) 제어 장치, 컨트롤러, 제어 시스템, 제어 방법, 및 제어 프로그램
CN108475346B (zh) 神经随机访问机器
WO2020146724A1 (en) Address manipulation using indices and tags
KR20240148098A (ko) 태스크 관계를 파악하는 연속학습 기반의 사용자 표현을 위한 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
US20240127120A1 (en) Method and system for compressing model for natural language understanding with layer pruning
US20220367052A1 (en) Neural networks with feedforward spatial transformation units
CN118355364A (zh) 可变历史记录长度感知器分支预测器
KR20240104560A (ko) 통합 가상 메모리 관리 방법 및 장치