TWI661315B - 矩陣處理裝置 - Google Patents

矩陣處理裝置 Download PDF

Info

Publication number
TWI661315B
TWI661315B TW105143865A TW105143865A TWI661315B TW I661315 B TWI661315 B TW I661315B TW 105143865 A TW105143865 A TW 105143865A TW 105143865 A TW105143865 A TW 105143865A TW I661315 B TWI661315 B TW I661315B
Authority
TW
Taiwan
Prior art keywords
sparse
matrix
unit
sparse element
dense
Prior art date
Application number
TW105143865A
Other languages
English (en)
Other versions
TW201734845A (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 TW201734845A publication Critical patent/TW201734845A/zh
Application granted granted Critical
Publication of TWI661315B publication Critical patent/TWI661315B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • 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
    • 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
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • H03M7/3062Compressive sampling or sensing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Complex Calculations (AREA)

Abstract

本發明揭示之方法、系統及裝置包含一種用於將稀疏元素變換為一密集矩陣之系統。該系統包含一資料提取單元,其包含複數個處理器,該資料提取單元經組態以基於特定稀疏元素之子集之識別判定提取該等特定稀疏元素之該子集之一處理器指定。該系統包含一串接單元,其經組態以基於應用於由該資料提取單元提取之該等稀疏元素之一變換產生一輸出密集矩陣。

Description

矩陣處理裝置
本說明書大體上係關於使用電路處理一矩陣。
根據本說明書中描述之標的物之一個發明態樣,可使用一矩陣處理器來執行一稀疏至密集或一密集至稀疏矩陣變換。一般而言,高效能運算系統可使用線性代數常式來處理一矩陣。在一些例項中,矩陣之大小可過大而無法擬合於一個資料儲存器中,且矩陣之不同部分可稀疏儲存於一分散式資料儲存系統之不同位置中。為載入矩陣,一運算系統之中央處理單元可指示多個矩陣處理器存取矩陣之不同部分。各矩陣處理器可收集稀疏資料以對稀疏資料執行同作運算,且產生可串接在一起以供中央處理單元執行進一步處理之一密集矩陣。 一般而言,本說明書中描述之標的物之一個發明態樣可於一種用於將稀疏元素變換為一密集矩陣之系統中具體實施。該系統包含一請求識別單元,其經組態以:經由一節點網路接收對儲存於一或多個資料碎片(data shard)中之特定稀疏元素之一請求;判定該系統經指派以處置該等特定稀疏元素之一子集;及回應於判定該系統經指派以處置該等特定稀疏元素之一子集而產生存取該等特定稀疏元素之該子集之一指示。該系統包含一資料提取單元,其包含複數個處理器,該資料提取單元經組態以:自該請求識別單元接收存取該等特定稀疏元素之該子集之該指示;基於該等特定稀疏元素之該子集之識別判定提取該等特定稀疏元素之該子集之一處理器指定;基於該指定且藉由該複數個處理器之一第一處理器提取該等特定稀疏元素之該子集之一第一稀疏元素;及基於該指定且藉由該複數個處理器之一第二處理器提取該等特定稀疏元素之該子集之一第二稀疏元素。該系統包含一串接單元,其經組態以基於應用於至少該第一稀疏元素及該第二稀疏元素之一變換產生一輸出密集矩陣。 此等及其他實施方案可視情況各自包含以下特徵之一或多者。例如,該系統可包含一稀疏減小單元,其經組態以:自該第一處理器接收包含該第一稀疏元素之一第一矩陣,該第一矩陣具有一第一尺寸;及產生包含該第一稀疏元素之一第二矩陣,該第二矩陣具有小於該第一尺寸之一第二尺寸。該串接單元可進一步經組態以接收該第二矩陣。為產生該輸出密集矩陣,可基於該第二矩陣產生該輸出密集矩陣。 該串接單元可經組態以:在一第一時間點接收該第一稀疏元素;在一第二不同時間點接收該第二稀疏元素;及針對該輸出密集矩陣判定該第一稀疏元素及該第二稀疏元素之一順序。為產生該輸出密集矩陣,可基於該第一稀疏元素及該第二稀疏元素之該順序產生該輸出密集矩陣。 該系統可包含一壓縮/解壓縮單元,其經組態以壓縮該輸出密集矩陣以產生一經壓縮輸出密集矩陣,且將該經壓縮輸出密集矩陣提供至一節點網路。該串接單元可進一步經組態以接收表示經由該節點網路發送之一密集矩陣之一第一密集矩陣。為產生該輸出密集矩陣,可基於該第一密集矩陣、該第一稀疏元素及該第二稀疏元素產生該輸出密集矩陣。該壓縮/解壓縮單元可經組態以解壓縮一經壓縮第一密集矩陣以產生該第一密集矩陣。 為判定該系統經指派以處置該等特定稀疏元素之該子集,該資料提取單元可經組態以基於一查找表判定該系統經指派以處置該等特定稀疏元素之一子集。該等特定稀疏元素之該一或多個稀疏元素可為多維矩陣,且該輸出密集矩陣可為一向量。 本說明書中描述之標的物可在特定實施例中實施以實現以下優點之一或多者。將稀疏至密集資料載入任務自中央處理單元轉移至專用矩陣處理器增加中央處理單元之運算頻寬且減少系統之處理成本。矩陣處理器可配置為靠近其中儲存資料之記憶體且可降低載入資料之延時。藉由使用專用矩陣處理器,可避免使用專用於密集線性代數以提取稀疏資料之處理器。藉由具有每控制器通道多個單元,可並行化每次服務之同時異動之數目,且可立即處理異動而無需等待一先前異動完成。 此及其他態樣之其他實施方案包含經組態以執行編碼於電腦儲存器件上之方法之動作之對應系統、裝置及電腦程式。一或多個電腦之一系統可憑藉安裝於該系統上之軟體、韌體、硬體或其等之一組合如此組態,其等在操作中引起該系統執行該等動作。一或多個電腦程式可憑藉具有指令而如此組態,在藉由資料處理裝置執行時,指令引起該裝置執行該等動作。 在隨附圖式及下文描述中闡述本說明書中所描述之標的物之一或多項實施方案之細節。自描述、圖式及申請專利範圍將明白標的物之其他可能特徵、態樣及優點。
一般而言,資料可以一矩陣之形式表示,且一運算系統可使用線性代數演算法操縱資料。一矩陣可為一一維向量或一多維矩陣。一矩陣可由一資料結構(諸如一資料庫表或一變量)表示。然而,當一矩陣之大小過大時,可能無法將整個矩陣儲存於一個資料儲存器中。可將一密集矩陣變換為多個稀疏元素,其中各稀疏元素可儲存於一不同資料儲存器中。一密集矩陣之一稀疏元素可為其中僅矩陣之一小子矩陣(例如,一單值元素、一列、一行或一子矩陣)具有非零值之一矩陣。當一運算系統需要存取密集矩陣時,中央處理單元(CPU)可起始到達資料儲存器之各者以提取經儲存稀疏元素且應用一稀疏至密集變換以取回密集矩陣之一執行緒。然而,提取全部稀疏元素所花費之時間量可為長的,且因此可未充分利用CPU之運算頻寬。在一些情況中,一運算系統可需要存取數個密集矩陣之稀疏元素以形成一新密集矩陣,其中密集矩陣可能不具有相等尺寸。與一執行緒到達資料儲存器之各者以提取不同密集矩陣之稀疏元素相關聯之CPU閒置時間可遇到不同等待時間,且可能以一非所要方式進一步影響運算器件之效能。在一些情況中,一運算系統可需要存取數個密集矩陣之稀疏元素以形成一新密集矩陣,其中稀疏元素可能不具有相等尺寸。與一執行緒到達資料儲存器之各者以提取不同密集矩陣之稀疏元素相關聯之CPU閒置時間可遇到不同等待時間,且可能以一非所要方式進一步影響運算器件之效能。與一CPU分離之一硬體稀疏-密集變換單元可藉由獨立於CPU操作收集稀疏元素且將稀疏元素變換為一密集矩陣而增加處理器之運算頻寬。 圖1展示用於變換來自一或多個密集矩陣之稀疏元素以產生一密集矩陣之一例示性運算系統100之一方塊圖。運算系統100包含一處理單元102、一稀疏-密集變換單元104及資料碎片106a至106k,其中k 係大於一之一整數。一般而言,處理單元102處理一指令以存取一目標密集矩陣,且將一指令110發送至稀疏-密集變換單元104以產生目標密集矩陣。稀疏-密集變換單元104自資料碎片106a至106k之一或多者存取對應稀疏元素108a至108n,其中n 係大於一之一整數。稀疏-密集變換單元104使用對應稀疏元素108a至108n產生目標密集矩陣112,且將目標密集矩陣112提供至處理單元102以進行進一步處理。例如,稀疏元素108a至108n可為具有不同大小之二維矩陣,且稀疏-密集變換單元104可藉由將稀疏元素108a至108n之各者變換為一向量且將n 個向量串接為一單一向量而產生目標密集矩陣112。 在一些實施方案中,處理單元102可處理一指令以更新一目標密集矩陣,且將一經更新密集矩陣發送至稀疏-密集變換單元104。稀疏-密集變換單元104可將經更新密集矩陣變換為對應稀疏元素且相應地更新儲存於資料碎片106a至106k中之一或多個稀疏元素。 處理單元102經組態以處理用於在運算系統100內執行之指令。處理單元102可包含一或多個處理器。在一些實施方案中,處理單元102經組態以處理由稀疏-密集變換單元104產生之目標密集矩陣112。在一些其他實施方案中,處理單元102可經組態以請求稀疏-密集變換單元104產生目標密集矩陣112,且另一處理單元可經組態以處理目標密集矩陣112。資料碎片106a至106k儲存包含稀疏元素108a至108n之資料。在一些實施方案中,資料碎片106a至106k可為一或多個揮發性記憶體單元。在一些其他實施方案中,資料碎片106a至106k可為一或多個非揮發性記憶體單元。資料碎片106a至106k亦可為另一形式之電腦可讀媒體,諸如呈一儲存區域網路或其他組態之器件。資料碎片106a至106k可使用電連接、光學連接或無線連接耦合至稀疏-密集變換單元104。在一些實施方案中,資料碎片106a至106k可為稀疏-密集變換單元104之部分。 稀疏-密集變換單元104經組態以基於稀疏元素判定一密集矩陣。在一些實施方案中,稀疏-密集變換單元104可經組態以基於一密集矩陣判定稀疏元素之位置。在一些實施方案中,稀疏-密集變換單元104可包含多個互連稀疏元素存取單元,如下文關於圖2A至圖2D更詳細描述。 圖2A展示一例示性稀疏-密集變換單元200。稀疏-密集變換單元200可對應於稀疏-密集變換單元104。稀疏-密集變換單元200包含實體地或邏輯地配置成M 個列及N 個行之MN 個稀疏元素存取單元X 1,1 至X M,N ,其中MN 係等於或大於1之整數。在一些實施方案中,稀疏-密集變換單元200可包含經組態以處理資料之額外電路。一般而言,稀疏-密集變換單元200經組態以接收對一密集矩陣之一請求,且基於可由稀疏元素存取單元X 1,1 至X M,N 存取之對應稀疏元素判定一密集矩陣。一般而言,各稀疏元素存取單元經組態以存取稀疏元素之一指定組,且下文關於圖3A至圖3B更詳細描述各稀疏元素存取單元。在一些實施方案中,一稀疏元素存取單元可為一單指令多資料(SIMD)處理器件。 在一些實施方案中,稀疏元素存取單元X 1,1 至X M,N 可實體地或邏輯地配置成一二維網狀組態。例如,稀疏元素存取單元X 1,1 直接耦合至稀疏元素存取單元X 1,2 及X 2,1 。作為另一實例,稀疏元素存取單元X 2,2 直接耦合至稀疏元素存取單元X 2,1 、X 3,1 、X 2,3 及X 1,2 。兩個稀疏元素存取單元之間之耦合可為一電連接、一光學連接、一無線連接或任何其他適合連接。 在一些其他實施方案中,稀疏元素存取單元X 1,1 至X M,N 可實體地或邏輯地配置成一二維環面組態。例如,稀疏元素存取單元X 1,1 直接耦合至稀疏元素存取單元X 1,2 、X 2,1 、X 1,N 及X M,1 。作為另一實例,稀疏元素存取單元X M,N 直接耦合至稀疏元素存取單元X M,N-1 、X M-1,N 、X M,1 及X 1,N 。 在一些實施方案中,稀疏-密集變換單元200可經組態以根據一組預定條件對自密集矩陣變換之稀疏元素分區。各列稀疏元素存取單元X 1,1 至X M,N 可經分區以存取自特定密集矩陣變換之稀疏元素。例如,稀疏-密集變換單元200可經組態以存取自對應於一電腦模型之1,000個不同資料庫表之密集矩陣變換之稀疏元素。資料庫表之一或多者可具有不同大小。稀疏元素存取單元之第一列202可經組態以存取自資料庫表1號至資料庫表100號變換之稀疏元素,稀疏元素存取單元之第二列204可經組態以存取自資料庫表101號至資料庫表300號變換之稀疏元素,且稀疏元素存取單元之第M 列206可經組態以存取自資料庫表751號至資料庫表1,000號變換之稀疏元素。在一些實施方案中,可在一處理器使用稀疏-密集變換單元200存取稀疏元素之前藉由硬體指令組態分區。 各行稀疏元素存取單元X 1,1 至X M,N 可經分區以存取自特定密集矩陣變換之稀疏元素之一子集。例如,可將對應於資料庫表1號之密集矩陣變換為1,000個稀疏元素,其中該1,000個稀疏元素可由第一列202存取,如上文描述。稀疏元素存取單元X 1,1 可經組態以存取資料庫表1號之稀疏元素1號至200號,且稀疏元素存取單元X 1,2 可經組態以存取資料庫表1號之稀疏元素201號至500號。作為另一實例,可將對應於資料庫表2號之密集矩陣變換為500個稀疏元素,其中該500個稀疏元素可由第一列202存取,如上文描述。稀疏元素存取單元X 1,1 可經組態以存取資料庫表2號之稀疏元素1號至50號,且稀疏元素存取單元X 1,2 可經組態以存取資料庫表2號之稀疏元素51號至200號。作為另一實例,可將對應於資料庫表1,000號之密集矩陣變換為10,000個稀疏元素,其中該10,000個稀疏元素可由第M 列206存取,如上文描述。稀疏元素存取單元X M,1 可經組態以存取資料庫表1,000號之稀疏元素1號至2,000號,且稀疏元素存取單元X M,N 可經組態以存取資料庫表1,000號之稀疏元素9,000號至10,000號。 圖2B展示稀疏-密集變換單元200可如何使用稀疏元素存取單元之一二維網狀網路請求稀疏元素之一實例。作為一實例,一處理單元可執行向稀疏-密集變換單元200請求使用資料庫表1號之稀疏元素1號至50號、資料庫表2號之稀疏元素100號至200號及資料庫表1,000號之稀疏元素9,050號至9,060號產生之一密集一維向量之一指令。在稀疏-密集變換單元200接收到來自處理單元之請求之後,稀疏-密集變換單元200可指示稀疏元素存取單元X 1,1 將對稀疏元素之一請求廣播至網狀網路中之其他稀疏元素存取單元。稀疏元素存取單元X 1,1 可將一請求222廣播至稀疏元素存取單元X 1,2 且將一請求224廣播至稀疏元素存取單元X 2,1 。在接收到請求222之後,稀疏元素存取單元X 1,2 可將一請求226廣播至稀疏元素存取單元X 1,3 。在一些實施方案中,一稀疏元素存取單元可經組態以基於一選路方案將一請求廣播至另一稀疏元素存取單元。例如,稀疏元素存取單元X 1,2 不可能經組態以將一請求廣播至稀疏元素存取單元X 2,2 ,此係因為稀疏元素存取單元X 2,2 係經組態以接收來自稀疏元素存取單元X 2,1 之一廣播。該選路方案可為靜態的或動態產生的。例如,該選路方法可為一查找表。在一些實施方案中,一稀疏元素存取單元可經組態以基於請求224將請求224廣播至另一稀疏元素存取單元。例如,請求224可包含所請求稀疏元素(例如,資料庫表1號、稀疏元素1號至50號)之識別,且稀疏元素存取單元X 1,2 可基於識別判定是否將請求224廣播至稀疏元素存取單元X 2,2 及/或稀疏元素存取單元X 1,3 。廣播程序透過網狀網路傳播,其中稀疏元素存取單元X M,N 接收到來自稀疏元素存取單元X M,N-1 一請求230。 圖2C展示稀疏-密集變換單元200可如何使用稀疏元素存取單元之二維網狀網路產生所請求密集矩陣之一實例。在一些實施方案中,在一稀疏元素存取單元接收到廣播請求之後,稀疏元素存取單元經組態以判定其是否經組態以存取所請求稀疏元素之任一者。例如,稀疏元素存取單元X 1,1 可判定其經組態以存取資料庫表1號之稀疏元素1號至50號,但其未經組態以存取資料庫表2號之稀疏元素100號至200號或資料庫表1,000號之稀疏元素9,050號至9,060號。回應於判定其經組態以存取資料庫表1號之稀疏元素1號至50號,稀疏元素存取單元X 1,1 可自其中儲存此等稀疏元素之(若干)資料碎片提取資料庫表1號之稀疏元素1號至50號,且基於此等稀疏元素產生一密集矩陣242。 作為另一實例,稀疏元素存取單元X 2,1 可判定其未經組態以存取資料庫表1號之稀疏元素1號至50號、資料庫表2號之稀疏元素100號至200號或資料庫表1,000號之稀疏元素9,050號至9,060號之任一者。回應於判定其未經組態以存取所請求稀疏元素之任一者,稀疏元素存取單元X 2,1 可不執行進一步動作。 作為另一實例,稀疏元素存取單元X 1,2 可判定其經組態以存取資料庫表2號之稀疏元素100號至200號,但其未經組態以存取資料庫表1號之稀疏元素1號至50號或資料庫表1,000號之稀疏元素9,050號至9,060號。回應於判定其經組態以存取資料庫表2號之稀疏元素100號至200號,稀疏元素存取單元X 1,2 可自其中儲存此等稀疏元素之(若干)資料碎片提取此等稀疏元素,且基於此等稀疏元素產生一密集矩陣244。在一些實施方案中,在一稀疏元素存取單元產生一密集矩陣之後,稀疏元素存取單元可經組態以將該密集矩陣轉送至廣播請求之發送者。此處,稀疏元素存取單元X 1,2 將密集矩陣244轉送至稀疏元素存取單元X 1,1 。 作為另一實例,稀疏元素存取單元X M,N 可判定其經組態以存取資料庫表1,000號之稀疏元素9,050號至9,060號,但其未經組態以存取資料庫表1號之稀疏元素1號至50號或資料庫表2號之稀疏元素100號至200號。回應於判定其經組態以存取資料庫表1,000號之稀疏元素9,050號至9,060號,稀疏元素存取單元X M,N 可自其中儲存此等稀疏元素之(若干)資料碎片提取此等稀疏元素,且基於此等稀疏元素產生一密集矩陣246。在一些實施方案中,在一稀疏元素存取單元產生一密集矩陣之後,稀疏元素存取單元可經組態以將該密集矩陣轉送至廣播請求之發送者。此處,稀疏元素存取單元X M,N 將密集矩陣246轉送至稀疏元素存取單元X M,N-1 。在下一循環中,稀疏元素存取單元X M,N-1 經組態以將密集矩陣246轉送至稀疏元素存取單元X M,N-1 。此程序繼續直至稀疏元素存取單元X 2,1 已將密集矩陣246轉送至稀疏元素存取單元X 1,1 。 在一些實施方案中,稀疏-密集變換單元200經組態以變換由稀疏元素存取單元產生之密集矩陣且產生用於處理器單元之一密集矩陣。此處,稀疏-密集變換單元200將密集矩陣242、244及246變換為用於處理器單元之一密集矩陣。例如,密集矩陣242可具有100乘10之尺寸,密集矩陣244可具有20乘100之尺寸,且密集矩陣246可具有3乘3之尺寸。稀疏-密集變換單元200可將密集矩陣242、244及246變換為具有1乘3009之尺寸之一向量。有利地,根據密集矩陣(例如,資料庫表)對列之分區容許稀疏-密集變換單元200在經產生密集矩陣已自行N 傳播至行1之後獲得全部所請求稀疏元素。行之分區減少由使用僅一個稀疏元素存取單元存取過多稀疏元素引起之頻寬瓶頸。 圖2D展示稀疏-密集變換單元200可如何使用稀疏元素存取單元之一二維網狀網路基於一密集矩陣更新稀疏元素之一實例。作為一實例,一處理單元可執行請求稀疏-密集變換單元200使用一密集一維向量(使用資料庫表1號之稀疏元素1號至50號及資料庫表1,000號之稀疏元素9,050號至9,060號產生)更新經儲存稀疏元素之一指令。在稀疏-密集變換單元200接收到來自處理單元之請求之後,稀疏-密集變換單元200可指示稀疏元素存取單元X 1,1 將一稀疏元素更新請求廣播至網狀網路中之其他稀疏元素存取單元,其中稀疏元素更新請求可包含由處理單元提供之密集一維向量。在一些實施方案中,稀疏元素存取單元X 1,1 可判定其是否經指派以存取密集一維向量中包含之稀疏元素。回應於判定其經指派以存取密集一維向量中包含之稀疏元素,稀疏元素存取單元X 1,1 可更新儲存於(若干)資料碎片中之稀疏元素。此處,稀疏元素存取單元X 1,1 判定其經指派以存取資料庫表1號之稀疏元素1號至50號,且稀疏元素存取單元X 1,1 執行更新(若干)資料碎片中之此等稀疏元素之一指令。 稀疏元素存取單元X 1,1 可將一稀疏元素更新請求252廣播至稀疏元素存取單元X 1,2 且將一稀疏元素更新請求254廣播至稀疏元素存取單元X 2,1 。在接收到稀疏元素更新請求252之後,稀疏元素存取單元X 1,2 可判定其未經指派以存取密集一維向量中包含之稀疏元素。稀疏元素存取單元X 1,2 將一請求256廣播至稀疏元素存取單元X 1,3 。廣播程序透過網狀網路傳播,其中稀疏元素存取單元X M,N 接收到來自稀疏元素存取單元X M,N-1 一請求260。此處,稀疏元素存取單元X M,N 判定其經指派以存取資料庫表1,000號之稀疏元素9,050號至9,060號,且稀疏元素存取單元X M,N 執行更新(若干)資料碎片中之此等稀疏元素之一指令。 圖3A展示一例示性稀疏元素存取單元300。稀疏元素存取單元300可為稀疏元素存取單元X 1,1 至X M,N 之任一者。一般而言,稀疏元素存取單元300經組態以自節點網路320接收提取儲存於一或多個資料碎片中之稀疏元素且將經提取稀疏元素變換為一密集矩陣之一請求342。在一些實施方案中,一處理單元314將對使用稀疏元素產生之一密集矩陣之一請求發送至節點網路320中之一稀疏元素存取單元。稀疏元素存取單元可將請求342廣播至稀疏元素存取單元300。廣播請求342之選路可類似於圖2B中之描述。稀疏元素存取單元300包含一請求識別單元302、一資料提取單元304、一稀疏減小單元306、一串接單元308、一壓縮/解壓縮單元310及一分離單元312。節點網路320可為一二維網狀網路。處理單元314可類似於處理單元102。 一般而言,請求識別單元302經組態以接收提取儲存於一或多個資料碎片330中之稀疏元素之請求342,且判定稀疏元素存取單元300是否經指派以存取由請求342指示之稀疏元素。在一些實施方案中,請求識別單元302可藉由使用一查找表而判定稀疏元素存取單元300是否經指派以存取由請求342指示之稀疏元素。例如,若查找表中包含一特定所請求稀疏元素(例如,資料庫表1號之稀疏元素1號)之一識別,則請求識別單元302可將提取該特定所請求稀疏元素之一信號344發送至資料提取單元304。若查找表中不包含一特定所請求稀疏元素(例如,資料庫表1號之稀疏元素1號)之一識別,則請求識別單元302可丟棄經接收請求。在一些實施方案中,請求識別單元302可經組態以將經接收請求廣播至節點網路320上之另一稀疏元素存取單元。 資料提取單元304經組態以回應於接收到信號344而自資料碎片330提取一或多個所請求稀疏元素。在一些實施方案中,資料提取單元304包含一或多個處理器322a至322k,其中k 係一整數。處理器322a至322k可為向量處理單元(VPU)、陣列處理單元或任何適合處理單元。在一些實施方案中,處理器322a至322k配置為靠近資料碎片330以減少處理器322a至322k與資料碎片330之間之延時。基於稀疏元素存取單元300經指派以提取之所請求稀疏元素之數目,資料提取單元304可經組態以產生欲分散在處理器322a至322k之中之一或多個請求。在一些實施方案中,可基於稀疏元素之識別將處理器322a至322k之各者指派給特定稀疏元素,且資料提取單元304可經組態以基於稀疏元素之識別而針對處理器322a至322k產生一或多個請求。在一些實施方案中,資料提取單元304可藉由使用一查找表而判定處理器指派。在一些實施方案中,資料提取單元304可針對處理器322a至322k產生多個批次,其中各批次係對所請求稀疏元素之一子集之一請求。處理器322a至322k經組態以獨立地自資料碎片330提取經指派稀疏元素,且將經提取稀疏元素346轉送至稀疏減小單元306。 稀疏減小單元306經組態以減小經提取稀疏元素346之尺寸。例如,處理器322a至322k之各者可產生具有100乘1之尺寸之一稀疏元素。稀疏減小單元306可接收到具有100乘k之尺寸之經提取稀疏元素346,且藉由將經提取稀疏元素346之尺寸減小為100乘1 (藉由邏輯運算、算術運算或兩者之一組合)而產生稀疏減小之元素348。稀疏減小單元306經組態以將稀疏減小之元素348輸出至串接單元308。 串接單元308經組態以重新配置且串接稀疏減小之元素348以產生串接元素350。例如,稀疏元素存取單元X 1,1 可經組態以存取資料庫表1號之稀疏元素1號至200號。處理器322a可早於經組態以傳回經提取稀疏元素5號之處理器322b將經提取稀疏元素10號傳回至稀疏減小單元306。串接單元308經組態以將待排序之較晚接收的稀疏元素5號重新配置在較早接收的稀疏元素10號之前,且將稀疏元素1號至200號串接為串接元素350。 壓縮/解壓縮單元310經組態以壓縮串接元素350以產生用於節點網路320之一密集矩陣352。例如,壓縮/解壓縮單元310可經組態以壓縮串接元素350中之零值以改良節點網路320之頻寬。在一些實施方案中,壓縮/解壓縮單元310可解壓縮一經接收密集矩陣。例如,稀疏元素存取單元300可經由節點網路320自一鄰近稀疏元素存取單元接收一密集矩陣。稀疏元素存取單元300可解壓縮經接收密集矩陣,且可串接經解壓縮密集矩陣與串接元素350以形成可壓縮且接著輸出至節點網路320之經更新串接元素。 圖3B展示稀疏元素存取單元300可如何基於自節點網路320接收之一密集矩陣更新稀疏元素之一實例。作為一實例,一處理單元可執行請求稀疏-密集變換單元使用一密集一維向量(使用資料庫表1號之稀疏元素1號至50號及資料庫表1,000號之稀疏元素9,050號至9,060號產生)更新經儲存稀疏元素之一指令。在稀疏-密集變換單元接收到來自處理單元之請求之後,稀疏-密集變換單元可發送指示稀疏元素存取單元300判定其是否經指派以存取密集一維向量中包含之稀疏元素之一請求362。請求識別單元302經組態以判定稀疏元素存取單元300是否經指派以存取密集一維向量中包含之稀疏元素。回應於判定稀疏元素存取單元300經指派以存取密集一維向量中包含之稀疏元素,請求識別單元302可將更新儲存於(若干)資料碎片中之稀疏元素之一指示364發送至分離單元312。 分離單元312經組態以將一經接收密集矩陣變換為可在資料碎片330中藉由資料提取單元304更新之稀疏元素。例如,分離單元312可經組態以將密集一維向量變換為多個稀疏元素,且指示資料提取單元304更新稀疏元素存取單元300經指派以提取之儲存於資料碎片330中之稀疏元素。 圖4係繪示用於產生一密集矩陣之一程序400之一實例之一流程圖。程序400可由諸如稀疏-密集變換單元104或稀疏-密集變換單元200之一系統執行。系統可包含一第一群組之稀疏元素存取單元及一第二群組之稀疏元素存取單元。例如,參考圖2A,稀疏-密集變換單元200可包含實體地或邏輯地配置成M 個列及N 個行之MN 個稀疏元素存取單元X 1,1 至X M,N 。各列稀疏元素存取單元X 1,1 至X M,N 可經分區以存取自特定密集矩陣變換之稀疏元素。在一些實施方案中,第一群組之稀疏元素存取單元可包含一第一稀疏元素存取單元及一第二稀疏元素存取單元。例如,第一列稀疏-密集變換單元200可包含稀疏元素存取單元X 1,1 及X 1,2 。在一些實施方案中,第一群組之稀疏元素存取單元及第二群組之稀疏元素存取單元可配置成一二維網狀組態。在一些實施方案中,第一群組之稀疏元素存取單元及第二群組之稀疏元素存取單元可配置成一二維環面組態。 系統基於稀疏元素(包含與一第一密集矩陣相關聯之稀疏元素及與一第二密集矩陣相關聯之稀疏元素)接收對一輸出矩陣之一請求。例如,參考圖2B,一處理單元可執行向稀疏-密集變換單元200請求使用資料庫表1號之稀疏元素1號至50號、資料庫表2號之稀疏元素100號至200號及資料庫表1,000號之稀疏元素9,050號至9,060號產生之一密集一維向量之一指令。 在一些實施方案中,第一稀疏元素存取單元可接收對複數個稀疏元素(包含與第一密集矩陣相關聯之稀疏元素及與第二密集矩陣相關聯之稀疏元素)之一請求。第一稀疏元素存取單元可將該請求傳輸至第二稀疏元素存取單元。例如,參考圖2B,在稀疏-密集變換單元200接收到來自處理單元之請求之後,稀疏-密集變換單元200可指示稀疏元素存取單元X 1,1 將對稀疏元素之一請求廣播至網狀網路中之其他稀疏元素存取單元。稀疏元素存取單元X 1,1 可將一請求222廣播至稀疏元素存取單元X 1,2 。 系統獲得由一第一群組之稀疏元素存取單元提取之與第一密集矩陣相關聯之稀疏元素(402)。在一些實施方案中,第一稀疏元素存取單元可判定複數個稀疏元素之一特定稀疏元素之一識別碼匹配與第一密集矩陣相關聯之稀疏元素之第一子集之一者之一識別碼。例如,參考圖2C,稀疏元素存取單元X 1,1 可經組態以存取資料庫表1號之稀疏元素1號至200號。稀疏元素存取單元X 1,1 可判定其經組態以存取資料庫表1號之稀疏元素1號至50號,但其未經組態以存取資料庫表2號之稀疏元素100號至200號或資料庫表1,000號之稀疏元素9,050號至9,060號。回應於判定複數個稀疏元素之特定稀疏元素之識別碼匹配與第一密集矩陣相關聯之稀疏元素之第一子集之一者之識別碼,第一稀疏元素存取單元可提取與第一密集矩陣相關聯之包含特定稀疏元素之稀疏元素之第一子集。例如,回應於判定其經組態以存取資料庫表1號之稀疏元素1號至50號,稀疏元素存取單元X 1,1 可自其中儲存此等稀疏元素之(若干)資料碎片提取資料庫表1號之稀疏元素1號至50號。 第二稀疏元素存取單元可提取與第一密集矩陣相關聯之稀疏元素之一第二不同子集。例如,參考圖2C,稀疏元素存取單元X 1,2 可經組態以存取資料庫表2號之稀疏元素51號至200號。回應於判定其經組態以存取資料庫表2號之稀疏元素100號至200號,稀疏元素存取單元X 1,2 可自其中儲存此等稀疏元素之(若干)資料碎片提取此等稀疏元素。 系統獲得由一第二群組之稀疏元素存取單元提取之與第二密集矩陣相關聯之稀疏元素(404)。例如,參考圖2C,第二群組稀疏元素存取單元可為MN 個稀疏元素存取單元之第M 列,其中稀疏元素存取單元X M,N 可經組態以存取資料庫表1,000號之稀疏元素9,000號至10,000號。回應於判定其經組態以存取資料庫表1,000號之稀疏元素9,050號至9,060號,稀疏元素存取單元X M,N 可自其中儲存此等稀疏元素之(若干)資料碎片提取此等稀疏元素,且基於此等稀疏元素產生一密集矩陣246。 在一些實施方案中,第一稀疏元素存取單元可自一第一資料碎片提取與第一密集矩陣相關聯之稀疏元素之第一子集,且第二稀疏元素存取單元可自一第二不同資料碎片提取與第一密集矩陣相關聯之稀疏元素之第二不同子集。例如,參考圖1,第一稀疏元素存取單元可自資料碎片106a提取與第一密集矩陣相關聯之稀疏元素之第一子集,且第二稀疏元素存取單元可自資料碎片106b提取與第一密集矩陣相關聯之稀疏元素之第二不同子集。 系統變換與第一密集矩陣相關聯之稀疏元素及與第二密集矩陣相關聯之稀疏元素以產生包含與第一密集矩陣相關聯之稀疏元素及與第二密集矩陣相關聯之稀疏元素之一輸出密集矩陣(406)。例如,參考圖2C,稀疏-密集變換單元200可將密集矩陣242、244及246變換為用於處理器單元之一密集矩陣。 在一些實施方案中,與第一密集矩陣相關聯之稀疏元素及與第二密集矩陣相關聯之稀疏元素可為多維矩陣,且輸出密集矩陣可為一向量。例如,密集矩陣242可具有100乘10之尺寸,密集矩陣244可具有20乘100之尺寸,且密集矩陣246可具有3乘3之尺寸。稀疏-密集變換單元200可將密集矩陣242、244及246變換為具有1乘3009之尺寸之一向量。 圖5係繪示用於產生一密集矩陣之一程序500之一實例之一流程圖。程序500可由諸如稀疏-密集變換單元104或稀疏元素存取單元300之一系統執行。 系統接收存取特定稀疏元素之子集之一指示(502)。例如,參考圖3A,資料提取單元304可經組態以接收自資料碎片330提取一或多個所請求稀疏元素之一信號344。在一些實施方案中,可經由一節點網路接收對儲存於一或多個資料碎片中之特定稀疏元素之一請求。例如,參考圖3A,請求識別單元302可經組態以經由一節點網路320接收提取儲存於資料碎片330中之稀疏元素之一請求342。系統可判定資料提取單元經指派以處置特定稀疏元素之一子集。例如,請求識別單元302可經組態以判定稀疏元素存取單元300是否經指派以存取由請求342指示之稀疏元素。回應於判定資料提取單元經指派以處置特定稀疏元素之一子集,可產生存取特定稀疏元素之子集之指示。例如,若一查找表中包含一特定所請求稀疏元素(例如,資料庫表1號之稀疏元素1號)之一識別,則請求識別單元302可將提取該特定所請求稀疏元素之一信號344發送至資料提取單元304。 系統基於特定稀疏元素之子集之識別判定提取特定稀疏元素之子集之一處理器指定(504)。例如,參考圖3A,資料提取單元304包含一或多個處理器322a至322k。可基於稀疏元素之識別將處理器322a至322k之各者指派給特定稀疏元素,且資料提取單元304可經組態以基於稀疏元素之識別針對處理器322a至322k產生一或多個請求。在一些實施方案中,系統可判定系統經指派以處置特定稀疏元素之子集包括:基於一查找表判定系統經指派以處置特定稀疏元素之一子集。例如,資料提取單元304可藉由使用一查找表而判定處理器指派。 系統基於指定且藉由複數個處理器之一第一處理器提取特定稀疏元素之子集之一第一稀疏元素(506)。例如,參考圖3A,資料提取單元304可指示處理器322a提取信號344中包含之一稀疏元素。 系統基於指定且藉由複數個處理器之一第二處理器提取特定稀疏元素之子集之一第二稀疏元素(508)。例如,參考圖3A,資料提取單元304可指示處理器322b提取信號344中包含之一不同稀疏元素。 在一些實施方案中,可自第一處理器接收包含第一稀疏元素之一第一矩陣,其中第一矩陣可具有一第一尺寸。系統可產生包含第一稀疏元素之一第二矩陣,第二矩陣具有小於第一尺寸之一第二尺寸。例如,稀疏減小單元306可經組態以減小經提取稀疏元素346之尺寸。處理器322a至322k之各者可產生具有100乘1之尺寸之一稀疏元素。稀疏減小單元306可接收具有100乘k 之尺寸之經提取稀疏元素346,且藉由將經提取稀疏元素346之尺寸減小為100乘1 (藉由邏輯運算、算術運算或兩者之一組合)而產生稀疏減小之元素348。系統可產生輸出密集矩陣,可基於第二矩陣產生輸出密集矩陣。例如,串接單元308可經組態以重新配置且串接稀疏減小之元素348以產生串接元素350。 在一些實施方案中,可在一第一時間點接收第一稀疏元素,且可在一第二不同時間點接收第二稀疏元素。系統可針對輸出密集矩陣判定第一稀疏元素及第二稀疏元素之一順序。例如,參考圖3A,處理器322a可早於經組態以傳回經提取稀疏元素5號之處理器322b將經提取稀疏元素10號傳回至稀疏減小單元306。串接單元308經組態以將待排序之較晚接收的稀疏元素5號重新配置在較早接收的稀疏元素10號之前,且將稀疏元素1號至200號串接為串接元素350。 系統基於應用於至少第一稀疏元素及第二稀疏元素之一變換產生一輸出密集矩陣(510)。在一些實施方案中,系統可壓縮輸出密集矩陣以產生一經壓縮輸出密集矩陣。系統可將經壓縮輸出密集矩陣提供至節點網路。例如,壓縮/解壓縮單元310可經組態以壓縮串接元素350以產生用於節點網路320之一密集矩陣352。 在一些實施方案中,系統可接收表示經由節點網路發送之一密集矩陣之一第一密集矩陣,且基於第一密集矩陣、第一稀疏元素及第二稀疏元素產生輸出密集矩陣。例如,稀疏元素存取單元300可經由節點網路320自一鄰近稀疏元素存取單元接收一密集矩陣。稀疏元素存取單元300可解壓縮經接收密集矩陣,且可串接經解壓縮密集矩陣與串接元素350以形成可壓縮且接著輸出至節點網路320之經更新串接元素。 在一些實施方案中,特定稀疏元素之一或多個稀疏元素係多維矩陣,且輸出密集矩陣係一向量。可在數位電子電路、有形體現之電腦軟體或韌體、電腦硬體中實施本說明書中描述之標的物及功能性操作之實施例,該等實施例包含本說明書中揭示之結構及其等之結構等效物或該等結構之一或多者之組合。可將本說明書中描述之標的物之實施例實施為一或多個電腦程式,即,編碼於一有形非暫時性程式載體上以供資料處理裝置執行或控制資料處理裝置之操作之電腦程式指令之一或多個模組。替代地或另外,程式指令可編碼於一人為產生之傳播信號(例如,一機器產生之電信號、光學信號或電磁信號)上,該信號經產生以編碼用於傳輸至適合接收器裝置以供一資料處理裝置執行之資訊。電腦儲存媒體可為一機器可讀儲存器件、一機器可讀儲存基板、一隨機或串列存取記憶體器件或其等之一或多者之一組合。 術語「資料處理裝置」涵蓋用於處理資料之全部種類之裝置、器件及機器,包含例如一可程式化處理器、一電腦,或多個處理器或電腦。裝置可包含特殊用途邏輯電路,例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路)。除了硬體之外,裝置亦可包含針對所述電腦程式建立一執行環境之程式碼,例如,構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合之程式碼。 一電腦程式(亦可稱為或描述為一程式、軟體、一軟體應用程式、一模組、一軟體模組、一指令碼或程式碼)可以任何形式之程式設計語言(包含編譯或解譯語言,或宣告或過程語言)寫入,且其可以任何形式部署,包含作為一獨立程式或作為一模組、組件、副常式或適用於一運算環境中之其他單元。一電腦程式可(但無需)對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料之一檔案(例如,儲存於一標記語言文件中之一或多個指令碼)之一部分中,儲存於專用於所述程式之一單一檔案中,或儲存於多個協調檔案(例如,儲存一或多個模組、副程式或程式碼之部分之檔案)中。可部署一電腦程式以在一個電腦上或在定位於一個地點處或跨多個地點分佈且由一通信網路互連之多個電腦上執行。 本說明書中描述之程序及邏輯流程可由一或多個可程式化電腦執行,該一或多個可程式化電腦執行一或多個電腦程式以藉由操作輸入資料且產生輸出而執行功能。程序及邏輯流程亦可由特殊用途邏輯電路(例如,一FPGA (場可程式化閘陣列)、一ASIC (特定應用積體電路)或一GPGPU (一般用途圖形處理單元))執行,且裝置亦可實施為特殊用途邏輯電路。 適於執行一電腦程式之電腦包含例如(可基於)通用或專用微處理器或兩者,或任何其他種類之中央處理單元。一般而言,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之主要元件係用於執行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體器件。一般而言,一電腦將亦包含用於儲存資料之一或多個大容量儲存器件(例如,磁碟、磁光碟或光碟),或經可操作地耦合以自一或多個大容量儲存器件接收資料或將資料傳送至一或多個大容量儲存器件或兩者。然而,一電腦無需具有此等器件。再者,一電腦可嵌入於另一器件中,例如(僅列出少許)一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲機、一全球定位系統(GPS)接收器或一可攜式儲存器件(例如,一通用串列匯流排(USB)快閃隨身碟)。 適於儲存電腦程式指令及資料之電腦可讀媒體包含全部形式之非揮發性記憶體、媒體及記憶體器件,包含例如:半導體記憶體器件,例如,EPROM、EEPROM及快閃記憶體器件;磁碟,例如,內部硬碟機或可抽換式磁碟;磁光碟;及CD ROM及DVD-ROM磁碟。處理器及記憶體可由特殊用途邏輯電路補充或併入於特殊用途邏輯電路中。 為提供與一使用者之互動,本說明書中描述之標的物之實施例可實施於一電腦上,該電腦具有:用於將資訊顯示給使用者之一顯示器件,例如,一CRT (陰極射線管)或LCD (液晶顯示器)監視器;及一鍵盤及一指標器件,例如,一滑鼠或一軌跡球,藉由其等使用者可將輸入提供至電腦。亦可其他種類之器件來提供與一使用者之互動;例如,提供至使用者之回饋可為任何形式之感覺回饋,例如,視覺回饋、聽覺回饋或觸覺回饋;且可以任何形式接收來自使用者之輸入,包含聲學、語音或觸覺輸入。另外,一電腦可藉由將文件發送至由一使用者使用之一器件且自該器件接收文件而與使用者互動;例如,藉由回應於自一使用者之用戶端器件上之一網頁瀏覽器接收之請求而將網頁發送至網頁瀏覽器。 本說明書中描述之標的物之實施例可實施於一運算系統中,該運算系統包含一後端組件(例如,作為一資料伺服器),或包含一中間軟體組件(例如,一應用程式伺服器),或包含一前端組件(例如,具有一圖形使用者介面或一使用者可透過其與本說明書中描述之標的物之一實施方案互動之一網頁瀏覽器之一用戶端電腦),或一或多個此等後端組件、中間軟體組件或前端組件之任何組合。系統之組件可由數位資料通信(例如,一通信網路)之任何形式或媒體互連。通信網路之實例包含一區域網路(「LAN」)及一廣域網路(「WAN」),例如,網際網路。 運算系統可包含用戶端及伺服器。一用戶端及伺服器通常彼此遠離且通常透過一通信網路互動。用戶端及伺服器之關係憑藉運行於各自電腦上且彼此具有一用戶端-伺服器關係之電腦程式而產生。 雖然本說明書含有許多具體實施方案細節,但不應將此等細節理解為對任何發明或可主張之內容之範疇之限制,而是應理解為對特定發明之特定實施例所特有的特徵之描述。亦可在一單一實施例中組合實施本說明書中在各別實施例之內容背景中描述之特定特徵。相反地,亦可在多個實施例中單獨地或以任何適合子組合實施在一單一實施例之內容背景中描述之各種特徵。此外,儘管上文可將特徵描述為以特定組合作用且甚至最初如此主張,然在一些情況中,來自一所主張組合之一或多個特徵可自該組合去除,且該所主張組合可係關於一子組合或一子組合之變動。 類似地,雖然在圖式中以一特定順序描繪操作,但不應將此理解為要求依所展示之特定順序或依循序順序執行此等操作,或執行全部所繪示之操作以達成所要結果。在某些境況中,多重任務處理及並行處理可為有利的。此外,不應將上文描述之實施例中之各種系統模組及組件之分離理解為在全部實施例中皆要求此分離,且應將此理解為所描述之程式組件及系統通常可一起整合於一單一軟體產品中或封裝至多個軟體產品中。 已描述標的物之特定實施例。其他實施例係在以下申請專利範圍之範疇內。例如,在申請專利範圍中敘述之動作可依一不同順序執行且仍達成所要結果。作為一個實例,附圖中描繪之程序不一定要求所展示之特定順序或循序順序以達成所要結果。在特定實施方案中,多重任務處理及並行處理可為有利的。
100‧‧‧運算系統
102‧‧‧處理單元
104‧‧‧稀疏-密集變換單元
106a至106k‧‧‧資料碎片
108a至108n‧‧‧稀疏元素
110‧‧‧指令
112‧‧‧目標密集矩陣
200‧‧‧稀疏-密集變換單元
202‧‧‧稀疏元素存取單元之第一列
204‧‧‧稀疏元素存取單元之第二列
206‧‧‧稀疏元素存取單元之第M
222‧‧‧請求
224‧‧‧請求
226‧‧‧請求
230‧‧‧請求
242‧‧‧密集矩陣
244‧‧‧密集矩陣
246‧‧‧密集矩陣
252‧‧‧稀疏元素更新請求
254‧‧‧稀疏元素更新請求
256‧‧‧請求
260‧‧‧請求
300‧‧‧稀疏元素存取單元
302‧‧‧請求識別單元
304‧‧‧資料提取單元
306‧‧‧稀疏減小單元
308‧‧‧串接單元
310‧‧‧壓縮/解壓縮單元
312‧‧‧分離單元
314‧‧‧處理單元
320‧‧‧節點網路
322a至322k‧‧‧處理器
330‧‧‧資料碎片
342‧‧‧請求
344‧‧‧信號
346‧‧‧經提取稀疏元素
348‧‧‧稀疏減小之元素
350‧‧‧串接元素
352‧‧‧密集矩陣
362‧‧‧請求
364‧‧‧指示
400‧‧‧程序
402‧‧‧步驟
404‧‧‧步驟
406‧‧‧步驟
500‧‧‧程序
502‧‧‧步驟
504‧‧‧步驟
506‧‧‧步驟
508‧‧‧步驟
510‧‧‧步驟
X 1,1 至X M,N ‧‧‧稀疏元素存取單元
圖1係一例示性運算系統之一方塊圖。 圖2A至圖2D繪示一例示性稀疏-密集變換單元。 圖3A至圖3B繪示一例示性稀疏元素存取單元。 圖4係繪示用於產生一密集矩陣之一程序之一實例之一流程圖。 圖5係繪示用於將稀疏元素變換為一密集矩陣之一程序之一實例之一流程圖。 各個圖式中之相似元件符號及名稱指示相似元件。

Claims (17)

  1. 一種包括用於將稀疏(sparse)元素變換為一密集(dense)矩陣之一硬體稀疏-密集變換單元之系統,該系統包括:一稀疏元素存取單元,其位於該硬體稀疏-密集變換單元中並用於存取一密集矩陣之多個稀疏元素,其中該稀疏元素存取單元包含:一請求識別單元,其經組態以:通過一節點網路接收用於儲存於一或多個資料碎片(shard)中之特定稀疏元素之一請求;判定該請求識別單元位於其中之該稀疏元素存取單元係經指派以處置該等特定稀疏元素之一子集;及回應於判定該請求識別單元位於其中之該稀疏元素存取單元被指派以處置該等特定稀疏元素之該子集,產生用於存取該等特定稀疏元素之該子集之一指示;至少一處理器,其用於基於該指示提取該等特定稀疏元素之該子集之一或多個稀疏元素;及一串接單元,其經組態以:基於應用於至少該一或多個稀疏元素之一變換產生一輸出密集矩陣。
  2. 如請求項1之系統,其中判定該請求識別單元位於其中之該稀疏元素存取單元經指派以處置該等特定稀疏元素之該子集包括:基於一查找表(lookup table)判定該請求識別單元位於其中之該稀疏元素存取單元經指派以處置該等特定稀疏元素之一子集。
  3. 如請求項1之系統,該稀疏元素存取單元進一步包括:一稀疏減小單元,其經組態以:自該至少一處理器接收包含一第一稀疏元素之一第一矩陣,該第一矩陣具有一第一尺寸;及產生包含該第一稀疏元素之一第二矩陣,該第二矩陣具有小於該第一尺寸之一第二尺寸,其中該串接單元進一步經組態以:接收該第二矩陣,其中產生該輸出密集矩陣進一步包括:基於該第二矩陣產生該輸出密集矩陣。
  4. 如請求項1之系統,其中該串接單元經組態以:在一第一時間點接收一第一稀疏元素;在一第二不同時間點接收一第二稀疏元素;及針對該輸出密集矩陣判定該第一稀疏元素及該第二稀疏元素之一順序,其中產生該輸出密集矩陣進一步包括:基於該第一稀疏元素及該第二稀疏元素之該順序產生該輸出密集矩陣。
  5. 如請求項1之系統,該稀疏元素存取單元進一步包括:一壓縮/解壓縮單元,其經組態以:壓縮該輸出密集矩陣以產生一經壓縮輸出密集矩陣;及將該經壓縮輸出密集矩陣提供至一節點網路。
  6. 如請求項5之系統,其中該串接單元進一步經組態以接收表示經由一節點網路發送之一密集矩陣之一第一密集矩陣,及其中產生該輸出密集矩陣進一步包括:基於該第一密集矩陣、一第一稀疏元素及一第二稀疏元素產生該輸出密集矩陣。
  7. 如請求項6之系統,其中該壓縮/解壓縮單元經組態以解壓縮一經壓縮第一密集矩陣以產生該第一密集矩陣。
  8. 如請求項1之系統,其中該等特定稀疏元素之一或多個稀疏元素係多維矩陣,且其中該輸出密集矩陣係一向量。
  9. 一種用於將稀疏元素變換為一密集矩陣之方法,其包括:藉由一稀疏元素存取單元並自一外部來源接收用於儲存於一或多個資料碎片中之特定特定稀疏元素之一請求,其中該稀疏元素存取單元位於一稀疏-密集變換單元中;藉由位於該稀疏元素存取單元中之一請求識別單元並基於該請求判定該請求識別單元位於其中之該稀疏元素存取單元經指派以處置該等特定稀疏元素之一子集;回應於判定該請求識別單元位於其中之該稀疏元素存取單元被指派以處置該等特定稀疏元素之該子集,藉由該請求識別單元產生用於存取該等特定稀疏元素之該子集之一指示;基於該指示且藉由該稀疏元素存取單元之至少一處理器提取該等特定稀疏元素之該子集之一或多個稀疏元素;及藉由位於該稀疏元素存取單元中之一串接(concatenation)單元基於應用於至少該一或多個稀疏元素之一變換產生一輸出密集矩陣。
  10. 如請求項9之方法,其進一步包括:藉由一稀疏減小單元自該至少一處理器接收包含一第一稀疏元素之一第一矩陣,該第一矩陣具有一第一尺寸;藉由該稀疏減小單元產生包含該第一稀疏元素之一第二矩陣,該第二矩陣具有小於該第一尺寸之一第二尺寸;及藉由該串接單元接收該第二矩陣,其中產生該輸出密集矩陣進一步包括:基於該第二矩陣產生該輸出密集矩陣。
  11. 如請求項9之方法,其中產生該輸出密集矩陣進一步包括:在一第一時間點接收一第一稀疏元素;在一第二不同時間點接收一第二稀疏元素;針對該輸出密集矩陣判定該第一稀疏元素及該第二稀疏元素之一順序;及基於該第一稀疏元素及該第二稀疏元素之該順序產生該輸出密集矩陣。
  12. 如請求項9之方法,其進一步包括:壓縮該輸出密集矩陣以產生一經壓縮輸出密集矩陣;及將該經壓縮輸出密集矩陣提供至一節點網路。
  13. 如請求項9之方法,其中產生該輸出密集矩陣進一步包括:接收表示經由一節點網路發送之一密集矩陣之一第一密集矩陣;及基於該第一密集矩陣、一第一稀疏元素及一第二稀疏元素產生該輸出密集矩陣。
  14. 如請求項9之方法,其中判定該稀疏元素存取單元經指派以處置該等特定稀疏元素之該子集包括:基於一查找表判定該稀疏元素存取單元經指派以處置該等特定稀疏元素之一子集。
  15. 一種包括用於將稀疏元素變換為一密集矩陣之一硬體稀疏-密集變換單元之系統,該系統包括:一或多個處理器,其等經組態以基於儲存於一或多個資料碎片中之特定稀疏元素發送對一輸出矩陣之一請求;一稀疏元素存取單元,其位於該稀疏-密集變換單元中並用於存取儲存於該一或多個資料碎片中之該特定稀疏元素,該稀疏元素存取單元包括:該請求識別單元經組態以:通過一節點網路接收用於儲存於該一或多個資料碎片中之該特定稀疏元素之該請求;判定該請求識別單元位於其中之該稀疏元素存取單元係經指派以處置該等特定稀疏元素之一子集;及回應於判定該請求識別單元位於其中之該稀疏元素存取單元被指派以處置該等特定稀疏元素之該子集,產生用於存取該等特定稀疏元素之該子集之一指示;至少一處理器,其用於基於該指示提取該等特定稀疏元素之該子集之一或多個稀疏元素;及一串接單元,其經組態以:基於應用於至少該一或多個稀疏元素之一變換產生一輸出密集矩陣。
  16. 如請求項15之系統,該稀疏元素存取單元進一步包括:一稀疏減小單元,其經組態以:自該至少一處理器接收包含該第一稀疏元素之一第一矩陣,該第一矩陣具有一第一尺寸;及產生包含該第一稀疏元素之一第二矩陣,該第二矩陣具有小於該第一尺寸之一第二尺寸,其中該串接單元進一步經組態以:接收該第二矩陣,其中產生該輸出密集矩陣進一步包括:基於該第二矩陣產生該輸出密集矩陣。
  17. 如請求項15之系統,該稀疏元素存取單元進一步包括:一壓縮/解壓縮單元,其經組態以:壓縮該輸出密集矩陣以產生一經壓縮輸出密集矩陣;及將該經壓縮輸出密集矩陣提供至一節點網路。
TW105143865A 2016-02-05 2016-12-29 矩陣處理裝置 TWI661315B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/016,486 US9898441B2 (en) 2016-02-05 2016-02-05 Matrix processing apparatus
US15/016,486 2016-02-05

Publications (2)

Publication Number Publication Date
TW201734845A TW201734845A (zh) 2017-10-01
TWI661315B true TWI661315B (zh) 2019-06-01

Family

ID=57796137

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105143865A TWI661315B (zh) 2016-02-05 2016-12-29 矩陣處理裝置

Country Status (8)

Country Link
US (2) US9898441B2 (zh)
EP (1) EP3203381A1 (zh)
JP (2) JP6626433B2 (zh)
KR (2) KR101936396B1 (zh)
CN (2) CN113254871A (zh)
BR (1) BR102016031034A2 (zh)
SG (1) SG10201610912UA (zh)
TW (1) TWI661315B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9805001B2 (en) 2016-02-05 2017-10-31 Google Inc. Matrix processing apparatus
TWI769810B (zh) 2017-05-17 2022-07-01 美商谷歌有限責任公司 特殊用途神經網路訓練晶片
KR20200052182A (ko) * 2018-11-06 2020-05-14 한국전자통신연구원 딥러닝 모델 압축 및 압축 해제 방법 그리고 장치
US10789510B2 (en) 2019-01-11 2020-09-29 Google Llc Dynamic minibatch sizes
CN110489428B (zh) * 2019-08-26 2020-05-22 上海燧原智能科技有限公司 多维稀疏矩阵压缩方法、解压缩方法、装置、设备及介质
US11295199B2 (en) 2019-12-09 2022-04-05 UMNAI Limited XAI and XNN conversion
US11971885B2 (en) * 2021-02-10 2024-04-30 Adobe Inc. Retrieval aware embedding
CN112712456A (zh) * 2021-02-23 2021-04-27 中天恒星(上海)科技有限公司 Gpu处理电路结构

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249614B1 (en) * 1998-03-06 2001-06-19 Alaris, Inc. Video compression and decompression using dynamic quantization and/or encoding
US20060072834A1 (en) * 2003-04-17 2006-04-06 Lynch William C Permutation procrastination
US20120159489A1 (en) * 2010-12-20 2012-06-21 Oliver Schabenberger Systems and Methods for Generating a Cross-Product Matrix In a Single Pass Through Data Using Single Pass Levelization

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708836A (en) 1990-11-13 1998-01-13 International Business Machines Corporation SIMD/MIMD inter-processor communication
US5625836A (en) 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
JP2557175B2 (ja) * 1992-05-22 1996-11-27 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・システム
US5446908A (en) 1992-10-21 1995-08-29 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for pre-processing inputs to parallel architecture computers
US5644517A (en) 1992-10-22 1997-07-01 International Business Machines Corporation Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors
JPH06243113A (ja) * 1993-02-19 1994-09-02 Fujitsu Ltd 並列計算機における計算モデルのマッピング法
JPH0713945A (ja) * 1993-06-16 1995-01-17 Nippon Sheet Glass Co Ltd 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造
WO2002084509A1 (en) 2001-02-24 2002-10-24 International Business Machines Corporation A novel massively parrallel supercomputer
EP1374468A4 (en) 2001-02-24 2008-12-10 Ibm CLASS NETWORK ROUTING
JP3953295B2 (ja) * 2001-10-23 2007-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報検索システム、情報検索方法、情報検索を実行させるためのプログラムおよび情報検索を実行させるためのプログラムが記録された記録媒体
US6961888B2 (en) 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
US7668268B2 (en) * 2006-05-22 2010-02-23 Nokia Corporation Lower complexity computation of lattice reduction
CN101621514B (zh) * 2009-07-24 2013-01-09 北京航空航天大学 网络数据的压缩方法、网络系统和融合中心设备
US8751556B2 (en) 2010-06-11 2014-06-10 Massachusetts Institute Of Technology Processor for large graph algorithm computations and matrix operations
US8549259B2 (en) 2010-09-15 2013-10-01 International Business Machines Corporation Performing a vector collective operation on a parallel computer having a plurality of compute nodes
CN102141976B (zh) 2011-01-10 2013-08-14 中国科学院软件研究所 稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法
US9665531B2 (en) 2012-06-13 2017-05-30 International Business Machines Corporation Performing synchronized collective operations over multiple process groups
CN102968632A (zh) * 2012-10-15 2013-03-13 北京大学 获取图像的紧凑全局特征描述子的方法及图像检索方法
JP6083300B2 (ja) * 2013-03-29 2017-02-22 富士通株式会社 プログラム、並列演算方法および情報処理装置
US9367519B2 (en) 2013-08-30 2016-06-14 Microsoft Technology Licensing, Llc Sparse matrix data structure
US9471377B2 (en) 2013-11-13 2016-10-18 Reservoir Labs, Inc. Systems and methods for parallelizing and optimizing sparse tensor computations
CN103984527B (zh) * 2014-04-01 2017-12-15 杭州电子科技大学 优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法
US10067909B2 (en) 2014-06-25 2018-09-04 Sap Se Sparse linear algebra in column-oriented in-memory database
US9715481B2 (en) 2014-06-27 2017-07-25 Oracle International Corporation Approach for more efficient use of computing resources while calculating cross product or its approximation for logistic regression on big data sets
JP6547275B2 (ja) * 2014-10-29 2019-07-24 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及びプログラム
CN104636273B (zh) * 2015-02-28 2017-07-25 中国科学技术大学 一种带多级Cache的SIMD众核处理器上的稀疏矩阵存储方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249614B1 (en) * 1998-03-06 2001-06-19 Alaris, Inc. Video compression and decompression using dynamic quantization and/or encoding
US20060072834A1 (en) * 2003-04-17 2006-04-06 Lynch William C Permutation procrastination
US20120159489A1 (en) * 2010-12-20 2012-06-21 Oliver Schabenberger Systems and Methods for Generating a Cross-Product Matrix In a Single Pass Through Data Using Single Pass Levelization

Also Published As

Publication number Publication date
US20170228342A1 (en) 2017-08-10
JP2017138966A (ja) 2017-08-10
JP2020061167A (ja) 2020-04-16
KR20190003849A (ko) 2019-01-09
CN107045492B (zh) 2021-06-11
US20170228344A1 (en) 2017-08-10
KR102099221B1 (ko) 2020-04-09
KR20170093697A (ko) 2017-08-16
EP3203381A1 (en) 2017-08-09
JP7023917B2 (ja) 2022-02-22
TW201734845A (zh) 2017-10-01
JP6626433B2 (ja) 2019-12-25
BR102016031034A2 (pt) 2018-11-21
KR101936396B1 (ko) 2019-01-08
SG10201610912UA (en) 2017-09-28
CN107045492A (zh) 2017-08-15
US9880976B2 (en) 2018-01-30
CN113254871A (zh) 2021-08-13
US9898441B2 (en) 2018-02-20

Similar Documents

Publication Publication Date Title
TWI661315B (zh) 矩陣處理裝置
TWI718604B (zh) 用於將稀疏元素變換為一密集矩陣之系統及方法,以及非暫時性機器可讀儲存裝置