本發(fā)明涉及存算一體硬件實現(xiàn),尤其涉及一種代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng)。
背景技術(shù):
1、代數(shù)多重網(wǎng)格(algebraic?multigrid,amg)算法具有最優(yōu)計算復(fù)雜度和高擴(kuò)展性的性質(zhì),使其可以高效求解線性方程組,并已被廣泛應(yīng)用于科學(xué)、工程以及工業(yè)領(lǐng)域?qū)嶋H問題的數(shù)值模擬中。在過去的幾十年時間里,研究人員在中央處理器(central?processingunit,cpu)和圖形處理器(graphics?processing?unit,gpu)平臺上對amg加速做了大量的努力,并取得了一定的性能提升。但由于cpu和gpu自身體系結(jié)構(gòu)的限制,導(dǎo)致處理器和內(nèi)存之間數(shù)據(jù)移動的開銷相當(dāng)大,成為了目前加速amg的一大瓶頸,阻礙了對amg更好的加速。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng)。
2、第一方面,本發(fā)明提供一種代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),包括:
3、agg模塊、aspr模塊、ac模塊;
4、所述agg模塊用于實現(xiàn)amg算法中的聚集操作;
5、所述aspr模塊用于實現(xiàn)amg算法中的矩陣和向量之間的乘法、加法和減法運(yùn)算;
6、所述ac模塊用于實現(xiàn)amg算法中的矩陣逆乘運(yùn)算;
7、所述agg模塊、aspr模塊、ac模塊均基于存算一體器件實現(xiàn)數(shù)據(jù)運(yùn)算及存取。
8、可選地,所述agg模塊包括:
9、輸入緩存、多個比較單元、第一寄存器、第二寄存器、第三寄存器、輸出緩存;
10、所述輸入緩存用于存儲細(xì)網(wǎng)格矩陣;
11、所述比較單元用于基于存算一體器件對所述細(xì)網(wǎng)格矩陣進(jìn)行聚集操作;
12、所述第一寄存器用于保存每次聚集中所聚集節(jié)點(diǎn)的索引;
13、所述第二寄存器用于保存每次聚集中所聚集節(jié)點(diǎn)的數(shù)值;
14、所述第三寄存器用于基于所述每次聚集中所聚集節(jié)點(diǎn)的索引,更新并標(biāo)記聚集操作中已聚集節(jié)點(diǎn)的索引;
15、所述輸出緩存用于基于所述每次聚集中所聚集節(jié)點(diǎn)的索引,確定所述細(xì)網(wǎng)格矩陣中已聚集的節(jié)點(diǎn)并發(fā)送至所述aspr模塊。
16、可選地,所述aspr模塊用于:
17、構(gòu)造光滑算子、插值算子、限制算子、粗網(wǎng)格矩陣;
18、進(jìn)行前光滑;
19、進(jìn)行殘差計算;
20、將殘差限制到所述粗網(wǎng)格矩陣;
21、插值并校正細(xì)網(wǎng)格矩陣近似解;
22、進(jìn)行后光滑。
23、可選地,所述aspr模塊包括:
24、第一互聯(lián)模塊、第二互聯(lián)模塊、第三互聯(lián)模塊、第四互聯(lián)模塊;
25、所述第一互聯(lián)模塊用于基于存算一體器件構(gòu)造并存儲所述光滑算子和所述粗網(wǎng)格矩陣,進(jìn)行殘差計算;
26、所述第二互聯(lián)模塊用于基于存算一體器件構(gòu)造并存儲所述插值算子和所述限制算子,進(jìn)行前光滑、后光滑;
27、所述第三互聯(lián)模塊用于基于存算一體器件構(gòu)造所述粗網(wǎng)格矩陣,插值并校正細(xì)網(wǎng)格矩陣近似解;
28、所述第四互聯(lián)模塊用于基于存算一體器件將殘差限制到所述粗網(wǎng)格矩陣。
29、可選地,所述構(gòu)造并存儲所述光滑算子和所述粗網(wǎng)格矩陣,進(jìn)行殘差計算,包括:
30、基于所述細(xì)網(wǎng)格矩陣、所述細(xì)網(wǎng)格矩陣對應(yīng)對角矩陣的逆矩陣和所述細(xì)網(wǎng)格矩陣的單位矩陣,構(gòu)造所述光滑算子;
31、基于所述細(xì)網(wǎng)格矩陣、所述插值算子和所述限制算子,構(gòu)造所述粗網(wǎng)格矩陣;
32、基于所述細(xì)網(wǎng)格矩陣、經(jīng)過前光滑的細(xì)網(wǎng)格矩陣近似解和常數(shù)向量,進(jìn)行殘差計算。
33、可選地,所述構(gòu)造并存儲所述插值算子和所述限制算子,進(jìn)行前光滑、后光滑,包括:
34、基于所述光滑算子和暫定插值,構(gòu)造所述插值算子;
35、基于所述插值算子,構(gòu)造所述限制算子;
36、基于所述光滑算子、所述細(xì)網(wǎng)格矩陣對應(yīng)對角矩陣的逆矩陣、細(xì)網(wǎng)格矩陣的初始近似解、經(jīng)過前光滑的細(xì)網(wǎng)格矩陣近似解和常數(shù)向量,進(jìn)行前光滑、后光滑。
37、可選地,所述插值并校正細(xì)網(wǎng)格矩陣近似解,包括:
38、基于所述插值算子,插值并校正細(xì)網(wǎng)格矩陣近似解。
39、可選地,所述將殘差限制到所述粗網(wǎng)格矩陣,包括:
40、基于所述限制算子,將殘差限制到所述粗網(wǎng)格矩陣。
41、可選地,所述ac模塊用于:
42、存儲粗網(wǎng)格矩陣,基于存算一體器件計算誤差。
43、可選地,所述系統(tǒng)還包括:
44、全局緩存模塊、控制模塊;
45、所述全局緩存模塊用于向所述agg模塊發(fā)送細(xì)網(wǎng)格矩陣、所述細(xì)網(wǎng)格矩陣對應(yīng)對角矩陣的逆矩陣和常數(shù)向量,并接收所述aspr模塊輸出的結(jié)果;
46、所述控制模塊用于控制所述agg模塊、所述aspr模塊、所述ac模塊以及所述全局緩存模塊之間的數(shù)據(jù)流向。
47、本發(fā)明提供的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),agg模塊、aspr模塊、ac模塊均基于存算一體器件實現(xiàn)amg算法中的數(shù)據(jù)運(yùn)算及存取,節(jié)省了處理器和內(nèi)存之間數(shù)據(jù)移動的開銷,提升了amg算法的實現(xiàn)速度。
1.一種代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述agg模塊包括:
3.根據(jù)權(quán)利要求1所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述aspr模塊用于:
4.根據(jù)權(quán)利要求3所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述aspr模塊包括:
5.根據(jù)權(quán)利要求4所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述構(gòu)造并存儲所述光滑算子和所述粗網(wǎng)格矩陣,進(jìn)行殘差計算,包括:
6.根據(jù)權(quán)利要求4所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述構(gòu)造并存儲所述插值算子和所述限制算子,進(jìn)行前光滑、后光滑,包括:
7.根據(jù)權(quán)利要求4所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述插值并校正細(xì)網(wǎng)格矩陣近似解,包括:
8.根據(jù)權(quán)利要求4所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述將殘差限制到所述粗網(wǎng)格矩陣,包括:
9.根據(jù)權(quán)利要求1所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述ac模塊用于:
10.根據(jù)權(quán)利要求1至9任一項所述的代數(shù)多重網(wǎng)格存算一體軟硬件加速系統(tǒng),其特征在于,所述系統(tǒng)還包括: