一種面向可編程代數(shù)處理器的矩陣乘法計(jì)算裝置及方法
【專利摘要】本發(fā)明公開(kāi)了一種矩陣乘法計(jì)算裝置及方法,所述裝置包括多粒度并行存儲(chǔ)器、數(shù)據(jù)緩存裝置、數(shù)據(jù)廣播緩存裝置和向量運(yùn)算裝置。本發(fā)明采用可編程配置的DSP芯片,并結(jié)合高效的向量化矩陣乘法方案,針對(duì)實(shí)際應(yīng)用中存在的矩陣尺寸小、運(yùn)算量大的矩陣乘法進(jìn)行并行優(yōu)化處理,具有運(yùn)算速度快,并行粒度高和訪存次數(shù)少的優(yōu)點(diǎn)。
【專利說(shuō)明】一種面向可編程代數(shù)處理器的矩陣乘法計(jì)算裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,更具體地,涉及一種基于可編程代數(shù)處理器的矩陣乘法計(jì)算裝置及方法。
【背景技術(shù)】
[0002]矩陣乘法是科學(xué)計(jì)算中一種基本操作,其廣泛用于信號(hào)處理、圖像處理、雷達(dá)、聲納、通信等復(fù)雜計(jì)算領(lǐng)域中,并且由于其計(jì)算復(fù)雜度為0(n3),使得矩陣乘法往往成為算法計(jì)算過(guò)程中最為耗時(shí)的操作,進(jìn)而影響整個(gè)算法的性能。矩陣乘法操作又分為大矩陣乘法和小矩陣乘法,大矩陣乘法由于其行列數(shù)值非常巨大,導(dǎo)致運(yùn)算量呈指數(shù)級(jí)增加,近些年受到廣泛關(guān)注,一種通用的處理方法為將大矩陣進(jìn)行分塊處理,以加快其運(yùn)算效率;小矩陣乘法由于其單個(gè)乘法的計(jì)算量并不是很大,往往被人們所忽視,但隨著無(wú)線通信領(lǐng)域、雷達(dá)信號(hào)處理領(lǐng)域,數(shù)字圖像處理等計(jì)算密集型領(lǐng)域的廣泛發(fā)展,海量信息必須在固定時(shí)間內(nèi)進(jìn)行處理,而其中大規(guī)模的小矩陣乘法隨著矩陣數(shù)量的急劇增加,逐漸成為非常耗時(shí)的計(jì)算操作。
[0003]例如在無(wú)線通信領(lǐng)域中的預(yù)編碼過(guò)程,存在著多種模式的大規(guī)模小矩陣乘法,并且其有非常嚴(yán)格的時(shí)間約束。具體說(shuō)來(lái),多天線技術(shù)包括傳輸分集、空間復(fù)用和波束賦形技術(shù)。這三種技術(shù)簡(jiǎn)單來(lái)說(shuō)都包含大規(guī)模小矩陣相乘,以空間復(fù)用為例,其分為閉環(huán)空間復(fù)用和開(kāi)環(huán)空間復(fù)用,其計(jì)算公式如下:
[0004]閉環(huán)空間復(fù)用:
【權(quán)利要求】
1.一種矩陣乘法計(jì)算裝置,其特征在于,該裝置包括多粒度并行存儲(chǔ)器(10)、數(shù)據(jù)緩存裝置(20)、數(shù)據(jù)廣播緩存裝置(30)和向量運(yùn)算裝置(40)。 所述的多粒度并行存儲(chǔ)器(10)用于存儲(chǔ)要進(jìn)行乘法運(yùn)算的矩陣、廣播索引以及矩陣乘法之后的結(jié)果; 所述數(shù)據(jù)緩存裝置(20)用于暫存從多粒度并行存儲(chǔ)器(10)中取出的要進(jìn)行乘法運(yùn)算的矩陣; 所述數(shù)據(jù)廣播緩存裝置(30)用于將要進(jìn)行數(shù)據(jù)廣播操作的矩陣從多粒度并行存儲(chǔ)器(10)中取出,并對(duì)所述矩陣的數(shù)據(jù)進(jìn)行廣播操作; 所述向量運(yùn)算裝置(40)用于將從所述數(shù)據(jù)緩存裝置(20)中讀取得到的矩陣進(jìn)行向量運(yùn)算,或?qū)乃鰯?shù)據(jù)緩存裝置(20)中讀取得到的矩陣和從所述數(shù)據(jù)廣播緩存裝置(30)中讀取的矩陣進(jìn)行向量運(yùn)算,并將結(jié)果寫入所述多粒度存儲(chǔ)器(10)中。
2.如權(quán)利要求1所述的矩陣乘法計(jì)算裝置,其特征在于,所述多粒度并行存儲(chǔ)器的讀寫位寬、數(shù)據(jù)緩存裝置20中寄存器堆201的位寬、數(shù)據(jù)廣播緩存裝置中相關(guān)寄存器位寬以及所述向量運(yùn)算裝置40的運(yùn)算尺寸相等。
3.如權(quán)利要求1所述的矩陣乘法計(jì)算裝置,其特征在于,所述數(shù)據(jù)廣播緩存裝置對(duì)所述矩陣的數(shù)據(jù)依據(jù)廣播索引寄存器(303)中的廣播索引進(jìn)行廣播操作。
4.如權(quán)利要求1所述的矩陣乘法計(jì)算裝置,其特征在于,所述數(shù)據(jù)廣播裝置(30)包括數(shù)據(jù)廣播控制單元(301)、數(shù)據(jù)緩存實(shí)體(302)和廣播索引寄存器(303),其中數(shù)據(jù)廣播控制單元(301)用于控制數(shù)據(jù)廣播操作。
5.如權(quán)利要求1所述的矩陣乘法計(jì)算裝置,其特征在于,所述向量運(yùn)算單元(40)包括乘法運(yùn)算單元(401)和累加運(yùn)算單元(402)。
6.一種矩陣乘法計(jì)算方法,其特征在于,包括如下步驟: 步驟S1:分別從多粒度并行存儲(chǔ)器10中按行讀取LXM行的A系列矩陣以及按行讀取MXN行的B系列矩陣到數(shù)據(jù)緩存裝置20中,A系列矩陣放置在寄存器堆201中的Ck寄存器中,B系列矩陣放置在寄存器堆201中的寄存器中D1,其中k ∈ [1,L*M],1 ∈ [1,M*N];
步驟 S2:令 kl = 0,k2 = O ; 步驟S3:取Ck中第kl×M+1到(kl+1) XM行數(shù)據(jù)和D1中第k2×M+1到(k2+1)XM行數(shù)據(jù),其相應(yīng)行分別進(jìn)行點(diǎn)乘操作,然后將結(jié)果進(jìn)行累加操作,得到結(jié)果E,最后將E寫回到多粒度并行存儲(chǔ)器10中,如圖4所不; 步驟S4:k2加1,重復(fù)步驟S3,直到k2等于N為止; 步驟S5:kl加1,重復(fù)步驟S3~S4,直到kl等于L為止; 步驟S6:讀取下一個(gè)L×M行的A系列矩陣和M×N行的B系列矩陣到數(shù)據(jù)緩存裝置20中,重復(fù)步驟S2~S5,直到所有矩陣計(jì)算完畢。
7.一種矩陣乘法計(jì)算方法,其特征在于,包括如下步驟: 步驟Pl:從多粒度并行存儲(chǔ)器10中按列讀取LXM行I列A矩陣數(shù)據(jù)到數(shù)據(jù)廣播緩存裝置30中,并且按行讀取MXN行B系列矩陣數(shù)據(jù)到數(shù)據(jù)緩存裝置20中,表示為D1,其中1∈ [1,M*N]; 步驟P2:對(duì)數(shù)據(jù)廣播緩存裝置30中的每一個(gè)數(shù)據(jù)進(jìn)行類似于圖5所示廣播操作,即每一個(gè)數(shù)據(jù)都復(fù)制BS份存儲(chǔ)在寄存器Ck中,其中k ∈ [1, L*M];步驟 P3:令 kl = O,k2 = O ; 步驟P4:取Ck中第klXM+1到(kl+1) XM行數(shù)據(jù)和D1中第k2XM+l到(k2+l)XM行數(shù)據(jù),其相應(yīng)行分別進(jìn)行點(diǎn)乘操作,然后將結(jié)果進(jìn)行累加操作,得到結(jié)果E,最后將E寫回到多粒度并彳丁存儲(chǔ)器10中,如圖4所不; 步驟P5:k2加1,重復(fù)步驟P4,直到k2等于N為止; 步驟P6:kl加1,重復(fù)步驟P4~P5,直到kl等于L為止; 步驟P7:讀取下一個(gè)MXN行的B系列矩陣到數(shù)據(jù)緩存裝置20中,重復(fù)步驟P3~P6,直到所有矩陣計(jì)算完畢。
8.一種矩陣乘法計(jì)算方法,其特征在于,包括如下步驟: 步驟Ql:從多粒度并行存儲(chǔ)器10中按行讀取LXM行A系列矩陣數(shù)據(jù)到數(shù)據(jù)緩存裝置20中,表示為Ck,其中ke [1,LXM]。并且按列讀取MXN行I列B系列矩陣數(shù)據(jù)到數(shù)據(jù)廣播緩存裝置30中; 步驟Q2:對(duì)數(shù)據(jù)廣播緩存裝置30中的每一個(gè)數(shù)據(jù)進(jìn)行類似于圖5所示廣播操作,即每一個(gè)數(shù)據(jù)都復(fù)制BS份存儲(chǔ)在寄存器D1中,其中I e [1,MXN];
步驟 Q3:令 kl = 0,k2 = O ; 步驟Q4:取Ck中第klXM+1到(kl+1) XM行數(shù)據(jù)和D1中第k2XM+1到(k2+l)XM行數(shù)據(jù),其相應(yīng)行分別進(jìn)行點(diǎn) 乘操作,然后將結(jié)果進(jìn)行累加操作,得到結(jié)果E,最后將E寫回到多粒度并彳丁存儲(chǔ)器10中,如圖4所不; 步驟Q5:k2加1,重復(fù)步驟04,直到k2等于N為止; 步驟Q6:kl加1,重復(fù)步驟Q4~Q5,直到kl等于L為止; 步驟Q7:讀取下一個(gè)LXM行的A系列矩陣到數(shù)據(jù)緩存裝置20中,重復(fù)步驟Q3~Q6,直到所有矩陣計(jì)算完畢。
9.如權(quán)利要求6至8中任一項(xiàng)所述的矩陣乘法計(jì)算方法,其特征在于,所述A系列矩陣以行優(yōu)先存儲(chǔ)在多粒度并行存儲(chǔ)器(10)的一列Bank內(nèi);所述B系列矩陣以列優(yōu)先存儲(chǔ)在多粒度并行存儲(chǔ)器(10)的一列Bank內(nèi)。
【文檔編號(hào)】G06F17/16GK103902507SQ201410123578
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2014年3月28日 優(yōu)先權(quán)日:2014年3月28日
【發(fā)明者】郭曉龍, 王曉琴, 王偉康, 吳軍寧, 林嘯, 郭璟, 張森, 趙旭瑩 申請(qǐng)人:中國(guó)科學(xué)院自動(dòng)化研究所