背景技術(shù):
本說明書大體上涉及使用電路來處理矩陣。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本說明書中所描述的主題的一個(gè)創(chuàng)新方面,矩陣處理器能夠被用來執(zhí)行稀疏轉(zhuǎn)稠密或者稠密轉(zhuǎn)稀疏矩陣變換。大體上,高效能計(jì)算系統(tǒng)可以使用線性代數(shù)例程來處理矩陣。在一些實(shí)例中,矩陣的大小可能過大而無法存入一個(gè)數(shù)據(jù)存儲(chǔ)中,并且該矩陣的不同部分可以被稀疏地存儲(chǔ)在分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的不同位置中。為了加載該矩陣,計(jì)算系統(tǒng)的中央處理單元可以指令多個(gè)矩陣處理器訪問該矩陣的不同部分。每個(gè)矩陣處理器可以聚集稀疏數(shù)據(jù),以執(zhí)行對(duì)該稀疏數(shù)據(jù)的并行計(jì)算并且生成稠密矩陣,該稠密矩陣能夠被串接在一起以供中央處理單元執(zhí)行進(jìn)一步的處理。
大體上,本說明書中所描述的主題的一個(gè)創(chuàng)新方面能夠被替選在用于將稀疏元素變換為稠密矩陣的系統(tǒng)中。所述系統(tǒng)包括請(qǐng)求識(shí)別單元,所述請(qǐng)求識(shí)別單元被配置為:通過節(jié)點(diǎn)網(wǎng)絡(luò)來接收對(duì)于存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)片(datashard)中的特定稀疏元素的請(qǐng)求;確定所述系統(tǒng)被指派來處置(handle)所述特定稀疏元素的子集;以及響應(yīng)于確定所述系統(tǒng)被指派來處置所述特定稀疏元素的所述子集,生成訪問所述特定稀疏元素的所述子集的指示。所述系統(tǒng)包括數(shù)據(jù)提取單元,其包括多個(gè)處理器,所述數(shù)據(jù)提取單元被配置為:從所述請(qǐng)求識(shí)別單元接收訪問特定稀疏元素的所述子集的所述指示;基于對(duì)所述特定稀疏元素的所述子集的識(shí)別,確定用于提取所述特定稀疏元素的所述子集的處理器指定;基于所述指定由所述多個(gè)處理器中的第一處理器來提取所述特定稀疏元素的所述子集中的第一稀疏元素;以及基于所述指定由所述多個(gè)處理器中的第二處理器來提取所述特定稀疏元素的所述子集中的第二稀疏元素。所述系統(tǒng)包括串接單元,所述串接單元被配置為:基于至少被應(yīng)用于所述第一稀疏元素和所述第二稀疏元素的變換來生成輸出稠密矩陣。
這些或其他實(shí)施方式均能夠可選地包括以下特征中的一個(gè)或多個(gè)。例如,所述系統(tǒng)能夠包括稀疏降低單元,所述稀疏降低單元被配置為接收包括來自所述第一處理器的所述第一稀疏元素的第一矩陣,所述第一矩陣具有第一維度;以及生成包括所述第一稀疏元素的第二矩陣,所述第二矩陣具有小于所述第一維度的第二維度。所述串接單元可以進(jìn)一步被配置為接收所述第二矩陣。為了生成所述輸出稠密矩陣,可以基于所述第二矩陣來生成所述輸出稠密矩陣。
所述串接單元可以被配置為在第一時(shí)間點(diǎn)接收所述第一稀疏元素;在不同的第二時(shí)間點(diǎn)接收所述第二稀疏元素;以及針對(duì)所述輸出稠密矩陣來確定所述第一稀疏元素和所述第二稀疏元素的順序。為了生成所述輸出稠密矩陣,可以基于所述第一稀疏元素和所述第二稀疏元素的所述順序來生成所述輸出稠密矩陣。
所述系統(tǒng)可以包括壓縮/解壓縮單元,所述壓縮/解壓縮單元被配置為壓縮所述輸出稠密矩陣以生成壓縮輸出稠密矩陣,以及向節(jié)點(diǎn)網(wǎng)絡(luò)提供所述壓縮輸出稠密矩陣。所述串接單元可以進(jìn)一步被配置為接收表示通過節(jié)點(diǎn)網(wǎng)絡(luò)所發(fā)送的稠密矩陣的第一稠密矩陣。為了生成所述輸出稠密矩陣,可以基于所述第一稠密矩陣、所述第一稀疏元素、以及所述第二稀疏元素來生成所述輸出稠密矩陣。所述壓縮/解壓縮單元可以被配置為對(duì)壓縮第一稠密矩陣解壓縮以生成所述第一稠密矩陣。
為了確定所述系統(tǒng)被指派來處置所述特定稀疏元素的所述子集,所述數(shù)據(jù)提取單元可以基于查找表來確定所述系統(tǒng)被指派來處置所述特定稀疏元素的子集。所述特定稀疏元素中的一個(gè)或多個(gè)稀疏元素可以是多維矩陣,并且所述輸出稠密矩陣可以是向量。
本說明書中所描述的主題能夠以特定實(shí)施例來實(shí)現(xiàn)以便達(dá)到以下優(yōu)點(diǎn)中的一個(gè)或多個(gè)。將稀疏轉(zhuǎn)稠密數(shù)據(jù)加載任務(wù)從中央處理單元轉(zhuǎn)移到專門的矩陣處理器提高了中央處理單元的計(jì)算帶寬并且降低了所述系統(tǒng)的處理成本。該矩陣處理器能夠被布置在存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器附近,并且能夠降低加載數(shù)據(jù)的時(shí)延。通過使用專門的矩陣處理器,能夠避免將專用于稠密線性代數(shù)的處理器用于提取稀疏數(shù)據(jù)。通過每控制器通道具有多個(gè)單元,一次所服務(wù)的多個(gè)并發(fā)事務(wù)可以被并行化,并且事務(wù)可以被立即處理而無需等待先前的事務(wù)完成。
以上和其他方面的其他實(shí)施方式包括對(duì)應(yīng)的系統(tǒng)、裝置、和計(jì)算機(jī)程序,其被配置來執(zhí)行所述方法的動(dòng)作,并且被編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上。一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)能夠依靠安裝在所述系統(tǒng)上的軟件、固件、硬件、或它們的組合來被如此配置,從而在操作中使得所述系統(tǒng)執(zhí)行所述動(dòng)作。一個(gè)或多個(gè)計(jì)算機(jī)程序能夠依靠具有指令來被如此配置,所述指令在由數(shù)據(jù)處理裝置執(zhí)行時(shí),使得所述裝置執(zhí)行所述動(dòng)作。
在附圖和下面的描述中闡述了本說明書中所描述的主題的一個(gè)或多個(gè)實(shí)施方式的細(xì)節(jié)。本主題的其他潛在特征、方面、和優(yōu)點(diǎn)根據(jù)說明書、附圖、和權(quán)利要求書將變得顯而易見。
附圖說明
圖1是示例計(jì)算系統(tǒng)的框圖。
圖2a至圖2d圖示了示例稀疏-稠密變換單元。
圖3a至圖3b圖示了示例稀疏元素訪問單元。
圖4是圖示了用于生成稠密矩陣的過程的示例的流程圖。
圖5是圖示了用于將稀疏元素變換為稠密矩陣的過程的示例的流程圖。
各附圖中相似的附圖標(biāo)記和名稱指示相似的元素。
具體實(shí)施方式
大體上,數(shù)據(jù)能夠以矩陣的形式來表示并且計(jì)算系統(tǒng)可以使用線性代數(shù)算法來對(duì)該數(shù)據(jù)進(jìn)行操縱。矩陣可以是一維向量或者是多維矩陣。矩陣可以由數(shù)據(jù)結(jié)構(gòu)來表示,諸如數(shù)據(jù)庫表或變量。然而,當(dāng)矩陣的大小過大時(shí),將整個(gè)矩陣存儲(chǔ)在一個(gè)數(shù)據(jù)存儲(chǔ)中也許是不可能的。稠密矩陣可以被變換為多個(gè)稀疏元素(element),其中每個(gè)稀疏元素可以被存儲(chǔ)在不同的數(shù)據(jù)存儲(chǔ)中。稠密矩陣的稀疏元素可以是其中僅該矩陣的小的子矩陣(例如,單值元素、行、列、或子矩陣)具有非零值的矩陣。當(dāng)計(jì)算系統(tǒng)需要訪問該稠密矩陣時(shí),中央處理單元(cpu)可以開始一個(gè)線程,該線程到達(dá)數(shù)據(jù)存儲(chǔ)中的每一個(gè)以提取存儲(chǔ)的稀疏元素并且應(yīng)用稀疏轉(zhuǎn)稠密變換以恢復(fù)該稠密矩陣。然而,提取全部的稠密元素所用的時(shí)間量可能很長,并且cpu的計(jì)算帶寬可能因此未被充分利用。在一些情況下,計(jì)算系統(tǒng)可能需要訪問若干稠密矩陣的稀疏元素以形成新的稠密矩陣,其中這些稠密矩陣可以不具有相等的維度。與到達(dá)數(shù)據(jù)存儲(chǔ)中的每一個(gè)以提取不同稠密矩陣的稀疏元素的線程相關(guān)聯(lián)的cpu空閑時(shí)間可能遇到不同的等待時(shí)間,并且可能進(jìn)一步以不期望的方式影響計(jì)算設(shè)備的效能。在一些情況下,計(jì)算系統(tǒng)可能需要訪問若干稠密矩陣的稀疏元素以形成新的稠密矩陣,其中這些稀疏元素可以不具有相等的維度。與到達(dá)數(shù)據(jù)存儲(chǔ)中的每一個(gè)以提取不同稠密矩陣的稀疏元素的線程相關(guān)聯(lián)的cpu空閑時(shí)間可能遇到不同的等待時(shí)間,并且可能進(jìn)一步以不期望的方式影響計(jì)算設(shè)備的效能。與cpu分離的硬件稀疏-稠密變換單元可以通過獨(dú)立于cpu操作來收集稀疏元素并且將該稀疏元素變換為稠密矩陣而提高處理器的計(jì)算帶寬。
圖1示出了用于變換來自一個(gè)或多個(gè)稠密矩陣的稀疏元素以生成稠密矩陣的示例計(jì)算系統(tǒng)100的框圖。計(jì)算系統(tǒng)100包括處理單元102、稀疏-稠密變換單元104、和數(shù)據(jù)片106a-106k,其中k是大于1的整數(shù)。大體上,處理單元102處理用于訪問目標(biāo)稠密矩陣的指令,并且將指令110發(fā)送至稀疏-稠密變換單元104以生成目標(biāo)稠密矩陣。稀疏-稠密變換單元104訪問來自數(shù)據(jù)片106a-106k中的一個(gè)或多個(gè)數(shù)據(jù)片的對(duì)應(yīng)的稀疏元素108a-108n,其中n是大于1的整數(shù)。稀疏-稠密變換單元104使用對(duì)應(yīng)的稀疏元素108a-108n來生成目標(biāo)稠密矩陣112,并且將目標(biāo)稠密矩陣112發(fā)送至處理單元102以供進(jìn)一步處理。例如,稀疏元素108a-108n可以是具有不同大小的二維矩陣,并且稀疏-稠密變換單元104可以通過將稀疏元素108a-108n中的每一個(gè)變換為向量來生成稠密矩陣112,并且將n個(gè)向量串接為單個(gè)向量。
在一些實(shí)施方式中,處理單元102可以處理用于更新目標(biāo)稠密矩陣的指令并且將已更新的稠密矩陣發(fā)送至稀疏-稠密變換單元104。稀疏-稠密變換單元104可以將已更新的稠密矩陣變換為對(duì)應(yīng)的稀疏元素并且相應(yīng)地對(duì)存儲(chǔ)在數(shù)據(jù)片106a-106k中的一個(gè)或多個(gè)稠密元素進(jìn)行更新。
處理單元102被配置為處理用于在計(jì)算系統(tǒng)100內(nèi)執(zhí)行的指令。處理單元102可以包括一個(gè)或多個(gè)處理器。在一些實(shí)施方式中,處理單元102被配置為處理由稀疏-稠密變換單元104生成的目標(biāo)稠密矩陣112。在一些其他的實(shí)施方式中,處理單元102可以被配置為請(qǐng)求稀疏-稠密變換單元104生成目標(biāo)稠密矩陣112,并且另一個(gè)處理單元可以被配置為處理該目標(biāo)稠密矩陣112。數(shù)據(jù)片106a-106k存儲(chǔ)包括稀疏元素108a-108n的數(shù)據(jù)。在一些實(shí)施方式中,數(shù)據(jù)片106a-106k可以是一個(gè)或多個(gè)易失性存儲(chǔ)器單元。在一些其他實(shí)施方式中,數(shù)據(jù)片106a-106k可以是一個(gè)或多個(gè)非易失性存儲(chǔ)器單元。數(shù)據(jù)片106a-106k也可以是另一形式的計(jì)算機(jī)可讀介質(zhì),諸如存儲(chǔ)區(qū)域網(wǎng)或其他配置中的設(shè)備。數(shù)據(jù)片106a-106k可以使用電連接、光連接、或無線連接來被耦合至稀疏-稠密變換單元104。在一些實(shí)施方式中,數(shù)據(jù)片106a-106k可以是稀疏-稠密變換單元104的一部分。
稀疏-稠密變換單元104被配置為基于稀疏元素來確定稠密矩陣。在一些實(shí)施方式中,稀疏-稠密變換單元104可以被配置為基于稠密矩陣來確定稀疏元素的位置。在一些實(shí)施方式中,稀疏-稠密變換單元104可以包括多個(gè)互連的稀疏元素訪問單元,以下參照?qǐng)D2a來更詳細(xì)描述。
圖2a示出了示例稀疏-稠密變換單元200。稀疏-稠密變換單元200可以對(duì)應(yīng)于稀疏-稠密變換單元104。稀疏-稠密變換單元200包括物理或邏輯上被布置為m行和n列的m乘n稀疏元素訪問單元x1,1至xm,n,其中m和n為等于或大于1的整數(shù)。在一些實(shí)施方式中,稀疏-稠密變換單元200可以包括被配置為處理數(shù)據(jù)的附加電路。大體上,稀疏-稠密變換單元200被配置為:接收對(duì)于稠密矩陣的請(qǐng)求,并且基于可由稠密元素訪問單元x1,1至xm,n訪問的對(duì)應(yīng)的稀疏元素來確定稠密矩陣。大體上,每個(gè)稀疏元素訪問單元被配置為訪問指定的稀疏元素集合,并且在下面參照?qǐng)D3a-3b來更詳細(xì)描述。在一些實(shí)施方式中,稀疏元素訪問單元可以是單指令多數(shù)據(jù)(simd)處理設(shè)備。
在一些實(shí)施方式中,稀疏元素訪問單元x1,1至xm,n可以在物理上或邏輯上被布置為二維網(wǎng)狀配置。例如,稀疏元素訪問單元x1,1直接耦合至稀疏元素訪問單元x1,2和x2,1。作為另一個(gè)示例,稀疏元素訪問單元x2,2直接耦合至稀疏元素訪問單元x2,1、x3,1、x2,3、和x1,2。兩個(gè)稀疏元素訪問單元之間的耦合可以是電連接、光連接、有線連接、或者任何其他合適的連接。
在一些其他實(shí)施方式中,稀疏元素訪問單元x1,1至xm,n可以在物理上或邏輯上被布置為二維環(huán)面(torus)配置。例如,稀疏元素訪問單元x1,1直接耦合至稀疏元素訪問單元x1,2、x2,1、x1,n和xm,1。作為另一個(gè)示例,稀疏元素訪問單元xm,n直接耦合至稀疏元素訪問單元xm,n-1、xm-1,n、xm,1、和x1,n。
在一些實(shí)施方式中,稀疏-稠密變換單元200可以被配置為根據(jù)一組預(yù)定條件來對(duì)從稠密矩陣變換的稀疏元素進(jìn)行劃分(partition)。稀疏元素訪問單元x1,1至xm,n中的每一行可以被劃分以訪問從特定稠密矩陣變換的稀疏元素。例如,稀疏-稠密變換單元200可以被配置為訪問與計(jì)算機(jī)模型的1000個(gè)不同的數(shù)據(jù)庫表相對(duì)應(yīng)的稠密矩陣變換的稀疏元素。數(shù)據(jù)庫表中的一個(gè)或多個(gè)可以具有不同的大小。稀疏元素訪問單元的第一行202可以被配置為訪問從數(shù)據(jù)庫表no.1至數(shù)據(jù)庫表no.100變換的稀疏元素,稀疏元素訪問單元的第二行204可以被配置為訪問從數(shù)據(jù)庫表no.101至數(shù)據(jù)庫表no.300變換的稀疏元素,并且稀疏元素訪問單元的第m行206可以被配置為訪問從數(shù)據(jù)庫表no.751至數(shù)據(jù)庫表no.1000變換的稀疏元素。在一些實(shí)施方式中,在處理器訪問稀疏元素之前,可以使用稀疏-稠密變換單元200通過硬件指令來對(duì)所述劃分進(jìn)行配置。
稀疏元素訪問單元x1,1至xm,n中的每一列可以被劃分以訪問從特定稠密矩陣變換的稀疏元素的子集。例如,與數(shù)據(jù)庫表no.1相對(duì)應(yīng)的稠密矩陣可以被變換為1000個(gè)稀疏元素,其中該1000個(gè)稀疏元素如上所述可由第一行202訪問。稀疏元素訪問單元x1,1可以被配置為訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.200,并且稀疏元素訪問單元x1,2可以被配置為訪問數(shù)據(jù)庫表no.1的稀疏元素no.201至no.500。作為另一個(gè)示例,與數(shù)據(jù)庫表no.2相對(duì)應(yīng)的稠密矩陣可以被變換為500個(gè)稀疏元素,其中該500個(gè)稀疏元素如上所述可由第一行202訪問。稀疏元素訪問單元x1,1可以被配置為訪問數(shù)據(jù)庫表no.2的稀疏元素no.1至no.50,并且稀疏元素訪問單元x1,2可以被配置為訪問數(shù)據(jù)庫表no.2的稀疏元素no.51至no.200。作為另一個(gè)示例,與數(shù)據(jù)庫表no.1000相對(duì)應(yīng)的稠密矩陣可以被變換為10000個(gè)稀疏元素,其中該10000個(gè)稀疏元素如上所述可由第m行206訪問。稀疏元素訪問單元xm,1可以被配置為訪問數(shù)據(jù)庫表no.1000的稀疏元素no.1至no.2000,并且稀疏元素訪問單元xm,n可以被配置為訪問數(shù)據(jù)庫表no.1000的稀疏元素no.9000至no.10000。
圖2b示出了稀疏-稠密變換單元200可以如何使用稀疏元素訪問單元的二維網(wǎng)狀網(wǎng)絡(luò)來請(qǐng)求稀疏元素的示例。作為示例,處理單元可以執(zhí)行指令以向稀疏-稠密變換單元200請(qǐng)求稠密一維向量,該稠密一維向量是使用數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50、數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200、以及數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060來生成的。在稀疏-稠密變換單元200從該處理單元接收到該請(qǐng)求后,稀疏-稠密變換單元200可以指令稀疏元素訪問單元x1,1向網(wǎng)狀網(wǎng)絡(luò)中的其他稀疏元素訪問單元廣播對(duì)于所述稀疏元素的請(qǐng)求。稀疏元素訪問單元x1,1可以向稀疏元素訪問單元x1,2廣播請(qǐng)求222并且向稀疏元素訪問單元x2,1廣播請(qǐng)求224。在接收到請(qǐng)求222后,稀疏元素訪問單元x1,2可以向稀疏元素訪問單元x1,3廣播請(qǐng)求226。在一些實(shí)施方式中,稀疏元素訪問單元可以被配置為基于路由方案來向另一稀疏元素訪問單元廣播請(qǐng)求。例如,稀疏元素訪問單元x2,1可以不被配置為向稀疏元素訪問單元x2,2廣播請(qǐng)求,因?yàn)橄∈柙卦L問單元x2,2被配置為從稀疏元素訪問單元x2,1接收廣播。路由方案可以是靜態(tài)的或者被動(dòng)態(tài)生成。例如,路由方案可以是查找表。在一些實(shí)施方式中,稀疏元素訪問單元可以被配置為基于請(qǐng)求224來向另一稀疏元素訪問單元廣播請(qǐng)求224。例如,請(qǐng)求224可以包括對(duì)所請(qǐng)求的稀疏元素(例如數(shù)據(jù)庫表no.1、稀疏元素no.1至no.50)的識(shí)別,并且稀疏元素訪問單元x1,2可以基于該識(shí)別來確定是否向稀疏元素訪問單元x2,2和/或稀疏元素訪問單元x1,3廣播請(qǐng)求224。廣播過程通過網(wǎng)狀網(wǎng)絡(luò)來傳播,其中稀疏元素訪問單元xm,n從稀疏元素訪問單元xm,n-1接收請(qǐng)求230。
圖2c示出了稀疏-稠密變換單元200可以如何使用稀疏元素訪問單元的二維網(wǎng)狀網(wǎng)絡(luò)來生成所請(qǐng)求的稠密矩陣的示例。在一些實(shí)施方式中,在稀疏元素訪問單元接收到所廣播的請(qǐng)求后,該稀疏元素訪問單元被配置為確定是否其被配置來訪問所請(qǐng)求的稀疏元素中的任何稀疏元素。例如,稀疏元素訪問單元x1,1可以確定其被配置來訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50,但其沒有被配置來訪問數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200或者數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060。響應(yīng)于確定其被配置來訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50,稀疏元素訪問單元x1,1可以從存儲(chǔ)這些稀疏元素的數(shù)據(jù)片中提取數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50,并且基于這些稀疏元素來生成稠密矩陣242。
作為另一個(gè)示例,稀疏元素訪問單元x2,1可以確定其沒有被配置來訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50、數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200、以及數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060中的任何稀疏元素。響應(yīng)于確定其沒有被配置來訪問所請(qǐng)求的稀疏元素中的任何稀疏元素,稀疏元素訪問單元x2,1可以不執(zhí)行進(jìn)一步的動(dòng)作。
作為另一個(gè)示例,稀疏元素訪問單元x1,2可以確定其被配置來訪問數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200,但是其沒有被配置來訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50或者數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060。響應(yīng)于確定其被配置來訪問數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200,稀疏元素訪問單元x1,2可以從存儲(chǔ)這些稀疏元素的數(shù)據(jù)片中提取這些稀疏元素,并且基于這些稀疏元素來生成稠密矩陣244。在一些實(shí)施方式中,在稀疏元素訪問單元生成稠密矩陣后,該稀疏元素訪問單元可以被配置為將該稠密矩陣轉(zhuǎn)發(fā)至所廣播的請(qǐng)求的發(fā)送者。此處,稀疏元素訪問單元x1,2將稠密矩陣244轉(zhuǎn)發(fā)至稀疏元素訪問單元x1,1。
作為另一個(gè)示例,稀疏元素訪問單元xm,n可以確定其被配置來訪問數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060,但是其沒有被配置來訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50或者數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200。響應(yīng)于確定其被配置來訪問數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060,稀疏元素訪問單元xm,n可以從存儲(chǔ)這些稀疏元素的數(shù)據(jù)片中提取這些稀疏元素,并且基于這些稀疏元素來生成稠密矩陣246。在一些實(shí)施方式中,在稀疏元素訪問單元生成稠密矩陣后,該稀疏元素訪問單元可以被配置為將該稠密矩陣轉(zhuǎn)發(fā)至所廣播的請(qǐng)求的發(fā)送者。此處,稀疏元素訪問單元xm,n將稠密矩陣246轉(zhuǎn)發(fā)至稀疏元素訪問單元xm,n-1。在下一循環(huán)中,稀疏元素訪問單元xm,n-1被配置為將稠密矩陣246轉(zhuǎn)發(fā)至稀疏元素訪問單元xm,n-。該過程繼續(xù),直到稀疏元素訪問單元x2,1已將稠密矩陣246轉(zhuǎn)發(fā)至稀疏元素訪問單元x1,1為止。
在一些實(shí)施方式中,稀疏-稠密變換單元200被配置為對(duì)由稀疏元素訪問單元生成的稠密矩陣進(jìn)行變換并且針對(duì)處理器單元生成稠密矩陣。此處,稀疏-稠密變換單元200針對(duì)處理器單元來將稠密矩陣242、244、和246變換為稠密矩陣。例如,稠密矩陣242可以具有100乘10的維度,稠密矩陣244可以具有20乘100的維度、并且稠密矩陣246可以具有3乘3的維度。稀疏-稠密變換單元200可以將稠密矩陣242、244、和246變換為具有1乘3009維度的向量。有利地,根據(jù)稠密矩陣(例如數(shù)據(jù)庫表)的對(duì)行的劃分允許稀疏-稠密變換單元200在所生成的稠密矩陣已經(jīng)從列n傳播至列1后獲得全部所請(qǐng)求的稀疏元素。對(duì)列的劃分減少了由僅使用稀疏元素訪問單元中的一個(gè)來訪問過多稀疏元素所導(dǎo)致的帶寬瓶頸。
圖2d示出了稀疏-稠密變換單元200可以如何使用稀疏元素訪問單元的二維網(wǎng)狀網(wǎng)絡(luò)基于稠密矩陣來更新稀疏元素的示例。作為示例,處理單元可以執(zhí)行請(qǐng)求稀疏-稠密變換單元200稠密一維向量來更新所存儲(chǔ)的稀疏元素,該稠密一維向量是使用數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50和數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060來生成的。在稀疏-稠密變換單元200從處理單元接收到該請(qǐng)求后,稀疏-稠密變換單元200可以指令稀疏元素訪問單元x1,1向網(wǎng)狀網(wǎng)絡(luò)中的其他稀疏元素訪問單元廣播稀疏元素更新請(qǐng)求,其中該稀疏元素更新請(qǐng)求可以包括由該處理單元提供的稠密一維向量。在一些實(shí)施方式中,稀疏元素訪問單元x1,1可以確定是否其被指派來訪問在該稠密一維向量中所包括的稀疏元素。響應(yīng)于確定其被指派來訪問該稠密一維向量中所包括的稀疏元素,稀疏元素訪問單元x1,1可以更新數(shù)據(jù)片中所存儲(chǔ)的稀疏元素。此處,稀疏元素訪問單元x1,1確定其被指派來訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50,并且稀疏元素訪問單元x1,1執(zhí)行指令以更新該數(shù)據(jù)片中的這些稀疏元素。
稀疏元素訪問單元x1,1可以向稀疏元素訪問單元x1,2廣播稀疏元素更新請(qǐng)求252并且向稀疏元素訪問單元x2,1廣播稀疏元素更新請(qǐng)求254。在接收到稀疏元素更新請(qǐng)求252后,稀疏元素訪問單元x1,2可以確定其沒有被指派來訪問在稠密一維向量中所包括的稀疏元素。稀疏元素訪問單元x1,2向稀疏元素訪問單元x1,3廣播請(qǐng)求256。廣播過程通過網(wǎng)狀網(wǎng)絡(luò)來傳播,其中稀疏元素訪問單元xm,n從稀疏元素訪問單元xm,n-1接收請(qǐng)求260。此處,稀疏元素訪問單元xm,n確定其被指派來訪問數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060,并且稀疏元素訪問單元xm,n執(zhí)行指令以更新數(shù)據(jù)片中的這些稀疏元素。
圖3a示出了示例稀疏元素訪問單元300。稀疏元素訪問單元300可以是稀疏元素訪問單元x1,1至xm,n中的任何一個(gè)。大體上,稀疏元素訪問單元300被配置為從節(jié)點(diǎn)網(wǎng)絡(luò)320接收請(qǐng)求342以提取在一個(gè)或多個(gè)數(shù)據(jù)片中存儲(chǔ)的稀疏元素并且將所提取的稀疏元素變換為稠密矩陣。在一些實(shí)施方式中,處理單元316向節(jié)點(diǎn)網(wǎng)絡(luò)320中的稀疏元素訪問單元發(fā)送對(duì)于使用稀疏元素生成的稠密矩陣的請(qǐng)求。稀疏元素訪問單元可以向稀疏元素訪問單元300廣播請(qǐng)求342。對(duì)所廣播的請(qǐng)求342的路由可以類似于圖2b中的描述。稀疏元素訪問單元300包括請(qǐng)求識(shí)別單元302、數(shù)據(jù)提取單元304、稀疏降低單元306、串接單元308、壓縮/解壓縮單元310、以及分裂單元312。節(jié)點(diǎn)網(wǎng)絡(luò)302可以是二維網(wǎng)狀網(wǎng)絡(luò)。處理單元316可以類似于處理單元102。
大體上,請(qǐng)求識(shí)別單元302被配置為接收請(qǐng)求342以提取在一個(gè)或多個(gè)數(shù)據(jù)片330中存儲(chǔ)的稀疏元素,并且確定稀疏元素訪問單元300是否被指派為訪問由請(qǐng)求342指示的稀疏元素。在一些實(shí)施方式中,請(qǐng)求識(shí)別單元302可以通過使用查找表來確定稀疏元素訪問單元300是否被指派為訪問由請(qǐng)求342指示的稀疏元素。例如,如果對(duì)特定的所請(qǐng)求稀疏元素(例如數(shù)據(jù)庫表no.1的no.1)的識(shí)別被包括在查找表中,則請(qǐng)求識(shí)別單元302可以向數(shù)據(jù)提取單元304發(fā)送信號(hào)344以提取該特定的所請(qǐng)求稀疏元素。如果對(duì)特定的所請(qǐng)求稀疏元素(例如數(shù)據(jù)庫表no.1的no.1)的識(shí)別沒有被包括在查找表中,則請(qǐng)求識(shí)別單元302可以丟棄所接收的請(qǐng)求。在一些實(shí)施方式中,請(qǐng)求識(shí)別單元302可以被配置為向節(jié)點(diǎn)網(wǎng)絡(luò)320上的另一稀疏元素訪問單元廣播所接收的請(qǐng)求。
數(shù)據(jù)提取單元304被配置為響應(yīng)于接收到信號(hào)344而從數(shù)據(jù)片330中提取一個(gè)或多個(gè)所請(qǐng)求的稀疏元素。在一些實(shí)施方式中,數(shù)據(jù)提取單元304包括一個(gè)或多個(gè)處理器322a-322k,其中k為整數(shù)。處理器322a-322k可以是向量處理單元(vpu)、陣列處理單元、或者任何合適的處理單元。在一些實(shí)施方式中,處理器322a-322k被布置在數(shù)據(jù)片330附近以降低處理器322a-322k與數(shù)據(jù)片330之間的時(shí)延?;谙∈柙卦L問單元300被指派來提取的所請(qǐng)求的稀疏元素的數(shù)目,數(shù)據(jù)提取單元304可以被配置為生成一個(gè)或多個(gè)請(qǐng)求以在處理器322a-322k當(dāng)中分布。在一些實(shí)施方式中,處理器322a-322k中的每一個(gè)可以基于對(duì)稀疏元素的識(shí)別來被指派至特定稀疏元素,并且數(shù)據(jù)提取單元304可以被配置為基于對(duì)稀疏元素的識(shí)別來生成對(duì)于處理器322a-322k的一個(gè)或多個(gè)請(qǐng)求。在一些實(shí)施方式中,數(shù)據(jù)提取單元304可以通過使用查找表來確定處理器指派。在一些實(shí)施方式中,數(shù)據(jù)提取單元304可以針對(duì)處理器322a-322k而生成多個(gè)批次,其中每個(gè)批次是對(duì)于所請(qǐng)求的稀疏元素的子集的一個(gè)請(qǐng)求。處理器322a-322k被配置為從數(shù)據(jù)片330獨(dú)立地提取所指派的稀疏元素,并且將所提取的稀疏元素346轉(zhuǎn)發(fā)至稀疏降低單元306。
稀疏降低單元306被配置來降低所提取的稀疏元素346的維度。例如,處理器322a-322k中的每一個(gè)可以生成具有100乘1的維度的稀疏元素。稀疏降低單元306可以接收具有100乘k的維度的所提取的稀疏元素346,并且通過利用邏輯操作、數(shù)學(xué)操作、或者這兩者的組合來將所提取的稀疏元素346的維度降低為100乘1來生成稀疏降低的元素348。稀疏降低單元306被配置為向串接單元308輸出稀疏降低的元素348。
串接單元308被配置為重新布置并串接稀疏降低的元素348以生成所串接元素350。例如,稀疏元素訪問單元x1,1可以被配置為訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.200。處理器322a可以比被配置來返回所提取的稀疏元素no.5的處理器322b更快地向稀疏降低單元306返回所提取的稀疏元素no.10。串接單元308被配置為對(duì)較晚接收到的稀疏元素no.5重新布置以使其被排序在較早接收到的稀疏元素no.10之前,并且將稀疏元素no.1至no.200串接為串接元素350。
壓縮/解壓縮單元310被配置為壓縮串接元素350以針對(duì)節(jié)點(diǎn)網(wǎng)絡(luò)320生成稠密矩陣352。例如,壓縮/解壓縮單元310可以被配置為對(duì)所串接元素350中的零值進(jìn)行壓縮以改善節(jié)點(diǎn)網(wǎng)絡(luò)320的帶寬。在一些實(shí)施方式中,壓縮/解壓縮單元310可以對(duì)所接收的稠密矩陣解壓縮。例如,稀疏元素訪問單元300可以經(jīng)由節(jié)點(diǎn)網(wǎng)絡(luò)320來從鄰近稀疏元素訪問單元接收稠密矩陣。稀疏元素訪問單元300可以對(duì)所接收的稠密矩陣解壓縮,并且可以將已解壓縮的稠密矩陣與串接元素350串接以形成更新的串接元素,其能夠被壓縮并且之后被輸出至節(jié)點(diǎn)網(wǎng)絡(luò)320。
圖3b示出了稀疏元素訪問單元300可以如何基于從節(jié)點(diǎn)網(wǎng)絡(luò)320接收的稠密矩陣來更新稀疏元素的示例。作為示例,處理單元可以執(zhí)行請(qǐng)求稀疏-稠密變換單元使用稠密一維向量來而更新所存儲(chǔ)的稀疏元素的指令,該稠密一維向量是使用數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50和數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060來生成的。在稀疏-稠密變換單元從處理單元接收到該請(qǐng)求后,該稀疏-稠密變換單元可以發(fā)送請(qǐng)求362以指令稀疏元素訪問單元300確定是否其被指派來訪問在稠密一維向量中所包括的稀疏元素。請(qǐng)求識(shí)別單元302被配置為確定是否稀疏元素訪問單元300被指派來訪問在稠密一維向量中所包括的稀疏元素。響應(yīng)于確定稀疏元素訪問單元300被指派來訪問在稠密一維向量中所包括的稀疏元素,請(qǐng)求識(shí)別單元302可以向分裂單元312發(fā)送指示364以更新在數(shù)據(jù)片中存儲(chǔ)的稀疏元素。
分裂單元312被配置來將所接收的稠密矩陣變換為稀疏元素,該稀疏元素能夠由數(shù)據(jù)提取單元304在數(shù)據(jù)片330中更新。例如,分離單元312可以被配置為將稠密一維向量變換為多個(gè)稀疏元素,并且指令數(shù)據(jù)提取單元304更新稀疏元素訪問單元300被指派來提取的數(shù)據(jù)片330中存儲(chǔ)的稀疏元素。
圖4是圖示了用于生成稠密矩陣的過程400的示例的流程圖。過程400可以由諸如稀疏-稠密變換單元104或稀疏-稠密變換單元200的系統(tǒng)來執(zhí)行。系統(tǒng)可以包括第一稀疏元素訪問單元群組和第二稀疏元素訪問單元群組。例如,參照?qǐng)D2a,稀疏-稠密變換單元200可以包括在物理上或邏輯上被布置為m行和n列的m乘n稀疏元素訪問單元x1,1至xm,n。稀疏元素訪問單元x1,1至xm,n中的每一行可以被劃分以訪問從特定稠密矩陣變換的稀疏元素。在一些實(shí)施方式中,第一稀疏元素訪問單元群組可以包括第一稀疏元素訪問單元和第二稀疏元素訪問單元。例如,稀疏-稠密變換單元200的第一行可以包括稀疏元素訪問單元x1,1和x1,2。在一些實(shí)施方式中,第一稀疏元素訪問單元群組和第二稀疏元素訪問單元群組可以以二維網(wǎng)狀配置來布置。在一些實(shí)施方式中,第一稀疏元素訪問單元群組和第二稀疏元素訪問單元群組可以以二維環(huán)面配置來布置。
系統(tǒng)接收對(duì)于基于稀疏元素的輸出矩陣的請(qǐng)求,所述稀疏元素包括與第一稠密矩陣相關(guān)聯(lián)的稀疏元素和與第二稠密矩陣相關(guān)聯(lián)的稀疏元素。例如,參照?qǐng)D2b,處理單元可以執(zhí)行向稀疏-稠密變換單元200請(qǐng)求稠密一維向量的指令,該稠密一維向量是使用數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50、數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200、以及數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060來生成的。
在一些實(shí)施方式中,第一稀疏元素訪問單元可以接收對(duì)于多個(gè)稀疏元素的請(qǐng)求,所述多個(gè)稀疏元素包括與第一稠密矩陣相關(guān)聯(lián)的稀疏元素和與第二稠密矩陣相關(guān)聯(lián)的稀疏元素。第一稀疏元素訪問單元可以將該請(qǐng)求傳送至第二稀疏元素訪問單元。例如,參照?qǐng)D2b,在稀疏-稠密變換單元200從處理單元接收到該請(qǐng)求后,稀疏-稠密變換單元200可以指令稀疏元素訪問單元x1,1向網(wǎng)狀網(wǎng)絡(luò)中的其他稀疏元素訪問單元廣播對(duì)于所述稀疏元素的請(qǐng)求。稀疏元素訪問單元x1,1可以向稀疏元素訪問單元x1,2廣播請(qǐng)求222。
系統(tǒng)獲得第一稀疏元素訪問單元群組所提取的、與第一稠密矩陣相關(guān)聯(lián)的稀疏元素(402)。在一些實(shí)施方式中,第一稀疏元素訪問單元可以確定:所述多個(gè)稀疏元素中的特定稀疏元素的身份匹配與第一稠密矩陣相關(guān)聯(lián)的稀疏元素的第一子集中的一個(gè)稀疏元素的身份。例如,參照?qǐng)D2c,稀疏元素訪問單元x1,1可以被配置為訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.200。稀疏元素訪問單元x1,1可以確定其被配置為訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50,但是其沒有被配置來訪問數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200或者數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060。響應(yīng)于確定所述多個(gè)稀疏元素中的特定稀疏元素的身份匹配與第一稠密矩陣相關(guān)聯(lián)的稀疏元素的第一子集中的一個(gè)稀疏元素的身份,第一稀疏元素訪問單元可以提取與包括該特定稀疏元素的第一稠密矩陣相關(guān)聯(lián)的稀疏元素的第一子集。例如,響應(yīng)于確定其被配置來訪問數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50,稀疏元素訪問單元x1,1可以從存儲(chǔ)這些稀疏元素的數(shù)據(jù)片中提取數(shù)據(jù)庫表no.1的稀疏元素no.1至no.50。
第二稀疏元素訪問單元可以提取與第一稠密矩陣相關(guān)聯(lián)的稀疏元素的不同的第二子集。例如,參照?qǐng)D2c,稀疏元素訪問單元x1,2可以被配置來訪問數(shù)據(jù)庫表no.2的稀疏元素no.51至no.200。響應(yīng)于確定其被配置來訪問數(shù)據(jù)庫表no.2的稀疏元素no.100至no.200,稀疏元素訪問單元x1,2可以從存儲(chǔ)這些稀疏元素的數(shù)據(jù)片中提取這些稀疏元素。
系統(tǒng)獲得由第二稀疏元素訪問單元群組提取的、與第二稠密矩陣相關(guān)聯(lián)的稀疏元素(404)。例如,參照?qǐng)D2c,第二稀疏元素訪問單元群組可以是m乘n稀疏元素訪問單元的第m行,其中稀疏元素訪問單元xm,n可以被配置為訪問數(shù)據(jù)庫表no.1000的稀疏元素no.9000至no.10000。響應(yīng)于確定其被配置來訪問數(shù)據(jù)庫表no.1000的稀疏元素no.9050至no.9060,稀疏元素訪問單元xm,n可以從存儲(chǔ)這些稀疏元素的數(shù)據(jù)片中提取這些稀疏元素,并且基于這些稀疏元素來生成稠密矩陣246。
在一些實(shí)施方式中,第一稀疏元素訪問單元可以從第一數(shù)據(jù)片提取與第一稠密矩陣相關(guān)聯(lián)的稀疏元素的第一子集,并且第二稀疏元素訪問單元可以從不同的第二數(shù)據(jù)片提取與第一稠密矩陣相關(guān)聯(lián)的稀疏元素的不同的第二子集。例如,參照?qǐng)D1,第一稀疏元素訪問單元可以從數(shù)據(jù)片106a提取與第一稠密矩陣相關(guān)聯(lián)的稀疏元素的第一子集,并且第二稀疏元素訪問單元可以從數(shù)據(jù)片106b提取與第一稠密矩陣相關(guān)聯(lián)的稀疏元素的不同的第二子集。
系統(tǒng)對(duì)與第一稠密矩陣相關(guān)聯(lián)的稀疏元素和與第二稠密矩陣相關(guān)聯(lián)的稀疏元素進(jìn)行變換以生成包括與第一稠密矩陣相關(guān)聯(lián)的稀疏元素和與第二稠密矩陣相關(guān)聯(lián)的稀疏元素的輸出稠密矩陣(406)。例如,參照?qǐng)D2c,稀疏-稠密變換單元200針對(duì)處理器單元來將稠密矩陣242、244、和246變換為一個(gè)稠密矩陣。
在一些實(shí)施方式中,與第一稠密矩陣相關(guān)聯(lián)的稀疏元素和與第二稠密矩陣相關(guān)聯(lián)的稀疏元素可以是多維矩陣,并且輸出稠密矩陣可以是向量。例如,稠密矩陣242可以具有100乘10的維度,稠密矩陣244可以具有20乘100的維度、并且稠密矩陣246可以具有3乘3的維度。稀疏-稠密變換單元200可以將稠密矩陣242、244、和246變換為具有1乘3009維度的向量。
圖5是圖示了用于生成稠密矩陣的過程500的示例的流程圖。過程500可以由諸如稀疏-稠密變換單元104或稀疏元素訪問單元300的系統(tǒng)來執(zhí)行。
系統(tǒng)接收訪問特定稀疏元素的子集的指示(502)。例如,參照?qǐng)D3a,數(shù)據(jù)提取單元304可以被配置為接收信號(hào)344以用于從數(shù)據(jù)片330提取一個(gè)或多個(gè)所請(qǐng)求的稀疏元素。在一些實(shí)施方式中,對(duì)于存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)片中的特定稀疏元素的請(qǐng)求可以通過節(jié)點(diǎn)網(wǎng)絡(luò)來接收。例如,參照?qǐng)D3a,請(qǐng)求識(shí)別單元302可以被配置為通過節(jié)點(diǎn)網(wǎng)絡(luò)320來接收請(qǐng)求342以提取在數(shù)據(jù)片330中存儲(chǔ)的稀疏元素。系統(tǒng)可以確定該數(shù)據(jù)提取單元被指派來處置(handle)該特定稀疏元素的子集。例如,請(qǐng)求識(shí)別單元302可以被配置為確定稀疏元素訪問單元300是否被指派為訪問由請(qǐng)求342指示的稀疏元素。響應(yīng)于確定該數(shù)據(jù)提取單元被指派來處置該特定稀疏元素的子集,該指示可以被生成以用于訪問該特定稀疏元素的子集。例如,如果對(duì)特定的所請(qǐng)求稀疏元素(例如數(shù)據(jù)庫表no.1的no.1)的識(shí)別被包括在查找表中,則請(qǐng)求識(shí)別單元302可以向數(shù)據(jù)提取單元304發(fā)送信號(hào)344以提取該特定的所請(qǐng)求稀疏元素。
系統(tǒng)基于對(duì)該特定稀疏元素的子集的識(shí)別來確定用于提取該特定稀疏元素的子集的處理器指定(504)。例如,參照?qǐng)D3a,數(shù)據(jù)提取單元304包括一個(gè)或多個(gè)處理器322a-322k。處理器322a-322k中的每一個(gè)可以基于對(duì)稀疏元素的識(shí)別來被指派至特定稀疏元素,并且數(shù)據(jù)提取單元304可以被配置為基于對(duì)稀疏元素的識(shí)別來生成對(duì)于處理器322a-322k的一個(gè)或多個(gè)請(qǐng)求。在一些實(shí)施方式中,系統(tǒng)可以確定該系統(tǒng)被指派來處置特定稀疏元素的子集包括:基于查找表來確定該系統(tǒng)被指派來處置該特定稀疏元素的子集。例如,數(shù)據(jù)提取單元304可以通過使用查找表來確定處理器指派。
系統(tǒng)基于該指定由多個(gè)處理器中的第一處理器來提取該特定稀疏元素的子集中的第一稀疏元素(506)。例如,參照?qǐng)D3a,數(shù)據(jù)提取單元304可以指令處理器322a提取在信號(hào)344中包括的稀疏元素。
系統(tǒng)基于該指定由多個(gè)處理器中的第二處理器來提取該特定稀疏元素的子集中的第二稀疏元素(508)。例如,參照?qǐng)D3a,數(shù)據(jù)提取單元304可以指令處理器322b提取在信號(hào)344中包括的不同的稀疏元素。
在一些實(shí)施方式中,可以接收包括來自第一處理器的第一稀疏元素的第一矩陣,其中該第一矩陣可以具有第一維度。系統(tǒng)可以生成包括該第一稀疏元素的第二矩陣,該第二矩陣可以具有小于該第一維度的第二維度。例如,稀疏降低矩陣306可以被配置為降低所提取的稀疏元素346的維度。處理器322a-322k中的每一個(gè)可以生成具有100乘1的維度的稀疏元素。稀疏降低單元306可以接收具有100乘k的維度的所提取的稀疏元素346,并且通過利用邏輯操作、數(shù)學(xué)操作、或者這兩者的組合來將所提取的稀疏元素346的維度降低為100乘1來生成稀疏降低的元素348。系統(tǒng)可以生成輸出稠密矩陣,該輸出稠密矩陣可以基于該第二矩陣來被生成。例如,串接單元308可以被配置為重新布置并串接稀疏降低的元素348以生成串接元素350。
在一些實(shí)施方式中,可以在第一時(shí)間點(diǎn)接收第一稀疏元素,并且可以在不同的第二時(shí)間點(diǎn)接收第二稀疏元素。系統(tǒng)可以針對(duì)該輸出稠密矩陣來確定第一稀疏元素和第二稀疏元素的順序。例如,參照?qǐng)D3a,處理器322a可以比被配置來返回所提取的稀疏元素no.5的處理器322b更快地向稀疏降低單元306返回所提取的稀疏元素no.10。串接單元308被配置為對(duì)較晚接收到的稀疏元素no.5重新布置以使其被排序在較早接收到的稀疏元素no.10之前,并且將稀疏元素no.1至no.200串接為串接元素350。
系統(tǒng)基于至少被應(yīng)用于第一稀疏元素和第二稀疏元素的變換來生成輸出稠密矩陣(510)。在一些實(shí)施方式中,系統(tǒng)可以壓縮該輸出稠密矩陣以生成壓縮輸出稠密矩陣。系統(tǒng)可以向節(jié)點(diǎn)網(wǎng)絡(luò)提供該壓縮輸出稠密矩陣。例如,壓縮/解壓縮單元310可以被配置來壓縮串接元素350以生成針對(duì)網(wǎng)絡(luò)320的稠密矩陣352。
在一些實(shí)施方式中,系統(tǒng)可以接收表示通過節(jié)點(diǎn)網(wǎng)絡(luò)所發(fā)送的稠密矩陣的第一稠密矩陣,并且基于該第一稠密矩陣、第一稀疏元素、和第二稀疏元素來生成輸出稠密矩陣。例如,稀疏元素訪問單元300可以經(jīng)由節(jié)點(diǎn)網(wǎng)絡(luò)320來從鄰近的稀疏元素訪問單元接收稠密矩陣。稀疏元素訪問單元300可以對(duì)所接收的稠密矩陣解壓縮,并且可以將已解壓縮的稠密矩陣與串接元素350串接以形成更新的所串接元素,其能夠被壓縮并且之后被輸出至節(jié)點(diǎn)網(wǎng)絡(luò)320。
在一些實(shí)施方式中,特定稀疏元素中的一個(gè)或多個(gè)稀疏元素是多維矩陣,并且輸出稠密矩陣是向量。本說明書中描述的主題和功能性操作的實(shí)施例能夠以數(shù)字電子電路、以有形體現(xiàn)的計(jì)算機(jī)軟件或固件、以硬件——包括本說明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等同物、或者以它們中的一個(gè)或多個(gè)的組合來實(shí)現(xiàn)。本說明書中描述的主題能夠被實(shí)現(xiàn)為一個(gè)或多個(gè)計(jì)算機(jī)程序,即計(jì)算機(jī)程序指令的一個(gè)或多個(gè)模塊,其被編碼在有形非暫時(shí)性程序載體上,以用于由數(shù)據(jù)處理裝置執(zhí)行或控制數(shù)據(jù)處理裝置的操作。替選地或另外地,程序指令能夠被編碼在人工生成的傳播信號(hào)上,該信號(hào)例如機(jī)器生成的電、光、或電磁信號(hào),其被生成以對(duì)信息進(jìn)行編碼以用于傳輸?shù)胶线m的接收器裝置以供數(shù)據(jù)處理裝置執(zhí)行。計(jì)算機(jī)存儲(chǔ)介質(zhì)能夠是機(jī)器可讀存儲(chǔ)設(shè)備、機(jī)器可讀存儲(chǔ)基底、隨機(jī)或串行存取存儲(chǔ)器設(shè)備、或它們中的一個(gè)或多個(gè)的組合。
術(shù)語“數(shù)據(jù)處理裝置”涵蓋用于處理數(shù)據(jù)的各種裝置、設(shè)備、和機(jī)器,包括例如可編程處理器、計(jì)算機(jī)、或者多個(gè)處理器或計(jì)算機(jī)。該裝置能夠包括專用邏輯電路,例如fpga(現(xiàn)場(chǎng)可編程門陣列)或asic(專用集成電路)。除了硬件之外,該裝置還能夠包括創(chuàng)建用于所討論的計(jì)算機(jī)程序的執(zhí)行環(huán)境的代碼,例如構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、或它們中的一個(gè)或多個(gè)的組合的代碼。
計(jì)算機(jī)程序(也稱為程序、軟件、軟件應(yīng)用、模塊、軟件模塊、腳本、或代碼)能夠以任何形式的編程語言編寫,包括編譯或解釋語言、聲明性或過程性語言,并且其能夠以任何形式部署,包括作為獨(dú)立程序或作為適于在計(jì)算環(huán)境中使用的模塊、組件、子例程、或其它單元。計(jì)算機(jī)程序可以但不必對(duì)應(yīng)于文件系統(tǒng)中的文件。程序能夠被存儲(chǔ)在保持其他程序或數(shù)據(jù)——例如存儲(chǔ)在標(biāo)記語言文檔中的一個(gè)或多個(gè)腳本——的文件的一部分中、專用于所討論的程序的單個(gè)文件中、或者多個(gè)協(xié)作文件——例如存儲(chǔ)一個(gè)或多個(gè)模塊、子程序、或代碼部分的文件中。計(jì)算機(jī)程序能夠被部署為在一個(gè)計(jì)算機(jī)上或在位于一個(gè)地點(diǎn)或跨多個(gè)地點(diǎn)分布并通過通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上執(zhí)行。
本說明書中所描述的過程和邏輯流程能夠由一個(gè)或多個(gè)可編程計(jì)算機(jī)來執(zhí)行,所述可編程計(jì)算機(jī)執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序以通過在輸入數(shù)據(jù)上操作并且生成輸出來執(zhí)行功能。該過程和邏輯流程也能夠由專用邏輯電路執(zhí)行并且裝置也能夠被實(shí)現(xiàn)為專用邏輯電路,所述專用邏輯電路例如fpga(現(xiàn)場(chǎng)可編程門陣列)、asic(專用集成電路)、或者gpgpu(通用圖形處理單元)。
適合于執(zhí)行計(jì)算機(jī)程序的處理器包括例如通用微處理器或?qū)S梦⑻幚砥骰蛘哌@兩者,或者任何其他種類的中央處理單元。通常,中央處理單元將從只讀存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器或這兩者接收指令和數(shù)據(jù)。計(jì)算機(jī)的必需元件是用于實(shí)施或執(zhí)行指令的中央處理單元和用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備。通常,計(jì)算機(jī)還將包括用于存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備——例如磁盤、磁光盤、或光盤,或者可操作地耦合以從其接收數(shù)據(jù)或向其傳輸數(shù)據(jù)、或者這兩者。然而,計(jì)算機(jī)不需要具有這樣的設(shè)備。此外,計(jì)算機(jī)能夠被嵌入另一設(shè)備中,例如移動(dòng)電話、個(gè)人數(shù)字助理(pda)、移動(dòng)音頻或視頻播放器、游戲控制臺(tái)、全球定位系統(tǒng)(gps)接收器、或便攜式存儲(chǔ)設(shè)備——例如通用串行總線(usb)閃存驅(qū)動(dòng)器,僅舉數(shù)例。
適合于存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)包括所有形式的非易失性存儲(chǔ)器、介質(zhì)和存儲(chǔ)器設(shè)備,包括例如半導(dǎo)體存儲(chǔ)器設(shè)備,例如eprom、eeprom、和閃速存儲(chǔ)器設(shè)備;磁盤,例如內(nèi)部硬盤或可移動(dòng)盤;磁光盤;以及cdrom和dvd-rom盤。處理器和存儲(chǔ)器能夠由專用邏輯電路補(bǔ)充或并入專用邏輯電路中。
為了提供與用戶的交互,本說明書中描述的主題的實(shí)施方式能夠被實(shí)現(xiàn)在具有以下的計(jì)算機(jī)上:用于向用戶顯示信息的顯示設(shè)備——例如crt(陰極射線管)或lcd(液晶顯示器)監(jiān)視器;以及鍵盤和指示設(shè)備——例如鼠標(biāo)或軌跡球,用戶通過其能夠向計(jì)算機(jī)提供輸入。其他種類的設(shè)備也能夠被用于提供與用戶的交互;提供給用戶的反饋能夠是任何形式的感官反饋,例如視覺反饋、聽覺反饋、或觸覺反饋;并且能夠接收來自用戶的處于任何形式的輸入,包括聲音、語音、或觸覺輸入。此外,計(jì)算機(jī)能夠通過向用戶使用的設(shè)備發(fā)送文檔以及從其接收文檔來與該用戶交互,例如通過響應(yīng)于從用戶的客戶端設(shè)備上的web瀏覽器接收的請(qǐng)求而向該web瀏覽器發(fā)送網(wǎng)頁。
在本說明書中描述的主題的實(shí)施例能夠被實(shí)現(xiàn)在計(jì)算系統(tǒng)中,該計(jì)算系統(tǒng)包括例如作為數(shù)據(jù)服務(wù)器的后端組件,或者包括例如應(yīng)用服務(wù)器的中間件組件,或者包括例如具有圖形用戶界面或web瀏覽器的客戶端計(jì)算機(jī)的前端組件——用戶通過該web瀏覽器能夠與本說明書中所描述的主題的實(shí)施方式交互,或者包括一個(gè)或多個(gè)這樣的后端組件、中間件組件、或前端組件的任何組合。系統(tǒng)的組件能夠通過例如通信網(wǎng)絡(luò)的任何形式或介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信來互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“l(fā)an”)和廣域網(wǎng)(“wan”),例如互聯(lián)網(wǎng)。
計(jì)算系統(tǒng)能夠包括客戶端和服務(wù)器。客戶端和服務(wù)器通常彼此遠(yuǎn)離并且一般通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系依靠在相應(yīng)計(jì)算機(jī)上運(yùn)行并且彼此具有客戶端-服務(wù)器關(guān)系的計(jì)算機(jī)程序而產(chǎn)生。
雖然本說明書包含許多具體實(shí)施方式細(xì)節(jié),但是這些不應(yīng)被解釋為對(duì)任何發(fā)明或可以要求保護(hù)的內(nèi)容的范圍的限制,而是應(yīng)當(dāng)被解釋為對(duì)特定發(fā)明的特定實(shí)施例特有的特征的描述。本說明書中在單獨(dú)實(shí)施例的場(chǎng)境下所描述的某些特征也能夠在單個(gè)實(shí)施例中組合實(shí)現(xiàn)。相反,在單個(gè)實(shí)施例場(chǎng)境下所描述的各個(gè)特征也能夠在多個(gè)實(shí)施例中單獨(dú)地或以任何合適的子組合來實(shí)現(xiàn)。此外,雖然上面可能將特征描述為以某些組合來起作用并且甚至最初如此要求保護(hù),但是在一些情況下來自所要求保護(hù)的組合的一個(gè)或多個(gè)特征能夠從組合中被刪去,并且所要求保護(hù)的組合可以涉及子組合或子組合的變型。
類似地,雖然在附圖中以特定順序描繪了操作,但是這不應(yīng)被理解為需要以所示的特定順序或以連續(xù)順序來執(zhí)行這樣的操作、或者需要執(zhí)行所有所圖示的操作才能達(dá)到期望的結(jié)果。在某些情況下,多任務(wù)和并行處理可以是有利的。此外,上述實(shí)施例中的各種系統(tǒng)組件的分離不應(yīng)被理解為在所有實(shí)施例中都需要這樣的分離,并且應(yīng)當(dāng)理解,所描述的程序組件和系統(tǒng)通常能夠一起集成在單個(gè)軟件產(chǎn)品中或封裝到多個(gè)軟件產(chǎn)品內(nèi)。
已經(jīng)描述了本主題的特定實(shí)施例。其他實(shí)施例落入所附權(quán)利要求書的范圍內(nèi)。例如,權(quán)利要求書中所記載的動(dòng)作能夠以不同的順序執(zhí)行并且仍然達(dá)到期望的結(jié)果。作為一個(gè)示例,附圖中描繪的過程不一定需要所示的特定順序或連續(xù)順序來達(dá)到期望的結(jié)果。在某些實(shí)施方式中,多任務(wù)和并行處理可以是有利的。