TW202134861A - 交錯記憶體請求以加速記憶體存取 - Google Patents

交錯記憶體請求以加速記憶體存取 Download PDF

Info

Publication number
TW202134861A
TW202134861A TW110104564A TW110104564A TW202134861A TW 202134861 A TW202134861 A TW 202134861A TW 110104564 A TW110104564 A TW 110104564A TW 110104564 A TW110104564 A TW 110104564A TW 202134861 A TW202134861 A TW 202134861A
Authority
TW
Taiwan
Prior art keywords
request
data
requests
sub
memory
Prior art date
Application number
TW110104564A
Other languages
English (en)
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 TW202134861A publication Critical patent/TW202134861A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明描述用於交錯記憶體請求以加速經組態以實施一神經網路模型之一硬體電路處之記憶體存取之方法、系統及設備,其包含電腦可讀媒體。一種系統產生針對該系統之一記憶體處理之多個請求。各請求用於自該記憶體擷取資料。針對各請求,該系統基於使用該請求擷取之該資料之一各別大小產生多個子請求。該系統產生一交錯子請求序列,其包含在一第二請求之各別子請求之間交錯的一第一請求之各別子請求。基於該交錯子請求序列,該系統之一模組接收自該記憶體之不同位址位置存取的資料之各別部分。該系統使用在該硬體電路處實施之該神經網路模型來處理資料之該等各別部分之各者以產生一神經網路推理。

Description

交錯記憶體請求以加速記憶體存取
本說明書大體上係關於用於執行神經網路運算之一硬體電路之電路系統。
神經網路係採用一或多層節點來產生一接收輸入之一輸出(例如一分類)之機器學習模型。除一輸出層之外,一些神經網路亦包含一或多個隱藏層。各隱藏層之輸出用作為網路中之一或多個其他層(例如其他隱藏層或網路之輸出層)之輸入。網路之一些層根據一各別組參數之當前值自一接收輸入產生一輸出。一些神經網路係經組態用於影像處理之卷積神經網路(CNN)或經組態用於語音及語言處理之遞迴神經網路(RNN)。
一CNN之一神經網路層可具有一相關聯組核心,其可對應於參數或權重。該相關聯組核心用於透過神經網路層處理輸入(例如一批輸入)以產生層之一對應輸出用於運算一神經網路推理。一批輸入及一組核心可表示為輸入及權重之一張量,即,一多維陣列。實施一神經網路之一硬體電路包含具有由一位址值識別之位置之記憶體。記憶體位置可對應於一張量之元素且張量元素可使用電路之控制邏輯遍歷或存取。例如,控制邏輯可判定或運算一元素之一記憶體位址值以載入或儲存元素之對應資料值。
本發明描述具有一改良架構之一硬體電路,其用於實施用於交錯多個請求以自一記憶體之位址位置存取及擷取資料之資料處理技術。更具體而言,記憶體存取請求經交錯以加速包含硬體電路之一運算系統處之記憶體存取。硬體電路經組態以實施一神經網路模型,神經網路模型用於使用自記憶體之位址位置擷取之資料來運算一神經網路推理。
系統產生經執行以存取記憶體位置之多個請求,且各請求用於擷取資料值用於透過模型之神經網路層處理。針對各請求,系統基於使用請求擷取之資料之一各別大小產生多個子請求。系統產生包含在一第二請求之各別子請求之間交錯的一第一請求之各別子請求之一交錯子請求序列。
交錯子請求序列由系統之一記憶體控制器執行以根據各子請求之參數擷取資料值。基於交錯子請求序列,包含於系統之一跨展器(trans-unroller)模組中之一重排序緩衝器接收自記憶體之不同位址位置存取的資料之各別部分。系統使用在硬體電路處實施之神經網路模型來處理資料之各別部分之各者以產生神經網路推理。
本說明書中所描述之標的之一態樣可體現為一種用於使用一系統產生一神經網路之一神經網路輸出之方法,該系統包含記憶體及經組態以實施該神經網路之一硬體電路。該方法包含產生多個請求,各請求用於自該記憶體擷取資料。針對該多個請求之各請求,該方法包含基於使用該請求擷取之該資料之一各別大小產生多個子請求。該方法亦包含:產生包含在一第二請求之各別子請求之間交錯的一第一請求之各別子請求之一交錯子請求序列;基於該交錯子請求序列接收自該記憶體之各別位址位置存取的資料之各別部分;及使用在該硬體電路處實施之該神經網路來處理資料之該等各別部分之各者以產生該神經網路輸出。
此等及其他實施方案可各視情況包含以下特徵之一或多者。例如,在一些實施方案中,該硬體電路包含一重排序緩衝器且該方法包含:在該重排序緩衝器處依與該交錯子請求序列一致之一順序接收資料之該等各別部分;及由該重排序緩衝器使對應於該第一請求之資料之各別部分重排序以形成使用該第一請求擷取之該資料。
在一些實施方案中,該硬體電路包含一重排序緩衝器且該方法包含:在該重排序緩衝器處依與該交錯子請求序列一致之一順序接收資料之該等各別部分;及由該重排序緩衝器使對應於該第二請求之資料之各別部分重排序以形成使用該第二請求擷取之該資料;或由該重排序緩衝器提供對應於該第二請求之資料之各別部分而不使對應於該第二請求之資料之該等各別部分重排序。
該方法包含針對該多個請求之各請求,基於該請求中之位址位元產生該請求之一雜湊值,該等位址位元識別儲存使用該請求擷取之該資料之一部分之該記憶體中之至少一位址位置。在一些實施方案中,該方法包含基於該請求之該雜湊值判定該請求之一庫指派。該庫指派指示在該系統處理自該記憶體擷取資料之該請求時存取的該記憶體之一記憶體庫。
產生該交錯子請求序列可包含基於該第一請求之一各別庫指派及該第二請求之一各別庫指派產生該交錯子請求序列。在一些實施方案中,產生該交錯子請求序列包含:識別該第一請求之一各別異動類型;識別該第二請求之一各別異動類型;及基於該第一請求及該第二請求之該各別異動類型引起該第一請求之該等各別子請求在該第二請求之該等各別子請求之間交錯。
產生該多個子請求可包含基於在一單一記憶體循環期間可存取的資料之一臨限量產生該多個子請求,該單一記憶體循環經執行以存取該記憶體之一位址位置。在一些實施方案中,產生該多個子請求包含:基於該擷取資料之該各別大小及可自該單一記憶體循環存取的資料之一臨限量剖析該請求;回應於剖析該請求,形成該請求之各別部分;及使用該請求之該等各別部分之各者產生該多個子請求。該請求之該等各別部分之各者可對應於可自該單一記憶體存取循環存取的資料之該臨限量。
本發明描述用於交錯記憶體請求以加速經組態以實施一神經網路模型之一硬體電路處之記憶體存取之方法、系統及設備,其包含電腦可讀媒體。一種系統產生針對該系統之一記憶體處理之多個請求。各請求用於自該記憶體擷取資料。針對各請求,該系統基於使用該請求擷取之該資料之一各別大小產生多個子請求。該系統產生包含在一第二請求之各別子請求之間交錯的一第一請求之各別子請求之一交錯子請求序列。基於該交錯子請求序列,該系統之一模組接收自該記憶體之不同位址位置存取的資料之各別部分。該系統使用在該硬體電路處實施之該神經網路模型來處理資料之該等各別部分之各者以產生一神經網路推理。
此及其他態樣之其他實施方案包含經組態以執行在電腦儲存裝置上編碼之方法之動作之對應系統、設備及電腦程式。因此,一或多個電腦之一系統可由安裝於系統上以在操作中引起系統執行動作之軟體、韌體、硬體或其等之一組合組態。因此,一或多個電腦程式可藉由具有指令來組態,指令在由資料處理設備執行時引起設備執行動作。
本說明書中所描述之標的可在特定實施例中實施以實現以下優點之一或多者。
本發明描述可經實施以最佳化一記憶體控制器執行且最終對一大系統記憶體中之記憶體庫執行多個小(或離散)記憶體存取操作之方式之技術。記憶體存取操作經執行以存取各儲存由一預測模型用於運算一推理(或訓練模型)之一資料值之各種位址位置。系統記憶體依一分佈式方式跨記憶體之各種庫儲存大量資料值,其可在處理多個非線性請求(諸如需要讀取儲存於跨系統記憶體之各種相異記憶體庫之位址位置中之資料值之請求)時引起低效率。
本發明中所描述之改良電路架構及資料處理技術可用於最佳化藉由在另一請求之各別子請求之間交錯一請求之各別子請求來實施多個小記憶體存取操作之方式。例如,子請求可依允許對系統記憶體之不同庫群組執行多個連續請求而不招致與將背對背讀取請求發出至相同位址庫時所需之「磁泡」(例如閒置循環)有關之損失之一方式交錯。
更具體而言,藉由交錯子請求使得各子請求針對一給定記憶體象限之一不同庫群組進行處理,改良處理技術可用於減輕將背對背讀取請求(或子請求)發出至相同位址庫之需要以藉此無需在兩個此等背對背請求之間插入一閒置記憶體循環。此減少閒置循環平移之量或需要以提高系統頻寬及處理效率及降低硬體電路處之總功率消耗。
此外,對系統記憶體執行交錯記憶體請求以加速獲得由模型處理之輸入資料值,其可導致以模型運算一推理之速度提高。
本說明書中所描述之標的之一或多個實施方案之細節闡述於附圖及以下描述中。標的之其他潛在特徵、態樣及優點將自[實施方式]、圖式及申請專利範圍明白。
本說明書描述一硬體電路及使用相對於先前設計改良之硬體電路之一架構實施之資料處理技術。硬體電路可為一專用處理器,諸如一神經網路處理器、一專用積體電路(ASIC)或一硬體加速器。硬體電路經組態以實施包含多個神經網路層之一神經網路。
本發明中所描述之改良架構及資料處理技術允許包含高頻寬記憶體及表示一硬體加速器之一電路之一系統在需要系統跨高頻寬記憶體之記憶體庫執行多個隨機存取時實現速度、處理穩定性及頻寬之提高。系統執行存取以擷取儲存於記憶體之位址位置處之資料值且將資料值路由至硬體加速器。由硬體加速器接收之資料值透過在硬體加速器處實施之一CNN、RNN或其他類型之神經網路之層來處理。例如,資料值經處理以產生對應於一神經網路推理之輸出。
圖1係展示一實例性運算系統100 (「系統100」)的一圖式。系統100包含使用一神經網路實施之一實例性機器學習模型102。在一些實施方案中,模型102可操作以運算用於執行諸如影像辨識、語言偵測或物件偵測之功能之推理103。
系統100包含一實例性硬體電路。如上文所提及,硬體電路可表示一硬體加速器或一些其他專用處理器。在一些情況中,系統100係用於加速與人工深度神經網路(DNN)(諸如RNN或CNN)相關聯之張量或神經網路運算之一實例性運算系統。例如,系統100經組態以在一實例性硬體加速器上實施一CNN且將資料值傳遞至硬體加速器以產生用於運算一推理103之輸出(如下文將描述)。
在一些實施方案中,系統100係包含硬體電路及可用於執行本發明中所描述之操作之其他組件及裝置之一單晶片系統。硬體電路可為經組態以加速一實例性神經網路模型102之一硬體加速器。例如,可相對於在一實例性通用機器(諸如一中央處理單元(CPU))上執行模型來加速神經網路模型102之執行。類似地,神經網路模型之執行(performance)及執行(execution)可相對於在不具有本說明書中所描述之改良硬體特徵及處理技術之另一硬體加速器(諸如一圖形處理單元(GPU))上實施模型來加速。
模型102可為在一行動裝置104上運行之一訓練影像或語音辨識模型。例如,模型102可為部署於行動裝置104上以完全在行動裝置上運算推理之一量化影像識別模型。行動裝置104可為一實例性智慧型電話、平板電腦、膝上型電腦、智慧型手錶、可穿戴裝置、電子作業簿或其他相關可攜式電子使用者裝置。在一些情況中,模型102可部署於諸如一智慧型揚聲器或其他智慧型裝置之裝置上以在該等裝置上運算推理。在一些其他實施方案中,模型102在一資料中心之運算伺服器或基於資料中心之運算資產之一雲端基礎設施上運行。模型102可操作以處理對應於自諸如音訊或影像之輸入資料提取之特徵之資料。
如本發明中所使用,使用一神經網路模型102運算一推理包含透過神經網路模型102之層處理輸入資料以獲得預測。依此方式,可實施所描述之技術以回應於處理交錯記憶體請求110而將輸入資料提供至諸多不同類型之模型。僅包含語音及影像辨識模型102之指涉以繪示可回應於使用所描述之技術處理交錯記憶體請求110而接收輸入資料之至少兩種類型之模型102之實例。處理交錯請求110以基於由記憶體控制器114產生之控制信號自記憶體112之分佈式記憶體位置讀取資料值。例如,交錯請求110由記憶體控制器114處理以加速自記憶體112獲得輸入資料且路由資料用於處理以運算一推理或訓練一神經網路模型。
記憶體112可為系統100之一動態隨機存取記憶體(DRAM)。在一些實施方案中,記憶體112係可包含N個記憶體庫之一已知高頻寬(例如雙倍資料速率)高速記憶體(諸如GDDR5),其中N係大於或等於1之一整數。在一些實施方案中,記憶體112係相對於用於硬體加速器或神經網路處理器之一實例性硬體電路之一高頻寬外部(或晶片外)記憶體。記憶體112可經組態以與系統100之一硬體加速器或專用處理器之晶片上記憶體資源交換資料通信。例如,記憶體112可安置於一積體電路晶粒外部之一實體位置處,積體電路晶粒表示實施神經網路模型102之一神經網路處理器。替代地,記憶體112可位於一專用處理器之記憶體本端或與該記憶體共置。
在圖1之實例中,輸入資料係基於來自一使用者106之一話語。話語對應於由運行神經網路模型102之一行動裝置104接收之聲音輸入108。使用系統100執行之一實例性操作包含訓練模型102及將模型102部署為處理輸入資料(例如音訊或影像資料)以運算關於輸入資料之一推理之一自動語音(或物件)辨識模型。例如,模型102可處理與一話語相關聯之音訊資料以基於表示話語中之一術語之數值來產生話語之一轉錄。數值自對應於話語之一聲波波形116之能量信號導出。在一些實施方案中,使用一特徵提取引擎118導出對應於聲波波形116之能量信號之數值。
在一語音處理實例中,特徵提取引擎118處理音訊資料以提取或導出指示話語之聲學特性之一組特徵值(例如數值)。例如,使用特徵提取引擎118導出之數值可表示諸如以下之特徵:i)話語中之術語或字語;及ii)使用者106在接收輸入資料時之一位置。在一些實施方案中,特徵值可為梅爾頻率倒譜係數。
系統100基於自特徵提取引擎118導出之數字特徵值之一或多者自記憶體112獲得對應資料值。例如,系統100使用特徵值來產生存取及讀取儲存於記憶體112之一特定記憶體位址位置處之一對應資料值之一請求。例如,聲音輸入108可為來自使用者106之詢問「我在哪裡可買到好吃的披薩?」之一話語。特徵提取引擎118可導出或產生諸如「哪裡」、「好吃」及「披薩」之字語之特徵值。特徵提取引擎118亦可(例如)使用藉由聲音輸入108接收之原始語境資料來產生使用者106之位置之一特徵值。特徵值可用於諸如「加州聖夫蘭西斯科」之一位置。
在一些實例中,系統100產生交錯請求110以加速存取及讀取儲存於跨記憶體112之各種庫及頁分佈之記憶體位置處之資料值。例如,可產生交錯請求110以加速擷取對應於「哪裡」、「好吃」及「披薩」及位置「聖夫蘭西斯科」之神經網路輸入之資料值。在系統100處使用一跨展器120產生交錯子請求110,跨展器120處理由多個個別請求指定之資訊以產生交錯請求110。下文將參考圖2及圖3來更詳細描述跨展器120。
系統100經組態以提交查找或擷取儲存於記憶體112之一記憶體庫中之一輸入值之資料之一請求。例如,一主機裝置(諸如一高階控制器)之一處理器可提交存取儲存於記憶體112處之字典值之一大查找表之一交錯請求110序列。可提交交錯請求110以擷取(或讀取)跨記憶體112之位址位置儲存之查找表中之一或多個術語之資料值。記憶體控制器114處理交錯請求110以執行表查找且自記憶體112之位址位置擷取資料值。
自記憶體112擷取之資料值可以一交錯格式傳遞至跨展器120。跨展器120經組態以(例如)藉由在將資料傳遞至神經網路模型102或用於實施模型102之裝置之前使資料未交錯來使資料重排序。傳遞至神經網路模型102 (或裝置)之重排序資料可表示透過神經網路模型102之一或多個層處理以運算一推理之輸入。例如,回應於處理輸入,神經網路模型102可運算與準確辨識由使用者106供應之聲音輸入108之特定術語有關之一推理。
圖2係繪示用於交錯記憶體請求以加速記憶體存取之一實例性程序200的一流程圖。程序200可使用上述系統100實施或執行。程序200之描述可參考系統100之上述運算資源。程序200之步驟或動作可使用可由本發明中所描述之裝置及資源之一或多個處理器執行之程式化韌體或軟體指令實施。
程序200之步驟可對應於使用一系統執行運算及產生一神經網路之一神經網路輸出之一方法,系統包含高頻寬記憶體及經組態以實施神經網路之一硬體電路。在一些實施方案中,程序200係用於使用一硬體加速器加速神經網路運算之一或多個其他程序之一子程序。
現參考程序200,系統100產生多個請求(202)。例如,系統100可包含一主機裝置或高階控制器,其產生用於控制或管理在系統100處執行一推理工作負荷之指令及參數。主機裝置可操作以產生對應於用於執行工作負荷之指令之一部分之多個請求。請求之各別用於自系統100之一記憶體擷取資料且經執行以存取記憶體之各別位址位置以擷取(例如讀取)一對應資料值。例如,各請求用於擷取表示透過一神經網路模型之神經網路層處理之輸入之資料值。
針對多個請求中之各個別請求,系統100至少基於使用請求擷取之資料之一各別大小來產生多個子請求(204)。系統100可使用跨展器120來處理由一請求指定之資訊(例如一請求之要求或參數)且基於資訊產生子請求之各者。例如,上述請求A可由主機裝置產生為一128B (例如128個位元組)請求。更具體而言,跨展器120可操作以判定請求A由主機裝置發出以擷取128B之資料。
回應於判定使用請求A擷取之資料之各別大小,跨展器120基於該各別大小產生兩個或更多個子請求。在本實例中,使用請求A擷取之資料之大小係128B,且跨展器120可用於產生兩個64B子請求或四個32B子請求。替代地,跨展器120可產生八個16B子請求。在一些實施方案中,跨展器120基於可在一給定循環期間自記憶體112之一個別位址位置存取的最小臨限資料量來產生一特定量之子請求。
換言之,跨展器120經組態以基於以下產生一或多個子請求:i)請求之一大小參數;ii)在記憶體控制器114之一單一記憶體循環期間可存取的資料之一臨限量;或iii)兩者。如下文將更詳細描述,記憶體循環經執行以存取記憶體112之一位址位置且對應於由一時脈信號表示之一時脈循環。在一些實施方案中,時脈信號由記憶體控制器114之一處理器產生。在其他實施方案中,時脈信號由記憶體控制器114之一處理器產生,由主機裝置之一外部處理器傳遞至記憶體控制器114,由硬體電路之另一組件傳遞至記憶體控制器114,或各者之一組合。
系統100使用兩個或更多個請求之子請求產生一交錯子請求序列(206)。例如,系統100使用跨展器120來產生包含在一第二請求(例如請求B)之各別子請求之間交錯的一第一請求(例如請求A)之各別子請求之一交錯子請求序列。在一些實施方案中,跨展器120可針對請求A產生四個32B子請求且針對請求B產生四個32B子請求。請求A之四個32B子請求可識別為A0、A1、A2及A3,而請求B之四個32B子請求可識別為B0、B1、B2及B3。
跨展器120經組態以藉由使請求A之各別子請求A0、A1、A2及A3與請求B之各別子請求B0、B1、B2及B3交錯來產生交錯子請求序列。跨展器120可產生一實例性交錯子請求序列,其中請求A及請求B之各別子請求依以下序列交錯:A0、B0、A1、B1、A2、B2及A3、B3。在一些實施方案中,跨展器120基於各請求之一各別異動類型產生交錯子請求序列。一請求之一異動類型可指示請求係一讀取請求、一寫入請求或請求之一些其他屬性/參數。
在一些實例中,跨展器120經組態以識別兩個或更多個請求之各別異動類型且僅在一第一請求之異動類型匹配一第二請求之異動類型時交錯各請求之各別子請求。在此等實例中,使用跨展器120來產生交錯子請求序列包括:i)識別一第一請求之一各別異動類型;ii)識別一第二不同請求之一各別異動類型;及iii)基於第一請求及第二請求之各別異動類型引起第一請求之各別子請求在第二請求之各別子請求之間交錯。
跨展器120基於交錯子請求序列接收自記憶體112存取的資料(208)。例如,交錯子請求序列由記憶體控制器114執行以根據各子請求之參數自記憶體112擷取資料值。在一些實施方案中,跨展器120之一組件基於交錯子請求序列接收自記憶體之各別位址位置存取的資料之各別部分。
例如,記憶體控制器114經組態以處理交錯子請求序列以執行由各子請求界定之一各別操作。回應於記憶體控制器114處理交錯子請求序列,包含於跨展器120中之一重排序緩衝器(如下文將描述)接收自記憶體112之不同位址位置存取的資料(例如神經網路輸入)之各別部分。
系統100處理資料以產生一神經網路輸出(210)。例如,系統100處理資料之各別部分之各者以產生對應於一預測或推理103之一神經網路輸出。更具體而言,系統100使用在硬體電路處實施之神經網路模型102來處理資料之各別部分之各者。資料之各別部分可對應於透過模型之神經網路層處理以產生推理103之神經網路輸入。例如,推理103可與準確辨識一聲音輸入108之特定術語或一影像中之物件有關。
一般而言,具有多個層之一神經網路可用於運算推理。例如,鑑於一輸入,神經網路可運算輸入之一推理。神經網路藉由透過神經網路之層之各者處理輸入來運算此推理。在一些實施方案中,神經網路之層依一序列配置,層各具有一各別組權重。各層接收一輸入且根據層之該組權重來處理輸入以產生一輸出。
因此,為自一接收輸入運算一推理,神經網路接收輸入且透過序列中之神經網路層之各者處理其以產生推理。在一些情況中,來自一神經網路層之輸出提供為下一神經網路層之輸入。至一神經網路層之資料輸入(例如至神經網路之輸入或序列中之一第二層之前的一第一層之輸出)可指稱至該神經網路層之一啟動輸入。
在一些實施方案中,神經網路之層配置於一有向圖中。即,任何特定層可接收多個輸入、多個輸出或兩者。神經網路之層亦可經配置使得一層之一輸出可作為前一層之一輸入發送回。
圖3係展示用於交錯兩個或更多個記憶體請求之系統100之實例性組件的一方塊圖。在圖3之實例中,跨展器120接收一或多個讀取請求302。例如,跨展器120接收可包括請求A及請求B之一或多個讀取請求302,如上文參考圖2所描述。跨展器120亦接收一或多個寫入請求304。下文將簡要述及寫入請求304。
跨展器120包含經組態以處理由多個個別請求302指定之資訊之一請求交錯模組306。請求交錯模組306經組態以產生包含交錯子請求序列309之一交錯命令序列308。更具體而言,請求交錯模組306經組態以回應於處理資訊(諸如由各個別請求302指定之各別要求或參數)而產生交錯子請求序列309。在一些實施方案中,請求交錯模組306以軟體、硬體或兩者實施。下文將更詳細描述使用請求交錯模組306處理各請求302以產生交錯子請求序列309。
在系統100處產生之一實例性請求302可為一512B讀取請求。如上文所指示,此512B請求可細分成或分割成四個128B子請求。在一些實施方案中,請求交錯模組306引起各128B子請求基於發送至記憶體控制器114之一命令遞送至記憶體112之一不同象限(如下文將描述)。記憶體112可包含多個通道且各通道可經組態以處置128B之資料及一命令位元。一般而言,一通道可表示提供一特定資料傳送速率或頻寬用於在一實例性讀取操作或一實例性寫入操作期間路由資料值之記憶體112與記憶體控制器114之間的一資料連接。
通道可分割成兩個偽通道且各偽通道可用於執行一特定操作,諸如用於擷取儲存於記憶體112之一特定位址位置處之一資料值之一讀取操作或用於將一資料值寫入(或儲存)於記憶體112之一特定位址位置處之一寫入操作。在一些實施方案中,將早先所討論之128B子請求之各者遞送至記憶體112之一特定偽通道。在一些實例中,對記憶體112之讀取請求302或寫入請求可具有一32B有效負載。在此等實例中,各128B請求細分成或分割成四個個別請求或子請求。
針對至少兩個此等請求,跨展器120經組態以交錯兩個請求之細分部分(例如子請求)。例如,跨展器120經組態以藉由交錯此等兩個請求之細分部分來產生一交錯子請求序列309。參考圖3之實例,此等兩個子請求可由請求A及請求B表示。跨展器120使用請求交錯模組306來產生包含在請求B之各別子請求(各32B)之間交錯的請求A之各別子請求(各32B)之交錯子請求序列309。
如上文所提及,請求交錯模組306經組態以回應於處理由多個個別請求302之各者指定之各別資訊而產生交錯子請求序列309。例如,請求交錯模組306根據各子請求之參數產生交錯子請求序列309。參數可包含指定使用請求擷取之資料之一大小的一大小參數。參數可指示儲存待讀取之一特定資料值之記憶體中之一位置之一位址。參數亦可指示請求之一庫指派,諸如被指派請求之特定記憶體庫(例如bank_0、bank_1、bank_3或bank_N)或記憶體112之象限。
在一些實施方案中,請求交錯模組306基於一第一請求之一各別庫指派及一第二請求之一各別庫指派來產生交錯子請求序列309。更具體而言,請求交錯模組306可基於兩個或更多個請求302中之位址之一雜湊(如下文將描述)來產生交錯子請求序列309以引起各子請求路由至記憶體112之一特定記憶體庫。例如,請求交錯模組306經組態以基於一請求中之一位址之雜湊值來判定請求302之一庫指派。庫指派指示包含在記憶體控制器114處理請求302以自記憶體112擷取資料時存取的特定記憶體位置位址之記憶體112之一記憶體庫(例如bank_1、bank_8或bank_N)。
針對多個請求302之各請求302,請求交錯模組306經組態以針對請求302產生一或多個雜湊值以引起請求302 (包含其各別子請求)路由至記憶體112之一特定記憶體庫或象限。在一些實施方案中,請求交錯模組306實施一實例性雜湊演算法以雜湊一請求302中指定之記憶體位置位址。例如,記憶體位置位址可由識別記憶體112中之至少一位址位置之位址位元指定,至少一位址位置儲存使用請求302擷取之資料之一部分。請求交錯模組306基於請求302中之位址位元來使用雜湊演算法產生一記憶體位置之一位址之一雜湊值。
跨展器120經組態以根據一特定控制方案路由一交錯序列309之子請求。在一些實施方案中,控制方案基於各種參數指定子請求之一路由。例如,控制方案可指定一交錯子請求序列309中之各子請求必須路由至記憶體112之一不同庫群組。如下文將闡釋,控制方案經組態以解決或減輕引起一實例性記憶體控制器114中之頻寬損失或記憶體112之特定降級功能性之一或多個低效率源。
簡要參考記憶體112,如上文所描述,記憶體112可包括N個記憶體庫,其中N係大於或等於1之一整數。在一些實施方案中,記憶體112係包含16個記憶體庫或32個記憶體庫之一高頻寬、高速DRAM記憶體。一組4個記憶體庫可形成一庫群組。例如,bank_0至bank_3係一第一庫群組,bank_4至bank_7可為一第二庫群組,bank_8至bank_11可為一第三庫群組,bank_12至bank_15可為一第四庫群組。可針對包含32個記憶體庫之一記憶體112之庫16至32形成庫群組之類似配置。
一記憶體控制器或記憶體112中之一些頻寬損失源可包含:i)歸因於讀取資料及寫入資料共用一共同資料匯流排時所需之電安定時間(例如為了靜止或暫停資料匯流排)之不活動;ii)歸因於庫再新時間之不活動;iii)歸因於在一特定組庫(例如bank_0…bank_15及bank_16…bank_31)之間切換之讀取資料所需之「磁泡」或閒置循環(例如一個循環)之不活動;iv)歸因於分離相同庫(或庫群組)之背對背請求所需之閒置循環之不活動;及v)歸因於引起記憶體112之特定記憶體庫或偽通道上之熱點之位址跨步之降級記憶體功能。
一般而言,歸因於一或多個磁泡或閒置循環之所需插入及庫再新之不活動週期解釋存取記憶體112之處理低效率之主要源。在一些情況中,與存取一庫群組內之庫及跨庫群組之庫相關之一約束或限制對應於上述一或多個低效率源。跨展器120經組態以參考可觸發歸因於(例如)一所需閒置循環或庫再新之不活動週期之一或多個存取約束來判定一控制方案。
例如,因為對相同庫群組中之記憶體庫之背對背讀取請求需要在各請求(或子請求)之間插入一閒置循環,因此跨展器120經組態以判定引起至少兩個連續請求路由至不同庫群組或依減輕一閒置循環或其他不活動週期發生之一些其他方式路由之一控制方案。例如,控制方案可指定一交錯子請求序列309中之各子請求必須路由至記憶體112之一不同庫群組。
再次參考請求A及B,針對此等請求之各者,跨展器120可基於請求之各者中指定之各種位址位元來判定跨記憶體112之位址位置之一映射。位址位置之映射可指示將經存取以擷取兩個請求中指定之個別資料值之各種庫及庫群組。跨展器120產生特定雜湊值以引起一給定子請求根據一特定控制方案之要求路由。例如,跨展器120產生雜湊值以引起一交錯子請求序列309中之各子請求路由至記憶體112之一不同庫群組。
在一些實施方案中,跨展器120針對各子請求參考一各別雜湊值以識別指派給不同庫群組之請求A及請求B之至少兩個各別子請求。兩個子請求經交錯以確保子請求之間無磁泡或閒置循環。例如,若請求A及請求B係對兩個不同庫群組之兩個128B請求,則請求交錯模組306將請求A及B之各別32B子請求交錯為A0、B0、A1、B1、A2、B2、A3、B3、Ai、Bi,其中Ai及Bi係請求之第i 32B塊。在一些實施方案中,將A0及A1映射至兩個不同庫之此控制方案將讀取/寫入庫開啟之比率倍增至1:2而非一低效率比率(諸如1:4)。
跨展器120包含可用於防止或減輕源自上文所討論之一或多個源之低效率之一或多個預定控制方案。至少一預定控制方案可基於記憶體112之一記憶體架構。例如,跨展器120可包含一實例性堆疊識別(ID)控制方案(例如一預定控制方案)。如上文所提及,記憶體112中之一低效率源係在將一讀取請求發出至bank_0...bank_15及接著將一讀取請求發出至bank_16...bank_31或反之亦然時需要一閒置循環。在一些情況中,寫入請求不存在一閒置循環之此額外負擔要求。堆疊ID控制方案經組態以減少或減輕此低效率效應。例如,堆疊ID控制方案可用於減少在切換記憶體112之庫分區之讀取資料需要閒置循環時發生之不活動週期。
例如,跨展器120在切換至一上16個記憶體庫(例如bank_16至bank_32)之前使用堆疊ID控制方案來排定對一下16個記憶體庫(例如bank_0至bank_15)之多個讀請求且反之亦然。使用堆疊ID控制方案,跨展器120可操作以基於記憶體112之一記憶體架構來識別記憶體庫之一分區,例如一上庫分區或一下庫分區。跨展器120在切換至庫之一第二不同分區之前使用堆疊ID控制方案來最大化可發出至庫之一第一分區之讀取請求總數。
在一些實施方案中,最大化對庫之一給定分區之讀取請求之總數可引起一對應延時增加。跨展器120可在切換至庫之一第二不同分區之前使用堆疊ID控制方案來判定發出至庫之一第一分區之讀取請求之一臨限數目。讀取請求之臨限數目經判定以在來自閒置循環之減小低效率與來自增加讀取請求數目之附加延時之間達成一所要平衡。
記憶體112之各庫可分割成頁或列。一列或頁可包含在記憶體控制器114處理一讀取請求時必須存取的一位址位置。當處理存取頁處之一特定位址位置之一請求時,記憶體控制器114可執行「開啟」及「關閉」一頁(或列)之一功能。在一些實例中,記憶體控制器114可使各32B之高達12個請求排隊。然而,高達12個請求之佇列無法提供足夠緩衝來覆蓋關閉及開啟一記憶體庫之一頁所需之時間。鑑於此,跨展器120經組態以實施一關閉頁策略。例如,在各128B請求之後,關閉頁且跨展器120分隔對相同庫之後續請求。基於關閉頁策略,僅需要記憶體控制器114覆蓋開啟一頁所涉及之延遲。
跨展器120包含用於減少或減輕歸因於用於讀取請求302及寫入請求304之一共同資料匯流排上所需之電安定時間之不活動之一命令停駐控制方案。更具體而言,當沿一共同匯流排路由之資料改變方向(諸如自一讀取請求轉變至一寫入請求或自一寫入請求轉變至一讀取請求)時,需要靜止匯流排。靜止共同匯流排之要求對應於電安定之一間隙或轉變之間的不活動週期。在一些實施方案中,一讀取至寫入轉變或一寫入至讀取轉變之一對請求可能需要(或消耗)約32奈秒(ns)。
實例性32 ns係表示歸因於電安定之一不活動週期之一匯流排周轉損失以確保來自一第一請求之殘餘資料不扭曲一第二請求之資料。為避免與讀取至寫入(RW)及寫入至讀取(WR)轉變相關聯之匯流排周轉損失,跨展器120經組態以在其切換至其他命令/請求類型之前發送多個讀取命令或多個寫入命令。命令停駐控制方案在多個異動中攤銷RW及WR周轉。例如,基於命令停駐控制方案,跨展器120可判定讀取命令類型或寫入命令類型之一分組以最大化可在周轉(或轉變)觸發匯流排周轉損失之前發送之讀取或寫入量。在一些實施方案中,增加或最大化在切換至寫入(或讀取)之前發送之讀取(或寫入)命令之數目可減少周轉額外負擔,但其亦會引起一對應延時增加。
記憶體控制器114可操作以執行交錯命令序列308以處理交錯子請求序列309中之各交錯子請求。在圖3之實例中,讀取資料312表示回應於處理交錯子請求之各者而擷取之個別資料值。讀取資料312之個別資料值路由至跨展器120之一重排序緩衝器314用於進一步處理以產生一組未交錯資料值316,如下文將參考圖4描述。
寫入請求304路由至一重排序緩衝器320且產生一對應寫入命令322用於路由至記憶體控制器114以引起由寫入命令322指定之資料值儲存至記憶體112。在一些實施方案中,在系統100處處理實例性讀取命令或請求302以將諸如權重及輸入之資料自系統100之一高頻寬記憶體(例如記憶體112)路由至一專用處理器(諸如一神經網路處理器、一專用積體電路(ASIC)或一硬體加速器)。在其他實施方案中,在系統100處處理實例性寫入命令322以將諸如啟動值或神經網路輸出之資料自專用處理器之一記憶體路由至系統100之高頻寬記憶體。資料可根據讀取命令302及寫入命令304之各者沿相同導線路由。
儘管跨展器120之重排序資料處理可提供頻寬增大,但其亦可減少一特定頻寬之平均延時。例如,上述重排序控制方案之一或多者(例如堆疊ID及命令停駐)可引起對應延時增加。鑑於此,跨展器120可包含實施延時減少技術之一重排序區塊。
例如,重排序區塊可實施一早寫入完成技術,其中寫入304一提交至一寫入緩衝器320就發送指示傳入寫入304完成之信號,而非在寫入儲存於記憶體112之一特定庫處之一位址位置中時發送指示傳入寫入304完成之信號。接著,用於將資料儲存於系統記憶體處之此等特定寫入304稍後可依一更佳庫順序引流至記憶體112。此早寫入完成技術可經實施以使寫入完成延時保持低於一特定臨限延時。在一些實施方案中,早寫入完成技術經組態以確保已針對其發送一早完成信號之一寫入異動304之全域可觀察性。例如,與寫入緩衝器320中之未決寫入304衝突之任何後續讀取請求302引起讀取佇列停止,直至所有未決寫入304引流至記憶體112。
跨展器120之重排序區塊亦經組態以實施涉及庫熱點優先之一延時減少技術。下文將參考圖5更詳細描述此延時減少技術。
圖4係展示用於使使用一交錯記憶體請求獲得之資料重排序之一實例性重排序緩衝器314的一方塊圖。例如,記憶體控制器114經組態以處理交錯子請求序列309以執行由序列中之各子請求界定之一各別操作。回應於記憶體控制器114處理交錯子請求序列309,包含於跨展器120中之一重排序緩衝器314接收自記憶體112之不同位址位置存取的資料之各別部分(例如神經網路輸入)。資料之各別部分由讀取資料312之個別資料值表示。
如上述圖3之實例中所展示,讀取資料312根據由交錯命令序列308界定之一順序自記憶體112之各別記憶體庫中之位址位置擷取。例如,因為記憶體控制器114依發送命令之相同交錯順序回傳資料,因此自記憶體112讀取之個別資料值依匹配交錯子請求序列309中之子請求之排序之一順序序列流回至跨展器120。因此,讀取資料312之資料值以一交錯格式傳遞至跨展器120。讀取資料312路由至跨展器120用於進一步處理以使資料值未交錯。
跨展器120之重排序緩衝器314經組態以(例如)藉由在將資料傳遞至神經網路120之前使資料未交錯來使讀取資料312之資料值重排序。重排序緩衝器314使讀取資料312之資料值重排序以產生一組未交錯資料316。例如,重排序緩衝器314使讀取資料312未交錯以將資料轉換回其先前相容格式用於發送至請求源。
重排序緩衝器314實施其用於將來自交錯通道之各者之資料儲存在一起之一佇列。佇列可基於一先進先出(FIFO)邏輯來管理。例如,重排序緩衝器314包含可操作以儲存其中寫入來自一特定通道之一先前資料之一位置之一FIFO控制邏輯。若接收到來自該通道之一新資料且新資料不是該請求之第一資料回應,則FIFO控制邏輯引起重排序緩衝器314將新資料添加至記憶位置且將所有後續資料移動至較高位置。若自該通道接收到具有一新請求之第一資料回應之一新資料,則將該資料添加至FIFO控制之結尾。
在一些實施方案中,若跨展器120不在發送一請求302之資料中,則跨展器120轉送64B之資料,直至跨展器120到達被轉送之一封包之結尾。跨展器120將轉送64B之資料,只要該資料量可在FIFO控制之開頭自一特定通道取得。若跨展器120在發送一請求302之資料中,則跨展器120轉送64B之資料,只要該資料量可在FIFO控制之開頭自持續通道取得。
在圖4之實例中,區塊404展示重排序緩衝器314之不同緩衝狀態。自左至右行進之一實例性時間軸展示重排序緩衝器314在記憶體控制器114處理交錯子請求序列309中之各子請求時之不同狀態。如圖4中所展示,重排序緩衝器314基於交錯子請求序列309中之子請求之排序來接收一子請求之一各別資料值(例如由Ai或Bi表示)。例如,重排序緩衝器314接收實例性資料值A0,接著B0,接著A1,接著B1,等等。
不同緩衝狀態430、440、442、444及446展示儲存來自交錯通道之各者之資料之重排序緩衝器314之佇列如何在接收、未交錯且接著引流資料值時動態改變。例如,重排序緩衝器314經組態以自動引流表示一單一請求302擷取之資料之未交錯資料值。重排序緩衝器314亦經組態以即時使交錯資料重排序及未交錯。在一些實施方案中,資料值A1、A0 (432)表示來自一特定源之一單一請求302之未交錯資料且可為用於發送至請求源之一相容格式。類似地,A3、A2 (450)、B1、B0 (452)及B3、B2 (454)之各者表示來自一特定源之一單一請求302之未交錯資料且可為用於發送至請求源之一相容格式。
系統100將該組未交錯資料316傳遞至實施上述神經網路模型102之系統之一硬體加速器。在一些實施方案中,該組未交錯資料316表示透過神經網路模型102之一或多個層處理以運算一推理之一組輸入(或權重)。例如,回應於處理輸入,神經網路模型102可運算與準確辨識由使用者106供應之聲音輸入108之特定術語有關之一推理。
圖5係繪示3位元雜湊實例502及用於雜湊一請求中識別之記憶體位置之位址之一實例性雜湊演算法504的一方塊圖。
如上文所討論,跨展器120可實施用於雜湊一請求302中指定之位址之一實例性雜湊演算法504。例如,跨展器120之請求交錯模組306基於請求302中之位址位元來使用雜湊演算法504產生一記憶體位置之一位址之一雜湊值。跨展器120執行位址雜湊以減輕可回應於熱點而發生之記憶體112之降級效能。
需要傳入異動(例如請求302或寫入304)映射至一特定偽通道、記憶體庫、列及行。一異動之此等元素可表示為欄位。在一些實施方案中,若將此等欄位映射至特定位址位元,則跨步存取可成為偽通道/庫上之熱點。例如,若位址[12:10]係偽通道位元,則8KB之一跨步將成為一特定偽通道上之熱點以導致效能降級。
為降低經歷此效能降級之一可能性,跨展器120參考記憶體112實施一雜湊方案以產生用於路由請求302之庫及通道。雜湊演算法504可用於藉由對一請求302之選定位址位元「互斥或」運算來計算各雜湊位元。此外,雜湊演算法504經結構化以解決可引起在約200個位址之一連續序列映射至相同值時發生之特定時間熱點之一些病態跨步型樣。為降低此概率,雜湊演算法504使用一不同雜湊型樣產生一加法器項,其進一步降低熱點之概率。
如上文所提及,跨展器120之重排序區塊經組態以實施涉及庫熱點優先之一延時減少技術。例如,即使使用雜湊演算法504,亦可具有路由至相同庫之多個異動。當一再新異動長時間阻擋一指定庫時,情況亦可如此。結合上文所描述之一關閉頁策略,若針對任何給定記憶體庫之未處理異動之一數目超過一指定臨限值,則此等異動將獲得較高優先權。此進一步降低庫熱點之概率。
圖6係繪示一雜湊方案之一實例性實施方案的一方塊圖。在圖6之實例中,在系統100處運行之一軟體程序可操作以針對記憶體112之一容量或記憶體之單元(即,32吉位元組(GB))發出各35位元寬之位址。軟體程序亦可使用少於35個位元或多於35個位元來發出位址。例如,軟體可發出各為N個位元寬之位址,其中N係一整數。32GB容量可由包含多個記憶體庫之記憶體112之一單元提供。如上文所提及,各35位元位址識別單元中之一各別記憶體位置或單元之一記憶體庫。
在一給定位址之35個位元中,特定數目個位元可識別為「庫位元」。例如,一35位元位址中之4個位元可用作為庫位元。庫位元用於判定用於路由請求之一庫指派。系統100經組態以判定或選擇一35位元位址中之哪些位元係庫位元。在一些實施方案中,請求交錯模組306實施將特定位元映射為庫位元之一實例性演算法。例如,演算法可為「bank[3:0] = address[12,11,10,9]」,其中35位元位址中之位元位置12、11、10及9用作為四個庫位元。
當處理請求時,系統100可使用跨步型樣存取一請求(或一組請求)之位址。跨步型樣可使用8千位元組(KB)之增量跳躍實施。例如,跨步型樣可實施為0、8K、16K、24K、32K、40K、48K等等。基於此跨步型樣及上文用於將位元映射為庫位元之實例性演算法,在系統100處運算之位址之庫結果將對應於address_bits[12:0] = 0。此意謂針對此跨步型樣運算之位址將具有bank = 0之一映射以導致記憶體單元之bank_0係會使記憶體系統之效能降級之一瓶頸。更具體而言,瓶頸可導致歸因於引起記憶體112之特定記憶體庫或偽通道上之熱點之位址跨步之降級記憶體功能,如上文參考圖3所描述。
為解決此瓶頸問題,系統100經組態以實施一實例性雜湊方案602。例如,如上文所描述,雜湊演算法504可用於藉由對一請求302之選定位址位元「互斥或」運算來計算各雜湊位元。雜湊方案602繪示使用一bitwise_xor函數之一雜湊實施方案,bitwise_xor函數在一輸入在其二進位表示中具有奇數個位元值「1」時返回一1及在輸入在其二進位表示中具有偶數個「1」時返回0。基於此方案,上述跨步型樣實例之位址至庫映射將如映射表604中所展示。在一些實施方案中,根據雜湊方案602展示之值{0x1111111, 0x2222222, …}僅為實例且可使用各種其他例示值。
本說明書中所描述之標的及功能操作之實施例可以數位電子電路系統、有形地體現之電腦軟體或韌體、電腦硬體(包含本說明書中所揭示之結構及其結構等效物)或其等之一或多者之組合實施。本說明書中所描述之標的之實施例可實施為一或多個電腦程式,即,在一有形非暫時性程式載體上編碼以由資料處理設備執行或控制資料處理設備之操作之一或多個模組之電腦程式指令。
替代地或另外,程式指令可在一人工產生之傳播信號(例如一機器產生之電、光學或電磁信號)上編碼,信號經產生以編碼資訊用於傳輸至適合接收器設備以由一資料處理設備執行。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。
術語「運算系統」涵蓋用於處理資料之各種設備、裝置及機器,其包含(舉例而言)一可程式化處理器、一電腦或多個處理器或電腦。設備可包含專用邏輯電路系統,例如一FPGA (場可程式化閘陣列)或一ASIC (專用積體電路)。除硬體之外,設備亦可包含根據所討論之電腦程式產生一執行環境之程式碼,例如構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合之程式碼。
一電腦程式(其亦可指稱或描述為一程式、軟體、一軟體應用程式、一模組、一軟體模組、一指令碼或程式碼)可以包含編譯或解譯語言或宣告或程序語言之任何形式之程式設計語言編寫,且其可以任何形式部署,包含作為一獨立程式或作為一模組、組件、副常式或適合用於一運算環境中之其他單元。
一電腦程式可(但非必需)對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料之一檔案之一部分中(例如儲存於一標記語言文件中之一或多個指令碼),儲存於專用於所討論之程式之一單一檔案中,或儲存於多個協調檔案(例如儲存一或多個模組、副常式或程式碼之部分之檔案)中。一電腦程式可經部署以在一個電腦上執行或在位於一個地點處或跨多個地點分佈且由一通信網路互連之多個電腦上執行。
本說明書中所描述之程序及邏輯流程可由一或多個可程式化電腦執行,一或多個可程式化電腦執行一或多個電腦程式以藉由操作輸入資料且產生輸出來執行功能。程序及邏輯流程亦可由專用邏輯電路系統(例如一FPGA (場可程式化閘陣列)、一ASIC (專用積體電路)或一GPGPU (通用圖形處理單元))執行,且設備亦可實施為該專用邏輯電路系統。
適合於執行一電腦程式之電腦包含(舉例而言)可基於通用或專用微處理器或兩者或任何其他種類之中央處理單元。一中央處理單元一般將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之一些元件係用於執行(performing)或執行(executing)指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。一電腦一般亦將包含用於儲存資料之一或多個大容量儲存裝置(例如磁碟、磁光碟或光碟),或經操作性耦合以自該一或多個大容量儲存裝置接收資料或將資料傳送至該一或多個大容量儲存裝置或兩者。然而,一電腦不是必需具有此等裝置。再者,一電腦可嵌入於另一裝置中,例如一行動電話、一個人數位助理(PDA)、一行動音訊或視頻播放器、一遊戲控制台、一全球定位系統(GPS)接收器或一可攜式儲存裝置(例如一通用串列匯流排(USB)快閃驅動)等等。
適合於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,其包括(舉例而言):半導體記憶體裝置,例如EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟或可抽換磁碟;磁光碟;及CD ROM及DVD ROM光碟。處理器及記憶體可由專用邏輯電路系統補充或併入專用邏輯電路系統中。
為提供與一使用者之互動,本說明書中所描述之標的之實施例可在具有用於向使用者顯示資訊之一顯示裝置(例如LCD (液晶顯示器)監視器及使用者可藉由其將輸入提供至電腦之一鍵盤及一指標裝置(例如一滑鼠或一軌跡球)之一電腦上實施。其他種類之裝置亦可用於提供與一使用者之互動;例如,提供至使用者之回饋可為任何形式之感覺回饋,例如視覺回饋、聽覺回饋或觸覺回饋;及來自使用者之輸入可以任何形式接收,其包含聲學、語音或觸覺輸入。另外,一電腦可藉由將文件發送至由一使用者使用之一裝置及自該裝置接收文件來與使用者互動;例如,藉由回應於自一使用者之用戶端裝置上之一網頁瀏覽器接收之請求而將網頁發送至網頁瀏覽器。
本說明書中所描述之標的之實施例可以一運算系統實施,運算系統包含一後端組件(例如作為一資料伺服器),或包含一中介軟體組件(例如一應用伺服器),或包含一前端組件(例如具有一圖形使用者介面或一網頁瀏覽器(一使用者可透過其來與本說明書中所描述之標的之一實施方案互動)之一用戶端電腦)或一或多個此後端組件、中介軟體組件及前端組件之任何組合。系統之組件可由任何形式或媒體之數位資料通信(例如一通信網路)互連。通信網路之實例包含一區域網路(「LAN」)及一廣域網路(「WAN」),例如網際網路。
運算系統可包含用戶端及伺服器。一用戶端及伺服器一般彼此遠離且通常透過一通信網路互動。用戶端與伺服器之關係藉由在各別電腦上運行及彼此具有一用戶端-伺服器關係之電腦程式產生。
儘管本說明書含有諸多具體實施細節,但此等不應被解釋為對任何發明之範疇或可主張內容之限制,而應被解釋為可專用於特定發明之特定實施例之特徵之描述。本說明書之單獨實施例之背景中所描述之特定特徵亦可在一單一實施例中組合實施。相反地,一單一實施例之背景中所描述之各種特徵亦可在多個實施例中單獨或依任何適合子組合實施。再者,儘管特徵可在上文中描述為以特定組合起作用且甚至最初如此主張,但在一些情況中可自一主張組合去除來自組合之一或多個特徵,且主張組合可針對一子組合或一子組合之變體。
類似地,儘管圖式中依一特定順序描繪操作,但此不應被理解為要求依所展示之特定順序或依循序順序執行此等操作或執行所有繪示操作以達成所要結果。在特定情境中,多任務及並行處理可為有利的。再者,上述實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中需要此分離,而是應瞭解,所描述之程式組件及系統可大體上一起整合於一單一軟體產品中或封裝至多個軟體產品中。
已描述標的之特定實施例。其他實施例係在以下申請專利範圍之範疇內。例如,申請專利範圍中所列之動作可依一不同順序執行且仍達成所要結果。作為一實例,附圖中所描繪之程序未必需要所展示之特定順序或循序順序來達成所要結果。在特定實施方案中,多任務及並行處理可為有利的。
100:運算系統 102:機器學習模型/神經網路模型 103:推理 104:行動裝置 106:使用者 108:聲音輸入 110:交錯記憶體請求 112:記憶體 114:記憶體控制器 116:聲波波形 118:特徵提取引擎 120:跨展器/神經網路 200:程序 202:產生自記憶體擷取資料之多個請求 204:針對各請求,基於使用請求擷取之資料之一各別大小來產生子請求 206:使用兩個或更多個請求之子請求產生一交錯子請求序列 208:基於交錯子請求序列接收自記憶體之各別位址位置存取的資料 210:處理資料以產生一神經網路輸出 302:讀取請求 304:寫入請求/寫入異動 306:請求交錯模組 308:交錯命令序列 309:交錯子請求序列 312:讀取資料 314:重排序緩衝器 316:一組未交錯資料值 320:重排序緩衝器/寫入緩衝器 322:寫入命令 404:區塊 430:緩衝狀態 432:資料值A1、A0 440:緩衝狀態 442:緩衝狀態 444:緩衝狀態 446:緩衝狀態 450:A3、A2 452:B1、B0 454:B3、B2 502:3位元雜湊實例 504:雜湊演算法 602:雜湊方案 604:映射表
圖1係經組態以產生一推理之一實例性運算系統之一方塊圖。
圖2係繪示用於交錯記憶體請求以加速記憶體存取之一實例性程序的一流程圖。
圖3係展示用於交錯記憶體請求之一運算系統之實例性組件的一方塊圖。
圖4係展示用於使使用一交錯記憶體請求獲得之資料重排序之一實例性重排序緩衝器的一方塊圖。
圖5係繪示用於雜湊一請求中識別之記憶體位置之位址之一實例性雜湊演算法的一方塊圖。
圖6係繪示一雜湊方案之一實例性實施方案的一方塊圖。
各種圖式中之相同元件符號及名稱指示相同元件。
200:程序
202:產生自記憶體擷取資料之多個請求
204:針對各請求,基於使用請求擷取之資料之一各別大小來產生子請求
206:使用兩個或更多個請求之子請求產生一交錯子請求序列
208:基於交錯子請求序列接收自記憶體之各別位址位置存取的資料
210:處理資料以產生一神經網路輸出

Claims (20)

  1. 一種用於使用一系統產生一神經網路之一神經網路輸出之方法,該系統包括記憶體及經組態以實施該神經網路之一硬體電路,該方法包括: 產生多個請求,各請求用於自該記憶體擷取資料; 針對該多個請求之各請求: 基於使用該請求擷取之該資料之一各別大小產生複數個子請求; 產生包含在一第二請求之各別子請求之間交錯的一第一請求之各別子請求之一交錯子請求序列; 基於該交錯子請求序列接收自該記憶體之各別位址位置存取的資料之各別部分;及 使用在該硬體電路處實施之該神經網路處理資料之該等各別部分之各者以產生該神經網路輸出。
  2. 如請求項1之方法,其中該硬體電路包括一重排序緩衝器且該方法包含: 在該重排序緩衝器處依與該交錯子請求序列一致之一順序接收資料之該等各別部分;及 由該重排序緩衝器使對應於該第一請求之資料之各別部分重排序以形成使用該第一請求擷取之該資料。
  3. 如請求項1之方法,其中該硬體電路包括一重排序緩衝器且該方法包含: 在該重排序緩衝器處依與該交錯子請求序列一致之一順序接收資料之該等各別部分;及 由該重排序緩衝器使對應於該第二請求之資料之各別部分重排序以形成使用該第二請求擷取之該資料;或 由該重排序緩衝器提供對應於該第二請求之資料之各別部分而不使對應於該第二請求之資料之該等各別部分重排序。
  4. 如請求項1之方法,其包括針對該多個請求之各請求: 基於該請求中之位址位元產生該請求之一雜湊值,該等位址位元識別儲存使用該請求擷取之該資料之一部分之該記憶體中之至少一位址位置。
  5. 如請求項4之方法,其包括: 基於該請求之該雜湊值判定該請求之一庫指派, 其中該庫指派指示在該系統處理自該記憶體擷取資料之該請求時存取的該記憶體之一記憶體庫。
  6. 如請求項1之方法,其中產生該交錯子請求序列包括: 基於該第一請求之一各別庫指派及該第二請求之一各別庫指派產生該交錯子請求序列。
  7. 如請求項6之方法,其中產生該交錯子請求序列包括: 識別該第一請求之一各別異動類型; 識別該第二請求之一各別異動類型;及 基於該第一請求及該第二請求之該各別異動類型引起該第一請求之該等各別子請求在該第二請求之該等各別子請求之間交錯。
  8. 如請求項1之方法,其中產生該複數個子請求包括: 基於在一單一記憶體循環期間可存取的資料之一臨限量產生該複數個子請求,該單一記憶體循環經執行以存取該記憶體之一位址位置。
  9. 如請求項8之方法,其中產生該複數個子請求包括: 基於待擷取之該資料之該各別大小及可自該單一記憶體循環存取的資料之一臨限量剖析該請求; 回應於剖析該請求而形成該請求之各別部分;及 使用該請求之該等各別部分之各者產生該複數個子請求。
  10. 如請求項9之方法,其中該請求之該等各別部分之各者對應於可自該單一記憶體存取循環存取的資料之該臨限量。
  11. 一種用於執行運算以產生一神經網路之一層之一輸出之系統,該神經網路包括使用該系統之記憶體之複數個神經網路層及經組態以實施該神經網路之一硬體電路,該系統包括: 一或多個處理裝置; 一或多個非暫時性機器可讀儲存裝置,其等用於儲存可由該一或多個處理裝置執行之指令以引起包括以下之操作之執行: 產生多個請求,各請求用於自該記憶體擷取資料; 針對該多個請求之各請求: 基於使用該請求擷取之該資料之一各別大小產生複數個子請求; 產生包含在一第二請求之各別子請求之間交錯的一第一請求之各別子請求之一交錯子請求序列; 基於該交錯子請求序列接收自該記憶體之各別位址位置存取的資料之各別部分;及 使用在該硬體電路處實施之該神經網路處理資料之該等各別部分之各者以產生該神經網路輸出。
  12. 如請求項11之系統,其中該硬體電路包括一重排序緩衝器且該等操作包括: 在該重排序緩衝器處依與該交錯子請求序列一致之一順序接收資料之該等各別部分;及 由該重排序緩衝器使對應於該第一請求之資料之各別部分重排序以形成使用該第一請求擷取之該資料。
  13. 如請求項11之系統,其中該硬體電路包括一重排序緩衝器且該等操作包括: 在該重排序緩衝器處依與該交錯子請求序列一致之一順序接收資料之該等各別部分;及 由該重排序緩衝器使對應於該第二請求之資料之各別部分重排序以形成使用該第二請求擷取之該資料;或 由該重排序緩衝器提供對應於該第二請求之資料之各別部分而不使對應於該第二請求之資料之該等各別部分重排序。
  14. 如請求項11之系統,其包括針對該多個請求之各請求: 基於該請求中之位址位元產生該請求之一雜湊值,該等位址位元識別儲存使用該請求擷取之該資料之一部分之該記憶體中之至少一位址位置。
  15. 如請求項14之系統,其包括: 基於該請求之該雜湊值判定該請求之一庫指派, 其中該庫指派指示在該系統處理自該記憶體擷取資料之請求時存取的該記憶體之一記憶體庫。
  16. 如請求項11之系統,其中產生該交錯子請求序列包括: 基於該第一請求之一各別庫指派及該第二請求之一各別庫指派產生該交錯子請求序列。
  17. 如請求項16之系統,其中產生該交錯子請求序列包括: 識別該第一請求之一各別異動類型; 識別該第二請求之一各別異動類型;及 基於該第一請求及該第二請求之該各別異動類型引起該第一請求之該等各別子請求在該第二請求之該等各別子請求之間交錯。
  18. 如請求項11之系統,其中產生該複數個子請求包括: 基於在一單一記憶體循環期間可存取的資料之一臨限量產生該複數個子請求,該單一記憶體循環經執行以存取該記憶體之一位址位置。
  19. 如請求項18之系統,其中產生該複數個子請求包括: 基於待擷取之該資料之該各別大小及可自該單一記憶體循環存取的資料之一臨限量剖析該請求; 回應於剖析該請求而形成該請求之各別部分;及 使用該請求之該等各別部分之各者產生該複數個子請求。
  20. 一種非暫時性機器可讀儲存裝置,其用於儲存可由一處理裝置執行之指令以在用於執行神經網路運算之一硬體電路上實施具有多個神經網路層之一神經網路且引起包括以下之操作之執行: 產生多個請求,各請求用於自一記憶體擷取資料; 針對該多個請求之各請求: 基於使用該請求擷取之該資料之一各別大小產生複數個子請求; 產生包含在一第二請求之各別子請求之間交錯的一第一請求之各別子請求之一交錯子請求序列; 基於該交錯子請求序列接收自該記憶體之各別位址位置存取的資料之各別部分;及 使用在該硬體電路處實施之該神經網路處理資料之該等各別部分之各者以產生該神經網路輸出。
TW110104564A 2020-02-07 2021-02-05 交錯記憶體請求以加速記憶體存取 TW202134861A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062971884P 2020-02-07 2020-02-07
US62/971,884 2020-02-07
US16/874,894 US11295206B2 (en) 2020-02-07 2020-05-15 Interleaving memory requests to accelerate memory accesses
US16/874,894 2020-05-15

Publications (1)

Publication Number Publication Date
TW202134861A true TW202134861A (zh) 2021-09-16

Family

ID=77177619

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110104564A TW202134861A (zh) 2020-02-07 2021-02-05 交錯記憶體請求以加速記憶體存取

Country Status (6)

Country Link
US (2) US11295206B2 (zh)
EP (1) EP3973401B1 (zh)
DK (1) DK3973401T3 (zh)
FI (1) FI3973401T3 (zh)
TW (1) TW202134861A (zh)
WO (1) WO2021158776A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI822517B (zh) * 2022-12-14 2023-11-11 慧榮科技股份有限公司 執行主機寫入命令的方法及電腦程式產品及裝置
TWI822516B (zh) * 2022-12-14 2023-11-11 慧榮科技股份有限公司 執行主機寫入命令的方法及電腦程式產品及裝置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321020B2 (en) * 2020-09-18 2022-05-03 Kioxia Corporation System and method for multichip coherence with side-by-side parallel multiport operation
US11922026B2 (en) 2022-02-16 2024-03-05 T-Mobile Usa, Inc. Preventing data loss in a filesystem by creating duplicates of data in parallel, such as charging data in a wireless telecommunications network
CN115018076B (zh) * 2022-08-09 2022-11-08 聚时科技(深圳)有限公司 一种用于智能伺服驱动器的ai芯片推理量化方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745277B1 (en) 2000-10-04 2004-06-01 Force10 Networks, Inc. Intelligent interleaving scheme for multibank memory
DE10213839B4 (de) 2002-03-27 2016-11-03 Advanced Micro Devices, Inc. DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus
CN1523797B (zh) 2003-02-17 2012-07-04 北京三星通信技术研究有限公司 Wcdma系统增强型上行专用信道harq的重排序方法
US20060294327A1 (en) 2005-06-23 2006-12-28 Sharma Debendra D Method, apparatus and system for optimizing interleaving between requests from the same stream
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8566515B2 (en) 2009-01-12 2013-10-22 Maxim Integrated Products, Inc. Memory subsystem
KR101841173B1 (ko) * 2010-12-17 2018-03-23 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
US10497089B2 (en) 2016-01-29 2019-12-03 Fotonation Limited Convolutional neural network
US10672175B2 (en) 2017-04-17 2020-06-02 Intel Corporation Order independent asynchronous compute and streaming for graphics
US20190156214A1 (en) 2017-11-18 2019-05-23 Neuralmagic Inc. Systems and methods for exchange of data in distributed training of machine learning algorithms
US10579548B2 (en) * 2018-03-29 2020-03-03 Western Digital Technologies, Inc. Adaptive interleaving of data transfer requests
US10545877B2 (en) * 2018-04-05 2020-01-28 Arm Limited Apparatus and method for accessing an address translation cache
CN111209232B (zh) * 2018-11-21 2022-04-22 昆仑芯(北京)科技有限公司 访问静态随机存取存储器的方法、装置、设备和存储介质
US11036642B2 (en) * 2019-04-26 2021-06-15 Intel Corporation Architectural enhancements for computing systems having artificial intelligence logic disposed locally to memory
US20200097807A1 (en) * 2019-11-27 2020-03-26 Intel Corporation Energy efficient compute near memory binary neural network circuits

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI822517B (zh) * 2022-12-14 2023-11-11 慧榮科技股份有限公司 執行主機寫入命令的方法及電腦程式產品及裝置
TWI822516B (zh) * 2022-12-14 2023-11-11 慧榮科技股份有限公司 執行主機寫入命令的方法及電腦程式產品及裝置

Also Published As

Publication number Publication date
US20210248451A1 (en) 2021-08-12
EP3973401A1 (en) 2022-03-30
DK3973401T3 (da) 2023-02-06
US11295206B2 (en) 2022-04-05
WO2021158776A1 (en) 2021-08-12
EP3973401B1 (en) 2022-11-02
FI3973401T3 (fi) 2023-01-31
US20220374692A1 (en) 2022-11-24
US11928580B2 (en) 2024-03-12

Similar Documents

Publication Publication Date Title
TW202134861A (zh) 交錯記憶體請求以加速記憶體存取
US20230334294A1 (en) Multi-memory on-chip computational network
KR102572757B1 (ko) 집약성을 개선하기 위한 머신 학습 모델들의 수정
JP6776696B2 (ja) 並列情報処理装置、情報処理方法、およびプログラム
CN118153639A (zh) 用于增强数据处理的系统、方法及神经网络处理器
US20210089871A1 (en) Processing system and method for binary weight convolutional neural network
CN111742305A (zh) 调度具有不统一等待时间的存储器请求
WO2019118363A1 (en) On-chip computational network
CN111008040A (zh) 缓存装置及缓存方法、计算装置及计算方法
US10901617B2 (en) Memory access scheduling using category arbitration
Kim et al. MViD: Sparse matrix-vector multiplication in mobile DRAM for accelerating recurrent neural networks
WO2021259098A1 (zh) 一种基于卷积神经网络的加速系统、方法及存储介质
TWI782403B (zh) 具有平行載入儲存之共享高速暫存記憶體
US20200409757A1 (en) Managing workloads of a deep neural network processor
US20210150323A1 (en) Methods and apparatus to implement a neural network
US20220188606A1 (en) Memory Configuration to Support Deep Learning Accelerator in an Integrated Circuit Device
US11567690B2 (en) Semiconductor memory device and electronic system the same
Sudarshan et al. A critical assessment of dram-pim architectures-trends, challenges and solutions
TWI814734B (zh) 用於執行卷積的計算裝置及計算方法
KR20210081663A (ko) 인터커넥트 장치, 인터커넥트 장치의 동작 방법 및 인터커넥트 장치를 포함하는 AI(Artificial Intelligence) 가속기 시스템
CN116382599A (zh) 一种面向分布式集群的任务执行方法、装置、介质及设备
CN115563053A (zh) 高性能片上内存控制器及其执行的方法
TWI749331B (zh) 具有記憶體內運算架構的記憶體及其操作方法
Tigadi et al. RANK-Swapping Unblocked Row (RSR) Memory Controller
US11836082B2 (en) Neural processing device and load/store method of neural processing device