TW202223689A - 向量處理器資料儲存 - Google Patents

向量處理器資料儲存 Download PDF

Info

Publication number
TW202223689A
TW202223689A TW110142559A TW110142559A TW202223689A TW 202223689 A TW202223689 A TW 202223689A TW 110142559 A TW110142559 A TW 110142559A TW 110142559 A TW110142559 A TW 110142559A TW 202223689 A TW202223689 A TW 202223689A
Authority
TW
Taiwan
Prior art keywords
vector
processor
buffer
output
input
Prior art date
Application number
TW110142559A
Other languages
English (en)
Inventor
尼可拉斯 摩爾
王恭于
布萊德利 多比
泰勒J 肯尼
艾勇 巴蘇馬利克
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 TW202223689A publication Critical patent/TW202223689A/zh

Links

Images

Classifications

    • 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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access
    • 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/0613Improving I/O performance in relation to throughput
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Complex Calculations (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本揭示案之態樣提供用於向量處理器之長向量內的條之對齊儲存策略,使得需要來追蹤輸入條與輸出條之間的跨步的額外計算可經消除。因此,條位置位於更可預測的記憶體存取型樣中,使得記憶體存取頻寬可經改良,且記憶體錯誤之趨勢可降低。

Description

向量處理器資料儲存
相關申請案之交叉引用
本申請案主張2020年11月16日申請,在代理人案號L0858.70036US00下且標題名稱為「VECTOR PROCESSOR DATA STORAGE」的美國臨時申請案第63/114,373號之權益,該美國臨時申請案藉此以引用方式整體併入本文中。
本申請案一般而言係關於向量處理器之輸入及/或輸出向量之資料儲存。
向量處理器為計算裝置,該計算裝置將向量作為輸入,且提供另一向量作為輸出。例如,矩陣向量處理器可對輸入向量X執行矩陣A之矩陣乘法以產生輸出向量Y。向量之長度代表向量中的單獨元素之數目。通常,矩陣向量處理單元(數位或類比)經設計為正方形的,例如具有正方形矩陣A,使得輸入向量X之大小等於輸出向量Y之大小。然而,不存在限制矩陣向量處理單元之尺寸的電腦架構限制。因此,通常矩陣向量處理器可為矩形的,其中輸出向量之長度不同於輸入向量之長度。
向量處理器可用來執行深度學習、機器學習、潛在變數模型、神經網路,及其他基於矩陣的可微程式,以求解各種問題,包括自然語言處理及影像中之物件辨識。
快速電腦處理器之最近發展之一個實例涉及深度學習電腦晶片,該等深度學習電腦晶片已藉由架構電腦系統加速計算運行時間,該電腦系統之計算單元經最佳化以用於神經網路內的操作。例如,圖形處理單元(graphical processing unit,GPU)內的張量處理器或張量處理單元(tensor processing unit,TPU)內的脈動乘法及累加(multiply-and-accumulate,MAC)陣列經設計以在儘可能少的時脈週期的情況下完成矩陣-矩陣乘法。
一些實施例涉及裝置,該裝置包含向量處理器,該向量處理器經組配來接收第一向量及第二向量中之一個作為輸入,且提供該第一向量及該第二向量中之另一個作為輸出。該第二向量比該第一向量長。該裝置進一步包含緩衝器,該緩衝器經組配來將該第二向量儲存在複數個條中。該等複數個條中之第一條及該等複數個條中之第二條在該緩衝器中對齊。
一些實施例涉及用以將用於向量處理器之輸入及輸出向量儲存在緩衝器中方法。該方法包含藉由該向量處理器接收第一向量及第二向量中之一個,作為至該向量處理器的輸入;以該向量處理器提供該第一向量及第二向量中之另一個,作為該向量處理器之輸出;以及將該第二向量儲存在複數個條中,其中該等複數個條中之第一條及該等複數個條中之第二條在該緩衝器中對齊。該第二向量比該第一向量長。
一些實施例涉及系統,該系統包含至少一個處理器及至少一個電腦可讀儲存媒體,該至少一個電腦可讀儲存媒體具有儲存在該至少一個電腦可讀儲存媒體上的指令,該等指令當執行時,程式設計該至少一個處理器以執行用於將用於向量處理器之輸入及輸出向量儲存在緩衝器中的方法。該方法包含以下動作:藉由該向量處理器接收第一向量及第二向量中之一個,作為至該向量處理器的輸入;以該向量處理器提供該第一向量及第二向量中之另一個,作為該向量處理器之輸出;以及將該第二向量儲存在複數個條中,其中該等複數個條中之第一條及該等複數個條中之第二條在該緩衝器中對齊。該第二向量比該第一向量長。
本文所揭示的是用於處置用於緩衝器中的具有失配大小之向量處理器之輸入及輸出向量之儲存的方法。
緩衝器中之儲存可經組織成固定大小之行。向量中之元素經劃分成多個條以用於儲存。例如,向量可由多個條組成。用以儲存具有多個條之向量的一個方式將在先前條之後連續地置放下一條,使得下一條之起始緊接先前條之末端之後。此佈置可稱為「未對齊的」,因為當條大小不同於行之大小時,用於條的起始定位不再彼此對齊。發明人已瞭解且認識,未對齊儲存在運行時間期間需要額外計算來追蹤輸入向量及輸出向量中的條之間的變化距離(諸如輸入條與輸出條之間的跨步),當處理具有長向量大小的長張量時,此舉可改良記憶體存取頻寬。此外,當未對齊條起始定位未經正確地追蹤時,記憶體錯誤可發生。
本揭示案之態樣提供用於向量處理器之長向量內的條之對齊儲存策略,使得需要來追蹤輸入條與輸出條之間的跨步的額外計算可經消除。因此,條位置位於更可預測的記憶體存取型樣中,使得記憶體存取頻寬可經改良,且記憶體錯誤之趨勢可降低。
一些實施例針對儲存比對應的輸入向量長的輸出向量,但本揭示案之態樣同樣適用於比輸出向量長的輸入向量。因此應瞭解,在本文實例描述將比輸入向量長的輸出向量儲存在緩衝器中的情況下,相同揭示內容同樣適用於將比輸出向量長的輸入向量儲存在緩衝器中。
在一些實施例中,用於輸出向量的條起始於對齊定位中,諸如各自起始於緩衝器內的行之開始處。在一些實施例中,用於輸出向量的條以交錯方式儲存。
一些實施例針對將可利用的緩衝器空間劃分成多個區段,例如K個區段,其中K為整數。劃分可為大體上均勻劃分,使得每一區段具有相等大小。在一些實施例中,輸出向量中的條經配置到緩衝器之不同部分上的不同區段中。在一個實例中,緩衝器經劃分成兩半,輸出向量中之第一條經配置到緩衝器之中間點之前的第一半中,且輸出向量中之第二條經配置到緩衝器之中間點之後的第二半中。
在一些實施例中,輸出向量中之條係以交錯方式儲存,其中第二條使用來自第一條之行的新行與第一條交錯,使得緩衝器不必具有並非2之整數冪的行數。
以下進一步描述以上所描述之態樣及實施例,以及額外態樣及實施例。此等態樣及/或實施例可單獨地、一起,或以二或更多個之任何組合使用,因為本申請案在此方面不受限制。
第1圖示出根據一些實施例的如本文所描述之資料儲存可發生的例示性計算系統100。計算系統100包括處理器10及記憶體30。處理器10可包括向量處理器,該向量處理器經組配來接收輸入向量且基於輸入向量提供輸出向量,諸如但不限於與輸入向量的矩陣乘法。記憶體30可包含任何合適的硬體實行方案之一或多個記憶體單元,且可在處理器10外部或內部,因為本揭示案之實施例不如此受限制。記憶體30可包括緩衝器。處理器10可自緩衝器讀取資料且將資料寫入至緩衝器,該資料包括輸入及輸出向量。
在第1圖中,處理器10可進一步包括一或多個處理單元。記憶體20可包括非暫時性電腦可讀儲存媒體,諸如揮發性記憶體及/或非揮發性記憶體。記憶體30可儲存一或多個指令以程式設計處理器10中之一或多個處理單元以執行本文所描述之方法或功能中之任何方法或功能。
第2圖示出當輸出向量為輸入向量的兩倍長時的緩衝器中之示範性資料置放的示意圖。第2圖例示其中矩陣向量處理器獲取長度N之輸入向量100且輸出長度2N之輸出向量200的實例。在第2圖中,輸入向量100經描繪為具有10個元素之長度的一個條,其中緩衝儲存器經劃分成用於每一行的8個元素之行。元素可對應於用於向量處理器之向量內的元素之任何合適的大小。
在一些實施例中,藉由向量處理器處理的資料可經組織為多於一維的向量或張量,且如第2圖中所示之資料置放可表示此張量沿一維之儲存,而對於第2圖中之向量之每一元素,可相關聯地擴展成2或更多個正交維。在一些實施例中,諸如輸入向量100的向量中之元素可表示單個「條」或「條列」,其中向量緩衝器長度為與輸入向量相同大小。但是向量緩衝器長度不必等於輸入向量之大小。
有時,當向量處理器之輸入或輸出大於向量緩衝器之長度時,向量可經劃分成用於藉由向量處理器之操作的多個條。另外,若矩陣向量處理器中之矩陣大於向量緩衝器之長度,則可需要多個條來儲存矩陣。取決於矩陣大小,一或多個緩衝器行可用來儲存條,例如當條之大小直到運行時間才知道時。因為條之此尺寸可經任意地定大小,所以不需要使用多個條來儲存具有以向量條之尺寸的任意大小之矩陣。
返回參考第2圖,輸出向量200為輸入向量100的兩倍長,且由兩個條200_0、200_1組成。如第2圖中所示,第二條200_1之起始200_1S緊接第一條200_0之末端之後。雖然第一條200_0之起始200_0S與第2圖中之圖表之左側上的行之第一元素對齊,但第二條200_1之起始200_1S位於行上的第三元素處,該第三元素並未與第一條200_0之起始對齊。雖然將第二條配置在緊接第一條之末端之後為簡單的且具有高儲存器利用率,但存在問題,因為輸入條及輸出條之起始定位之間的距離(或跨步)在運行時間期間改變,且此參數必須貫穿運行時間經追蹤,此舉不合需要地導致高處理器工作量及記憶體錯誤之高趨勢。
第3圖示出例示與未對齊資料置放相比的根據一些實施例的緩衝器中之示範性對齊輸出資料置放的示意圖。
在第3圖中,輸出向量210具有兩個條210_0及210_1。第一條210_0之起始210_0S在行30_0之第一元素處,且第二條210_1之起始210_1S在行30_2之第一元素處,該第一元素與起始210_0S對齊。因為每一條之長度並非緩衝器中的每一行之長度之整數倍,所以條210_0跨越行30_0及緩衝器中之下一行30_1之一部分,而條210_1跨越行30_2及下一行30_3之一部分。因為輸出向量210中之兩個條的起始定位在行之第一元素處對齊,所以每個輸出條210_0、210_1與如第2圖中所示之輸入條100之起始之間的距離將為每個行之大小之倍數,且可不再需要在運行時間期間藉由參數追蹤。
然而,在一些情形下,發明人已認識且瞭解,若輸出向量正置放在輸入向量之後,則輸入條與輸出條之間的距離可仍然為使用對齊儲存策略的運行時間參數。第4圖示出例示根據一些實施例的藉由將輸出條配置成兩個區段的替代性儲存策略的示意圖。
在第4圖中,總可利用的緩衝儲存器大小VBUF首先以半緩衝器點VBUF/2為中心劃分成兩個相等區段31、32。用於輸出向量220之第二條220_1經寫入緩衝器之第二區段32中,而第一條220_0經寫入第一區段31中。因此,用於輸出向量之第一條及第二條係以其各別起始定位之相同對齊類似地配置,但配置在緩衝器之不同區段上。應瞭解,雖然第4圖中之實例將緩衝器劃分成2個區段,通常配置方法可擴展至使用K個區段之劃分,其中K為整數,且擴展至具有多於兩個條的向量之儲存。
當劃分之數目K或緩衝器空間VBUF中的行之數目並非2之整數冪時,可難以實行[緩衝器行之數目]/2或通常[緩衝器行之數目]/K配置策略。第5圖示出例示根據一些實施例的具有交錯及對齊輸出條之配置策略的示意圖,該等交錯及對齊輸出條可與並非2之整數冪的緩衝器行數或劃分數K一起工作。
第5圖示出對於具有兩個條的輸出向量230,第二條230_1使用新行與第一輸出條230_0交錯。具體而言,在第一條230_0佔據第一行32_0之後,緊接的第二行32_1以第二條230_1之開始寫入。下一行32_2以第一條230_0之剩餘部分寫入,且進一步下方的行32_3以第二條230_1之剩餘部分寫入。應瞭解,第5圖中所示之實例可經一般化為複數個輸出條,而不需要知道可利用的緩衝器行之整體數目。
表1概括根據一些實施例的各自具有3個行之長度的輸出條在具有總共64K個行之緩衝器中的兩個示範性置放。
表1.用於交錯及對齊條置放策略之起始行號與用於緩衝器/2策略之起始行號。
起始行號
交錯 緩衝器/2
0 0 0
1 1 32768
2 6 3
3 7 32771
4 12 6
5 13 32774
6 18 9
7 19 32777
8 24 12
9 25 32780
第6A圖至第6D圖示出根據一些實施例的可使用在ResNet-50神經網路處理中的四個示範性向量儲存配置的示意圖。實例將[緩衝器行之數目]/2或VBUF/2置放方法使用於輸出條。在第6A圖至第6D圖中,不同的散列型樣用來指示來自相同影像資料的資料,而編號用來指示影像內的條。示範性ResNet-50神經網路處理可使用混合類比數位計算系統中之一或多個向量處理器加以執行。混合類比數位計算系統之一些態樣描述於2021年6月25日申請且標題名稱為「FAST PREDICTION PROCESSOR」的美國專利申請案第17/359,025號,代理人案號L0858.70029US01中,該美國專利申請案之揭示內容藉此以引用方式整體併入本文。
第6A圖示出具有2個影像的2x512x784邏輯張量,每個影像經劃分成各自98行的4個條,其中緩衝器中之每一行可儲存資料之8個元素。條0儲存在緩衝器之第一區段中,條1儲存在起始於VBUF/2點的緩衝器之第二區段中,且條之剩餘部分交替地配置在兩個區段中。
第6B圖示出作為輸入的具有2個影像的2x512x784邏輯張量,及作為輸出的2x256x784張量。輸出張量經劃分成各自98個行之4個條,且交替地寫入VBUF/2點以上及以下的緩衝器之兩個區段中。
第6C圖示出具有4個條的作為輸入的具有2個影像的2x256x784邏輯張量,及具有4個條的作為輸出的2x256x196張量。在輸出張量中,因為196之向量長度不可藉由8整除,所以4個輸出條中之每一個具有24.5個行之長度。輸出條交替地寫入VBUF/2點以上及以下的緩衝器之兩個區段中。
第6D圖示出具有8個條的作為輸入的具有2個影像的2x512x784邏輯張量,及具有16個條的作為輸出的2x1024x196張量。輸出條交替地寫入VBUF/2點以上及以下的緩衝器之兩個區段中。
因而已描述本發明之至少一個實施例之若干態樣,將瞭解,熟習此項技術者將容易想到各種變更、修改,及改良。
術語「近似」及「約」可用來意味在一些實施例中在目標值之±20%內、在一些實施例中在目標值之±10%內、在一些實施例中在目標值之±5%內,及在一些實施例中在目標值之±2%內。術語「近似」及「約」可包括目標值。
10:處理器 30:記憶體 30_0,30_1,30_2,30_3:行 31:第一區段 32:第二區段 32_0:第一行 32_1:第二行 32_2:行 32_3:行 100:計算系統 100:輸入向量 200:輸出向量 200_0,200_1:條 200_0S,200_1S:起始 210:輸出向量 210_0:第一條 210_1:第二條 210_0S,210_1S:起始 220:輸出向量 220_0:第一條 220_1:第二條 230:輸出向量 230_0:第一條 230_1:第二條
本申請案之各種態樣及實施例將參考以下圖加以描述。應瞭解,圖未必按比例描繪。出現在多個圖中的項目在它們所出現的所有圖中藉由相同元件符號指示。在圖式中:
第1圖示出根據一些實施例的如本文所描述之資料儲存可發生的例示性計算系統100;
第2圖示出當輸出向量為輸入向量的兩倍長時的緩衝器中之示範性資料置放的示意圖;
第3圖示出例示與未對齊資料置放相比的根據一些實施例的緩衝器中之示範性對齊輸出資料置放的示意圖;
第4圖示出例示根據一些實施例的藉由將輸出條配置成兩個區段的替代性儲存策略的示意圖;
第5圖示出例示根據一些實施例的具有交錯及對齊輸出條之配置策略的示意圖,該等交錯及對齊輸出條可與並非2之整數冪的緩衝器行數或劃分數K一起工作;
第6A圖至第6D圖示出根據一些實施例的可使用在ResNet-50神經網路處理中的四個示範性向量儲存配置的示意圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
31:第一區段
32:第二區段
100:計算系統
220:輸出向量
220_0:第一條
220_1:第二條

Claims (20)

  1. 一種裝置,包含: 一向量處理器,經組配來接收一第一向量及一第二向量中之一個作為一輸入,且提供該第一向量及該第二向量中之另一個作為一輸出,其中該第二向量比該第一向量長;以及 一緩衝器,經組配來將該第二向量儲存在複數個條中,其中該等複數個條中之一第一條及該等複數個條中之一第二條在該緩衝器中對齊。
  2. 如請求項1所述之裝置,其中 該第一向量為用於該向量處理器之該輸入,且 該第二向量為用於該向量處理器之該輸出。
  3. 如請求項1所述之裝置,其中 該第一向量為用於該向量處理器之該輸出,且 該第二向量為用於該向量處理器之該輸入。
  4. 如請求項1所述之裝置,其中該緩衝器包含複數個行,且 該第一條起始於該等複數個行中之一第一行上,且該第二條起始於該等複數個行中之一第二行上,該第二行鄰近該第一行。
  5. 如請求項1所述之裝置,其中 該第二條與該第一條交錯。
  6. 如請求項1所述之裝置,其中該緩衝器經劃分成K個區段,其中K為一整數,且 該第一條及該第二條儲存在該等K個區段中之不同區段中。
  7. 如請求項6所述之裝置,其中K為二,且 該第一條位於距該第二條該緩衝器之一大小的一半處。
  8. 如請求項6所述之裝置,其中K為二,該第二向量包含多於兩個條,且其中 該等複數個條儲存在該等兩個區段之交替區段中。
  9. 如請求項1所述之裝置,其中該緩衝器進一步經組配來儲存該第一向量。
  10. 一種用以將用於一向量處理器之輸入及輸出向量儲存在一緩衝器中的方法,該方法包含以下步驟: 藉由該向量處理器接收一第一向量及一第二向量中之一個,作為至該向量處理器的輸入; 以該向量處理器提供該第一向量及第二向量中之另一個,作為該向量處理器之輸出,其中該第二向量比該第一向量長;以及 將該第二向量儲存在複數個條中,其中該等複數個條中之一第一條及該等複數個條中之一第二條在該緩衝器中對齊。
  11. 如請求項10所述之方法,其中 該第一向量為用於該向量處理器之一輸入向量,且 該第二向量為用於該向量處理器之一輸出向量。
  12. 如請求項10所述之方法,其中 該第一向量為用於該向量處理器之一輸出向量,且 該第二向量為用於該向量處理器之一輸入向量。
  13. 如請求項10所述之方法,其中該緩衝器包含複數個行,且儲存該第二向量之步驟包含以下步驟: 儲存該第一條,該第一條起始於該等複數個行中之一第一行上,及 儲存該第二條,該第二條起始於該等複數個行中之一第二行上,該第二行鄰近該第一行。
  14. 如請求項10所述之方法,其中儲存該第二向量之步驟進一步包含以下步驟:使該第二條與該第一條交錯。
  15. 如請求項10所述之方法,進一步包含以下步驟: 將該緩衝器劃分成K個區段,其中K為一整數,其中 儲存該第二向量之步驟包含以下步驟:將該第一條及該第二條儲存在該等K個區段中之不同區段中。
  16. 如請求項15所述之方法,其中K為二,且儲存該第二向量之步驟進一步包含以下步驟: 藉由該緩衝器之一大小的一半將該第一條與該第二條間隔開。
  17. 如請求項15所述之方法,其中K為二,該第二向量包含多於兩個條,且儲存該第二向量之步驟進一步包含以下步驟: 將該等複數個條交替地儲存在該等兩個區段中。
  18. 如請求項10所述之方法,進一步包含以下步驟: 將該第一向量儲存在該緩衝器中。
  19. 一種系統,包含至少一個處理器及至少一個電腦可讀儲存媒體,該至少一個電腦可讀儲存媒體具有儲存在該至少一個電腦可讀儲存媒體上的指令,該等指令當執行時,程式設計該至少一個處理器以執行用於將一向量處理器之輸入及輸出向量儲存在一緩衝器中的一方法,該方法包含以下動作: 藉由該向量處理器接收一第一向量及一第二向量中之一個,作為至該向量處理器的輸入; 以該向量處理器提供該第一向量及第二向量中之另一個,作為該向量處理器之輸出,其中該第二向量比該第一向量長;以及 將該第二向量儲存在複數個條中,其中該等複數個條中之一第一條及該等複數個條中之一第二條在該緩衝器中對齊。
  20. 如請求項19所述之系統,其中儲存該第二向量之該動作進一步包含:使該第二條與該第一條交錯。
TW110142559A 2020-11-16 2021-11-16 向量處理器資料儲存 TW202223689A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063114373P 2020-11-16 2020-11-16
US63/114,373 2020-11-16

Publications (1)

Publication Number Publication Date
TW202223689A true TW202223689A (zh) 2022-06-16

Family

ID=81586637

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110142559A TW202223689A (zh) 2020-11-16 2021-11-16 向量處理器資料儲存

Country Status (3)

Country Link
US (1) US11899967B2 (zh)
TW (1) TW202223689A (zh)
WO (1) WO2022104231A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62120574A (ja) * 1985-11-20 1987-06-01 Fujitsu Ltd ベクトル処理装置
FR2663138B1 (fr) * 1990-06-08 1992-09-11 France Etat Procede et circuit de traitement de signaux numeriques representatifs de vecteurs ou tuples de meme dimension et leur application a des ensembles de cardinalite et a des vecteurs ou tuples de dimensions quelconques.
US20070011441A1 (en) * 2005-07-08 2007-01-11 International Business Machines Corporation Method and system for data-driven runtime alignment operation

Also Published As

Publication number Publication date
US20220155996A1 (en) 2022-05-19
WO2022104231A1 (en) 2022-05-19
US11899967B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
JP6977239B2 (ja) 行列乗算器
TWI748151B (zh) 神經網絡計算加速器及其執行的方法
JP7245338B2 (ja) ニューラルネットワークプロセッサ
TWI740274B (zh) 用於在使用加法器之多維張量中存取資料之系統、電腦實施方法及設備
GB2554711A (en) Buffer addressing for a convolutional neural network
CN112748956A (zh) 支持同时处理多个矩阵的高吞吐量矩阵处理器
CN111340201A (zh) 卷积神经网络加速器及其执行卷积运算操作的方法
US11556757B1 (en) System and method of executing deep tensor columns in neural networks
Sung et al. In-place transposition of rectangular matrices on accelerators
WO2019206162A1 (zh) 计算装置和计算方法
TW202223689A (zh) 向量處理器資料儲存
CN110837483B (zh) 张量维度变换的方法以及装置
US11226816B2 (en) Systems and methods for data placement for in-memory-compute
US8826252B2 (en) Using vector atomic memory operation to handle data of different lengths
CN115760405A (zh) 交易执行方法、装置、计算机设备及介质
Mazaheri et al. Accelerating winograd convolutions using symbolic computation and meta-programming
CN112668709B (zh) 计算装置以及用于数据重用的方法
CN111191774B (zh) 面向精简卷积神经网络的低代价加速器架构及其处理方法
US9760372B2 (en) Parallel processing in plural processors with result register each performing associative operation on respective column data
CN111368250A (zh) 基于傅里叶变换/逆变换的数据处理系统、方法及设备
US20230289188A1 (en) Address generator for a computer with a single instruction multiple data architecture
US11099788B2 (en) Near-memory data reduction
US11544213B2 (en) Neural processor
US11681915B2 (en) Neural network method and apparatus
CN116721006A (zh) 特征图处理方法和装置