• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于GPU的高效稀疏矩陣存儲格式研究

    2018-08-17 00:26:46,,
    計算機工程 2018年8期
    關(guān)鍵詞:數(shù)組共軛預(yù)處理

    程 , ,

    (上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)

    0 概述

    求解大規(guī)模稀疏線性系統(tǒng)是數(shù)值計算中的一個重要問題,廣泛應(yīng)用于力學(xué)、大氣建模、地球物理、生物學(xué)、電路仿真以及計算科學(xué)與工程的其他領(lǐng)域。就大規(guī)模數(shù)值模擬而言,求解大規(guī)模稀疏線性系統(tǒng)Ax=f占據(jù)了大量的計算時間和資源,即需要計算稀疏矩陣A與向量x的乘積,這一類計算問題統(tǒng)稱為稀疏矩陣與向量乘(Sparse Matrix-Vector Multiplication,SpMV)。電磁問題復(fù)雜程度的提高使得計算規(guī)模愈加擴(kuò)大,如何加快大規(guī)模稀疏線性方程組的求解速度顯得愈加重要,目前,解決該問題的重要方法之一就是運用高性能計算技術(shù)。

    目前,常用的求解稀疏線性系統(tǒng)的方法有直接法與迭代法。直接法是通過對方程組的系數(shù)矩陣進(jìn)行變換,將原方程組轉(zhuǎn)化為形如三角矩陣等形式,繼而使用回代或追趕的方法得到方程組的解。迭代法是從解的某個近似值出發(fā),構(gòu)造一個無窮序列去逼近精確解的過程。在實踐中,迭代法受迭代矩陣的影響,其所適用于解的線性方程組類型不盡相同。當(dāng)稀疏矩陣為病態(tài)矩陣時,舍入誤差大大降低了收斂速度,因此,需用各種預(yù)處理技術(shù)加以改進(jìn)以達(dá)到良好的計算效果。本文結(jié)合直接法的可靠性和迭代法的易并行性,采用不完全LU分解預(yù)條件共軛梯度(Incomplete LU factorization preconditioned Conjugate Gradient,ILUCG)法進(jìn)行研究。

    文獻(xiàn)[1]提出IC/ILU預(yù)條件CG/BiCGSTAB算法,并采用CUBLAS[2]、CUSPARSE[3]庫對其進(jìn)行實現(xiàn)。文獻(xiàn)[4]提出基于GPU的稀疏線性系統(tǒng)的預(yù)條件共軛梯度法,并采用對角預(yù)處理法實現(xiàn)算法。文獻(xiàn)[5]在文獻(xiàn)[1]和文獻(xiàn)[4]方法的基礎(chǔ)上,提出基于GPU加速的ICCG法。文獻(xiàn)[6]研究基于GPU的矩陣乘法優(yōu)化,提出一種基于HYB(Hybrid)格式的新存儲格式。文獻(xiàn)[7]研究了基于HYB格式稀疏矩陣與向量乘在CPU+GPU[8]異構(gòu)系統(tǒng)中的實現(xiàn)與優(yōu)化。

    本文在文獻(xiàn)[6-7]研究的基礎(chǔ)上,提出一種稀疏矩陣的混合存儲格式HEC(Hybrid ELL and CSR),并在CUDA[9]平臺上實現(xiàn)基于HEC格式的ILUCG方法,以測試其加速效果。

    1 存儲格式

    SpMV的求解是科學(xué)計算中的一個經(jīng)典問題,為提升其運算性能,對稀疏矩陣存儲格式的優(yōu)化顯得非常重要。文獻(xiàn)[10]在CUDA平臺上實現(xiàn)了利用不同的壓縮存儲格式的SpMV運算,并對性能進(jìn)行了比較分析。文獻(xiàn)[11]提出一種新的壓縮矩陣存儲格式CDIA(Compress format DIA gonal),并成功地在CUDA平臺上對該方法進(jìn)行實現(xiàn)。文獻(xiàn)[12]針對CSR存儲格式提出在GPU上的實現(xiàn)方法和優(yōu)化策略。目前,這些對單一存儲格式優(yōu)化的研究取得了較大的進(jìn)展,NVIDIA公司的CUSPARSE線性代數(shù)庫也對這些單一的存儲格式提供了強有力的支持。

    然而,由于稀疏矩陣中非零元素分布的不規(guī)則性,導(dǎo)致采用單一的壓縮存儲格式進(jìn)行運算時,取得的效果并不理想,因此多種對矩陣壓縮存儲格式進(jìn)行優(yōu)化的方法被相繼提出:一種是對行進(jìn)行合并分塊來緩解行與行間非零元素差異過大的情況,如BCSR[13]格式、BELLPACK[14-15]格式等,此外,文獻(xiàn)[16]研究了基于GPU的SpMV運算的優(yōu)化,對分段行合并及按行分塊存儲策略進(jìn)行了深刻剖析;另一種是采取混合格式進(jìn)行存儲,以適應(yīng)不同矩陣不規(guī)則的稀疏特征。如針對準(zhǔn)對角矩陣采用的DIA和CSR混合的HDC(Hybrid Dia and CSR)[17]存儲格式以及混合ELL(ELLPACK)和COO(Coordinate)格式的HYB[18]存儲格式等。

    目前,HYB存儲格式應(yīng)用尤為廣泛,現(xiàn)有的HYB Kernel函數(shù)大都是在GPU上運行ELL部分,在CPU上運行COO部分,進(jìn)行異構(gòu)計算,考慮到CSR格式存儲的數(shù)據(jù)量較COO格式更少,且GPU具有天然的并行性,因此,本文提出一種矩陣的混合存儲格式HEC,即將矩陣存儲為ELL格式和CSR格式,并在GPU上運行該存儲格式的Kernel函數(shù),以獲得一定的加速效果。

    1.1 ELL存儲格式

    如圖1所示,ELL格式用2個二維數(shù)組Values[ ]和Col[ ]來存儲一個n×k的矩陣(k為包含非零元素最多行的非零元數(shù)目,這里為n為4,k為2),將一個稀疏矩陣采用類稠密的方式存儲,更適合于并行計算。ELL格式對非零元較為集中于部分行的稀疏矩陣具有良好的存儲效果,二維數(shù)組Values大小為n×k,它存儲原稀疏矩陣中每行非零元的值,若該矩陣的所有行中最大非零元數(shù)為s,每行的非零元總數(shù)為c,則每行(s-c)的部分由0來填充;二維數(shù)組Col大小也為n×k,它用來存儲相應(yīng)非零元素在原系數(shù)矩陣中的列索引,它的相應(yīng)位置也可以用0來填充。

    圖1 ELL存儲格式

    ELL格式的優(yōu)點是只用2個數(shù)組就可以存儲一個稀疏矩陣,在一定程度上節(jié)省了存儲空間,降低了訪存開銷,且其SpMV算法在加速器內(nèi)易于并行實現(xiàn)。然而,ELL格式不適用于行之間非零元素相差較大的稀疏矩陣,若有一行每一個元素都是非零元,則ELL數(shù)組Values[ ]的列數(shù)和原稀疏矩陣的列數(shù)相等,就完全起不到壓縮的效果。

    1.2 CSR存儲格式

    如圖2所示,CSR格式采用3個數(shù)組Values[ ]、Rowptr[ ]、Colind[ ]來存儲一個稀疏矩陣,若矩陣的大小為n×n,且其總非零元數(shù)為m,則數(shù)組Values[ ]與Colind[ ]的長度為m,數(shù)組Values[ ]保存原稀疏矩陣中的所有非零元的值,數(shù)組Colind[ ]存儲了各非零元在原稀疏矩陣中的列索引,數(shù)組Rowptr[ ]的長度為n+1,它存儲了每一行元素在壓縮存儲格式中的起始位置。在圖2中,數(shù)組Rowptr[ ]中的元素是每一行起始位置的指針,Rowptr[0]表示第0行,即從數(shù)組Values[ ]的0號位置1開始,Rowptr[1]表示第1行,即從數(shù)組Values[ ]的2號位置3開始,以此類推。

    圖2 CSR存儲格式

    需要注意的是,若原稀疏矩陣有一行元素全為0(以第1行元素全為0舉例,該矩陣的行編號分別為0、1、2、3行),則Rowptr[1]與Rowptr[2]的值都是2,表示該存儲格式中沒有保存第1行的元素。CSR存儲格式可有效地表示任何形式的稀疏矩陣,因此,其在目前大規(guī)模稀疏線性系統(tǒng)的科學(xué)計算中應(yīng)用尤為廣泛。

    1.3 COO存儲格式

    如圖3所示,COO格式采用3個數(shù)組Values[ ]、Row[ ]、Colind[ ]來存儲一個稀疏矩陣,它與CSR格式的區(qū)別在于數(shù)組Row[ ]存儲了原稀疏矩陣中所有非零元的行索引。

    圖3 COO存儲格式

    1.4 HYB存儲格式

    如圖4所示,HYB存儲格式由ELL與COO存儲格式混合而成,用2個二維數(shù)組Values和Col來存儲一個n×k的矩陣(k為包含非零元素最多行的非零元數(shù)目),二維數(shù)組Values大小為n×k,它存儲稀疏矩陣中每行非零元的值;二維數(shù)組Col大小也為n×k,它存儲稀疏矩陣中非零元的列索引。

    圖4 HYB存儲格式

    HYB格式依據(jù)閾值K將矩陣劃分為ELL格式與COO格式存儲,即將數(shù)組Values第K(閾值)列左邊的部分(包括K列)存儲為ELL格式,右邊的部分存儲為COO格式。對于此,產(chǎn)生了一個重要的問題是閾值K的劃分,即如何劃分可以獲取最優(yōu)的性能,這里采取界限法,劃分規(guī)則如下:

    先求得ELL格式存儲的矩陣,在這之中,若第K列的元素加到劃分的ELL部分后,若ELL部分的總非零元數(shù)超過其總元素的二分之一,那么第K列將會被劃到ELL部分。

    閾值K劃分算法描述如下:

    求出第1列的非零元數(shù)

    for j=2:1:sf

    //j為矩陣Values的列,sf為矩陣Values的總列數(shù)

    求出前j列的總非零元數(shù)s

    求出前j列的元素的總數(shù)量c

    IF s>(c/2),則 K=j;ELSE break

    求出閾值K

    例如,在圖4中,在將稀疏矩陣的第1列劃分為ELL格式后(共有4列,編號為1、2、3、4),若將第2列劃分為ELL格式,則ELL部分元素的總數(shù)量為10,總非零元數(shù)為6>5,因此,第2列應(yīng)該劃分為ELL格式;若將第3列劃也為ELL部分,則總元素為15,總非零元數(shù)為7<7.5。因此,第3列不應(yīng)該被劃分為ELL部分,即此時的閾值K應(yīng)取2。

    1.5 HEC存儲格式

    如圖5所示,HEC格式由ELL與CSR存儲格式混合而成,根據(jù)閾值K將矩陣劃分為ELL格式與CSR格式兩部分存儲,閾值K的劃分規(guī)則與HYB格式相同,即K仍取2。ELL部分的內(nèi)容仍與HYB格式相應(yīng)的部分相同,遍歷剩余部分所有非零元的所在行,將其劃分到CSR部分,由于剩余部分的3個數(shù)2、3、1位于同一行,因此CSR部分的數(shù)組Rowptr只需存儲2個數(shù)0、3,即為起始位置索引0和劃分到CSR部分元素的個數(shù)3。

    圖5 HEC存儲格式

    若存儲為HYB格式,則COO部分的數(shù)組Row需存儲 3個數(shù)0、0、0,即為原稀疏矩陣中相應(yīng)部分各非零元的行索引。在本例中,稀疏矩陣的行列數(shù)及非零元數(shù)較少,相較于HYB格式只少存儲了1個數(shù),但在大規(guī)模稀疏線性系統(tǒng)的求解中,隨著稀疏矩陣行列數(shù)及非零元數(shù)的增多,HEC存儲格式的效率將會顯著提升。

    HEC格式保留了ELL格式適合于并行算法的優(yōu)勢,并且它可克服ELL格式只適合于矩陣各行間非零元數(shù)相差不大情況的缺點,從而減少填充元素的數(shù)量,因而其具有良好的性能。

    此外,HEC存儲格式比CSR格式多存儲了2組數(shù)據(jù)Val_ELL和Col_ELL(分別為以ELL格式存儲的值和列),會對讀取帶來一定的開銷,但在真實應(yīng)用中,SpMV操作會在下一個迭代求解器中對矩陣A反復(fù)進(jìn)行。在每一次迭代求解時,向量x和向量y(y=Ax)會發(fā)生改變,但矩陣A不變,因此,生成HEC存儲格式的工作可攤銷在多次的迭代求解中。

    2 不完全LU分解的預(yù)條件共軛梯度法

    2.1 預(yù)條件共軛梯度法

    本文采取的預(yù)條件共軛梯度法是通過采取一系列的預(yù)處理技術(shù)減少共軛梯度法中的迭代次數(shù),從而加速其收斂的一種方法。

    共軛梯度法[19]是迭代法的一種,迭代法采用逐次逼近并用迭代公式得到一系列近似解,從而逐漸地逼近于真實解,最終可得滿足一定誤差條件的近似解。共軛梯度法是依賴于向量正交性的,對舍入誤差的影響十分敏感,其收斂速度和系數(shù)矩陣的條件數(shù)緊密相關(guān)。理論上,它用小于n(矩陣的大小為n×n)的迭代次數(shù)即可得到求解結(jié)果。但當(dāng)稀疏矩陣呈現(xiàn)病態(tài)時,在舍入誤差的影響下,迭代次數(shù)大于n,收斂速度較慢,會出現(xiàn)數(shù)值解與理論解嚴(yán)重偏離的現(xiàn)象。

    文獻(xiàn)[20]對共軛梯度法進(jìn)行分塊處理,最終得到解決最小二乘問題的算法。

    2.2 不完全LU分解

    不完全LU分解是一種相當(dāng)高效的預(yù)處理技術(shù)。LU分解是矩陣分解的一種,可將一個矩陣分解為一個下三角矩陣和上三角矩陣的乘積,或為上、下三角矩陣和一個置換矩陣的乘積。對式(1),若n階稀疏矩陣A對稱且正定,則如式(2)所示,可確定一個正定矩陣M,在求解向量x時可比式(1)獲得更好的性能,矩陣M稱為預(yù)處理矩陣,構(gòu)造預(yù)處理矩陣的方法[21]有多種,如對角預(yù)處理構(gòu)造法、多項式預(yù)處理構(gòu)造法和不完全LU分解預(yù)處理法,本文正是采用了不完全LU分解預(yù)處理法。

    在式(1)中,對n階稀疏矩陣A進(jìn)行分裂式近似分解,可得式(3),其中,L為下三角矩陣,P為剩余矩陣。式(2)為預(yù)處理后的方程組,矩陣M與矩陣A具有相似的稀疏性,因此,為提高算法的求解速率,用矩陣M代替矩陣A進(jìn)行迭代運算。若將矩陣M進(jìn)行LU分解,可得式(4),其中,LM為下三角矩陣,UM為上三角矩陣。

    Ax=f

    (1)

    M-1Ax=M-1f

    (2)

    A=LLT+P=M+P

    (3)

    A≈M=LMUM

    (4)

    2.3 ILUCG算法

    基于LU分解的ILUCG算法描述如下:

    設(shè)定初值x0

    r=f-Ax0,p=r,rw=r

    for i=0,1,2,3,…,maxit

    ρi=rwT×r

    if ρi==0.0 then?

    method failed

    end if

    求解 M×ph=p,得到ph

    計算q,q=A×ph

    s=r-α×q

    x=x+α×ph

    if ‖s‖2≤tol then

    method converged

    endif

    求解 M×sh=s,得到sh

    計算 t=A×sh

    求得 x=x+ω×sh

    求得 r=s-ω×t

    end for

    3 算法實現(xiàn)

    3.1 基于CUSPARSE和CUBLAS庫的ILUCG法

    利用CUDA中的CUSPARSE和CUBLAS庫可以對ILUCG算法進(jìn)行實現(xiàn),在運算過程中,GPU負(fù)責(zé)迭代前和每次迭代過程中的矩陣與向量,向量與向量間的并行計算,CPU負(fù)責(zé)迭代循環(huán)和收斂條件的控制以及標(biāo)量相除等操作。算法描述如下:

    初始化CUSPARSE和CUBLAS庫

    對矩陣A進(jìn)行不完全LU分解,得到一個下三角矩陣L和上三角矩陣U,分別讀取矩陣A、L、U的值、行索引和列,分別為(Data,Row_ptr,Col_index)、(data_L,row_ptrL,col_indexL)、(data_U,row_ptrU,col_indexU)

    創(chuàng)建descr_L、descr_U、descr_A、info_L、info_U并初始化

    用cudaMalloc函數(shù)給各變量分配內(nèi)存

    用cudaMemcpy進(jìn)行數(shù)據(jù)傳輸

    用cusparseDcsrsv_analysis函數(shù)生成info_L、info_U

    用cusparseDcsrmv函數(shù)計算r=A×x0

    用cusparseDcsr2hyb函數(shù)將矩陣A以HYB格式保存在hybA中

    用cusparseDhybmv函數(shù)計算r=A×x0//以HYB格式計算

    用cublasDscal函數(shù)計算r=-r

    用cublasDaxpy函數(shù)計算r=b+r=-A×x0+b

    用cublasDcopy函數(shù)賦值p=r,rw=r

    用cublasDnrm2計算nrmr0=(r12+r22+…+rN2)0.5

    for(i=0;i

    rhop=rho,進(jìn)行rho值的更新,使得rhop[i]=rho[i-1]

    用cublasDdot函數(shù)計算內(nèi)積(r,rw)

    if (i>0) then

    β=(rho/rhop)×(α/ω)

    用cublasDaxpy、cublasDscal函數(shù)計算p=r+β×(p-ω×q)

    end if

    用cusparseDcsrsv_solve函數(shù)計算ph,ph=M-1×p

    A.用cusparseDcsrmv函數(shù)計算q=A×ph

    B.用cusparseDhybmv函數(shù)計算q=A×ph

    用cublasDdot函數(shù)計算內(nèi)積(r,q),即temp=rT×q

    計算a=rho/temp

    用cublasDaxpy函數(shù)計算s=r-a×q,x=x+a×ph

    用cublasDnrm2計算nrmr=(r12+r22+...+rN2)0.5

    若(nrmr/nrmr0)

    用cusparseDcsrsv_solve函數(shù)計算sh,sh=M-1×s

    用cusparseDcsrmv函數(shù)計算t=A×sh

    用cusparseDhybmv函數(shù)計算t=A×sh

    用cublasDaxpy函數(shù)計算x,x=x+w×sh,r=s-w×t

    用cublasDnrm2計算nrmr=(r12+r22+...+rN2)0.5

    If (nrmr/nrmr0)

    //tol為自設(shè)允許的誤差范圍,這里取10-6

    end for

    3.2 基于CUDA的SpMV算法

    3.2.1 基于CSR存儲格式的SpMV算法

    在不完全Cholesky分解預(yù)條件共軛梯度算法中SpMV運算的操作可由自作的GPU Kernel函數(shù)完成,使用cudaStream_t(CUDA流)以提高程序的執(zhí)行效率。若將矩陣A以CSR格式存儲,則有Kernel函數(shù)如下:

    __global__void SpMV_CSR(double *data ,int *col_index,int *row_ptr,double *x,double *y)

    {

    int elem;

    int row =blockIdx.x*blockDim.x + threadIdx.x;

    if(row< N) //N為矩陣A的行數(shù)

    {

    float dot=0;

    int row_start=row_ptr[row];

    int row_end=row_ptr[row+1];

    for(elem=row_start;elem

    {

    dot+=data[elem]* x[col_index[elem]];

    }

    y[row]=dot;

    }

    }

    3.2.2 基于HEC存儲格式的SpMV算法

    若將稀疏矩陣A以HEC格式存儲,可調(diào)用SpMV_ELL和SpMV_CSR 函數(shù)分別計算劃分到ELL和CSR部分的值并保存在數(shù)組y[row]和y2[row]中,最終,將y[row]與y2[row]的相應(yīng)值相加,可得一次SpMV運算的結(jié)果。

    基于HEC存儲格式的SpMV算法如下:

    __global__voidSpMV_ELL(double *data ,int *col_index,double *x,double *y)//GPU ELL Kernel函數(shù)

    {

    int i;

    int row =blockIdx.x*blockDim.x + threadIdx.x;

    if(row< P)//P為所劃分出的ELL格式的總行數(shù)

    {

    float dot=0;

    for(i=0;i

    {

    dot+=data[row+i*P]* x[col_index[row+i*P]];

    }

    y[row]=dot;

    }

    }

    __global__ voidSpMV_CSR(double *data2 ,int *col_index2,int *row_ptr,double *x,double *y2) //GPU CSR Kernel函數(shù)

    {

    int elem;

    int row2 =blockIdx.x*blockDim.x + threadIdx.x;

    if(row2< P)

    {

    float dot=0;

    int row_start=row_ptr[row2];

    int row_end=row_ptr[row2+1];

    for(elem=row_start;elem

    {

    dot+=data2[elem]* x[col_index2[elem]];

    }

    y2[row2]=dot;

    }

    }

    4 實驗與結(jié)果分析

    本文實驗的計算平臺,其CPU為Intel Core(TM) i5-6500 @3.20 GHz;GPU為NVIDIA GeForce GTX1050;運行內(nèi)存(RAM)的大小為8 GB;系統(tǒng)為Windows7 64位;實驗環(huán)境為Visual Studio 2012,CUDA8.0。測試所用稀疏矩陣全部來自UF Sparse Matrix Collection[22],即佛羅里達(dá)大學(xué)的稀疏矩陣集,如表1所示。

    表1 測試所用稀疏矩陣

    4.1 總時間對比

    分別運用調(diào)用CUSPARSE庫函數(shù)cusparse Dcsrmv()、cusparseDhybmv()和調(diào)用GPU Kernel SpMV_CSR、SpMV_HEC的方式進(jìn)行SpMV運算,并調(diào)用計時函數(shù)clock_t()記錄下基于LU分解的ILUCG法的總運算時間,運行50次,取平均值。其中:

    1)在調(diào)用cusparseDhybmv()函數(shù)進(jìn)行SpMV運算前,需先調(diào)用cusparseDcsr2hyb()函數(shù)將CSR格式存儲的稀疏矩陣信息轉(zhuǎn)換為HYB格式進(jìn)行存儲并保存在hybA中。

    2)總時間=CPU向GPU數(shù)據(jù)傳輸時間+GPU計算時間。

    上述指標(biāo)對比如圖6所示。其中,LU_CSR、LU_HYB分別代表以CSR、HYB為稀疏矩陣的存儲格式并調(diào)用CUSPARSE庫函數(shù)進(jìn)行運算的實現(xiàn)方式。LU_K_CSR、LU_K_HEC分別代表以CSR、HEC為存儲格式并調(diào)用GPU Kernel進(jìn)行運算的實現(xiàn)方式。

    圖6 4種實現(xiàn)方式的總時間對比

    由圖6可知,LU_K_HEC的實現(xiàn)方式對本次實驗所測試的矩陣具有良好的性能,當(dāng)稀疏矩陣為HB/bcsstk29 時,以該實現(xiàn)方式在4種方式中耗時最短,可獲得最優(yōu)的加速效果,為10.4%。一方面,這是由于矩陣HB/bcsstk29具有對角特征,行中的非零元素較為均衡,分布在對角線之外的元素稀少,分割出來的ELL矩陣進(jìn)行數(shù)據(jù)(0)的填充較少,因而具有較好的加速效果;另一方面,相較于HYB的存儲方式,該方式存儲的非零元更少,更利于其發(fā)揮在內(nèi)存讀取與數(shù)據(jù)傳輸方面的優(yōu)勢;相較于CSR的存儲方式,矩陣 HB/bcsstk29有較多的非零元,可抵消函數(shù)調(diào)用帶來的損耗,更利于GPU的并行化處理,從而縮短GPU的計算時間。

    4.2 GPU計算時間對比

    圖7展示了GPU計算時間的對比情況,GPU計算時間即運用GPU處理整個預(yù)條件共軛梯度法的運算時間,計時方法采用調(diào)用CUDA函數(shù)cudaEvent_t()進(jìn)行計時。

    圖7 4種實現(xiàn)方式的GPU計算時間對比

    從圖7可以看出,對于多數(shù)矩陣,LU_K_CSR的實現(xiàn)方式耗時最短,這是由于這些矩陣的非零元數(shù)較少,以CSR格式進(jìn)行存儲相較于HEC格式進(jìn)行存儲,只需調(diào)用一個函數(shù),減少了計算損耗。對于矩陣HB/bcsstk33,它比HB/bcsstk28有更多的非零元,花費的計算時間卻相近,原因是該矩陣經(jīng)LU分解后所得到的矩陣L和U有更少的非零元數(shù),減少了GPU的計算時間。而對于矩陣HB/bcsstk29,LU_K_HEC的實現(xiàn)方式耗時最短,表明HEC存儲格式對大型稀疏線性矩陣有良好的存儲效率。

    5 結(jié)束語

    本文提出一種稀疏矩陣的存儲格式HEC,并將其以ILUCG法中調(diào)用GPU Kernel的方式應(yīng)用于大型稀疏線性系統(tǒng)的求解中,與利用CUSPARSE庫函數(shù)cusparseDcsrmv()、cusparseDhybmv()的實現(xiàn)方式相比,最高可得到10.4%的加速效果。

    在應(yīng)用領(lǐng)域,矢量有限元法是求解電磁問題的重要方法之一,該方法將一個離散后的線性系統(tǒng)歸結(jié)為方程Ax=b的求解,而電磁問題的復(fù)雜化使得系數(shù)矩陣A愈加不規(guī)則,因而可以考慮通過多次劃分ELL格式進(jìn)行存儲,以用于更加不規(guī)則的線性方程組計算。同時,建立一個稀疏矩陣存儲格式的優(yōu)選模型,根據(jù)不同矩陣的特點選取最優(yōu)的存儲格式以提升計算效率,也將是下一步的研究方向。

    猜你喜歡
    數(shù)組共軛預(yù)處理
    JAVA稀疏矩陣算法
    電腦報(2022年13期)2022-04-12 00:32:38
    一個帶重啟步的改進(jìn)PRP型譜共軛梯度法
    一個改進(jìn)的WYL型三項共軛梯度法
    巧用共軛妙解題
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    電腦報(2020年24期)2020-07-15 06:12:41
    一種自適應(yīng)Dai-Liao共軛梯度法
    基于預(yù)處理MUSIC算法的分布式陣列DOA估計
    淺談PLC在預(yù)處理生產(chǎn)線自動化改造中的應(yīng)用
    絡(luò)合萃取法預(yù)處理H酸廢水
    尋找勾股數(shù)組的歷程
    美女国产视频在线观看| 欧美精品av麻豆av| 日日爽夜夜爽网站| 亚洲精品在线美女| 国产av一区二区精品久久| 成人亚洲欧美一区二区av| 国产精品无大码| av一本久久久久| 大片免费播放器 马上看| 青春草国产在线视频| 激情视频va一区二区三区| 黑人巨大精品欧美一区二区蜜桃| 久久婷婷青草| 国产高清不卡午夜福利| 中文欧美无线码| 久久午夜综合久久蜜桃| 亚洲成人一二三区av| 日韩视频在线欧美| 亚洲国产精品一区二区三区在线| 日本猛色少妇xxxxx猛交久久| 一区二区三区乱码不卡18| www.自偷自拍.com| 精品国产露脸久久av麻豆| 如日韩欧美国产精品一区二区三区| 夫妻午夜视频| 国产精品嫩草影院av在线观看| 免费黄频网站在线观看国产| av.在线天堂| 少妇被粗大猛烈的视频| 男男h啪啪无遮挡| 飞空精品影院首页| 中文字幕人妻丝袜一区二区 | a级毛片在线看网站| 国产精品亚洲av一区麻豆 | 伊人久久大香线蕉亚洲五| 尾随美女入室| 日韩一本色道免费dvd| av又黄又爽大尺度在线免费看| 色播在线永久视频| av在线app专区| 日韩熟女老妇一区二区性免费视频| 如日韩欧美国产精品一区二区三区| 久久久久人妻精品一区果冻| 在线观看www视频免费| 国产av一区二区精品久久| 午夜福利网站1000一区二区三区| 午夜久久久在线观看| 2021少妇久久久久久久久久久| 女人高潮潮喷娇喘18禁视频| 制服丝袜香蕉在线| 国产精品 欧美亚洲| 下体分泌物呈黄色| 久久毛片免费看一区二区三区| 国产女主播在线喷水免费视频网站| 极品人妻少妇av视频| 美女福利国产在线| 极品少妇高潮喷水抽搐| 狠狠婷婷综合久久久久久88av| 七月丁香在线播放| 春色校园在线视频观看| 精品人妻一区二区三区麻豆| 波野结衣二区三区在线| 少妇的丰满在线观看| 国产一区二区 视频在线| 中文字幕精品免费在线观看视频| 色哟哟·www| 亚洲一级一片aⅴ在线观看| 亚洲,一卡二卡三卡| 啦啦啦啦在线视频资源| 一区二区日韩欧美中文字幕| 人人妻人人爽人人添夜夜欢视频| 欧美最新免费一区二区三区| 国产 一区精品| 中文精品一卡2卡3卡4更新| 久久久久人妻精品一区果冻| 黄色毛片三级朝国网站| 我要看黄色一级片免费的| 波野结衣二区三区在线| av网站免费在线观看视频| 国产国语露脸激情在线看| 最近最新中文字幕免费大全7| 99久久中文字幕三级久久日本| 免费av中文字幕在线| 免费观看无遮挡的男女| 777久久人妻少妇嫩草av网站| 麻豆精品久久久久久蜜桃| 熟妇人妻不卡中文字幕| 精品视频人人做人人爽| 国产免费现黄频在线看| www.av在线官网国产| 天堂中文最新版在线下载| 一级毛片 在线播放| 欧美人与性动交α欧美软件| 少妇的逼水好多| 亚洲av国产av综合av卡| 人人妻人人添人人爽欧美一区卜| av线在线观看网站| 欧美激情高清一区二区三区 | 久久ye,这里只有精品| 一区二区三区激情视频| av有码第一页| 美女国产视频在线观看| 少妇 在线观看| 亚洲欧美成人精品一区二区| 欧美日韩精品成人综合77777| 91精品国产国语对白视频| 亚洲精品一区蜜桃| 欧美精品人与动牲交sv欧美| 久久热在线av| 丝袜在线中文字幕| 大香蕉久久网| 99久久中文字幕三级久久日本| 老司机影院成人| 一区二区日韩欧美中文字幕| 亚洲天堂av无毛| 久久国产亚洲av麻豆专区| 高清在线视频一区二区三区| 国产精品 国内视频| 啦啦啦在线观看免费高清www| 日韩 亚洲 欧美在线| 亚洲第一青青草原| 国产国语露脸激情在线看| 人妻人人澡人人爽人人| 日韩精品免费视频一区二区三区| 亚洲熟女精品中文字幕| www日本在线高清视频| 赤兔流量卡办理| 青草久久国产| 亚洲精品av麻豆狂野| 亚洲图色成人| 男女免费视频国产| 精品少妇久久久久久888优播| 天天躁夜夜躁狠狠躁躁| 波野结衣二区三区在线| 亚洲精品国产一区二区精华液| 国产成人aa在线观看| 国产精品二区激情视频| 中文字幕色久视频| 婷婷色av中文字幕| 一级毛片黄色毛片免费观看视频| 一边亲一边摸免费视频| 亚洲三区欧美一区| 国产高清不卡午夜福利| 在线观看国产h片| 香蕉精品网在线| 人体艺术视频欧美日本| 国产精品一区二区在线不卡| 男人舔女人的私密视频| 美女大奶头黄色视频| 人人澡人人妻人| 精品99又大又爽又粗少妇毛片| 精品国产露脸久久av麻豆| 亚洲av福利一区| 亚洲精品第二区| 久久久久国产网址| 在线观看三级黄色| 亚洲精品国产av蜜桃| 中文字幕人妻丝袜制服| 久久久久久久久免费视频了| 丝袜喷水一区| a级毛片在线看网站| 在线观看美女被高潮喷水网站| 三上悠亚av全集在线观看| 国产熟女欧美一区二区| av一本久久久久| 久久久久久人人人人人| 久久久久久久久久人人人人人人| 日本猛色少妇xxxxx猛交久久| 国产无遮挡羞羞视频在线观看| 亚洲成色77777| 国产亚洲欧美精品永久| 精品国产超薄肉色丝袜足j| 亚洲成色77777| 国产激情久久老熟女| 久久久精品区二区三区| 高清黄色对白视频在线免费看| 久久热在线av| 高清在线视频一区二区三区| 两性夫妻黄色片| 欧美日韩国产mv在线观看视频| h视频一区二区三区| 波多野结衣一区麻豆| 咕卡用的链子| 国产av一区二区精品久久| 美女主播在线视频| 一级毛片电影观看| 亚洲伊人色综图| 男的添女的下面高潮视频| 综合色丁香网| 一个人免费看片子| 欧美人与性动交α欧美精品济南到 | 搡老乐熟女国产| 亚洲美女搞黄在线观看| 18在线观看网站| 午夜福利视频精品| 欧美老熟妇乱子伦牲交| 久久久久视频综合| 麻豆精品久久久久久蜜桃| 午夜福利在线免费观看网站| 综合色丁香网| 亚洲欧美色中文字幕在线| 母亲3免费完整高清在线观看 | 亚洲欧美成人精品一区二区| 国产精品秋霞免费鲁丝片| 国产片特级美女逼逼视频| 亚洲久久久国产精品| 色吧在线观看| 丰满饥渴人妻一区二区三| 香蕉丝袜av| 黄片播放在线免费| 国产成人精品一,二区| 日本av免费视频播放| 日韩免费高清中文字幕av| a级片在线免费高清观看视频| 精品一区二区三区四区五区乱码 | 国产一区亚洲一区在线观看| www.自偷自拍.com| 天天躁夜夜躁狠狠久久av| 亚洲,一卡二卡三卡| 成年女人在线观看亚洲视频| 精品一区二区免费观看| 欧美成人午夜精品| 交换朋友夫妻互换小说| av电影中文网址| 久久av网站| 可以免费在线观看a视频的电影网站 | 亚洲国产成人一精品久久久| 亚洲国产精品一区二区三区在线| 在线观看免费高清a一片| 亚洲图色成人| 汤姆久久久久久久影院中文字幕| 国产精品熟女久久久久浪| 亚洲国产日韩一区二区| 男女国产视频网站| 日日啪夜夜爽| 久久精品亚洲av国产电影网| 国产精品99久久99久久久不卡 | 色婷婷av一区二区三区视频| 美女视频免费永久观看网站| 国产极品天堂在线| 9热在线视频观看99| 久久久国产精品麻豆| 中文字幕最新亚洲高清| 欧美97在线视频| 国产极品粉嫩免费观看在线| 97人妻天天添夜夜摸| 亚洲精华国产精华液的使用体验| 亚洲av男天堂| 啦啦啦啦在线视频资源| 婷婷色麻豆天堂久久| 日韩免费高清中文字幕av| 不卡视频在线观看欧美| 搡老乐熟女国产| 亚洲第一av免费看| 日韩一卡2卡3卡4卡2021年| 国产乱来视频区| 永久网站在线| 国产1区2区3区精品| 免费看不卡的av| 成人国语在线视频| 久久精品国产a三级三级三级| 免费高清在线观看视频在线观看| 亚洲欧美一区二区三区国产| 肉色欧美久久久久久久蜜桃| 少妇猛男粗大的猛烈进出视频| 亚洲精品久久成人aⅴ小说| 国产国语露脸激情在线看| 97精品久久久久久久久久精品| 日本免费在线观看一区| 最近中文字幕高清免费大全6| 欧美97在线视频| 69精品国产乱码久久久| 欧美成人午夜精品| 午夜福利在线观看免费完整高清在| 欧美日韩视频高清一区二区三区二| 国产又爽黄色视频| 亚洲成国产人片在线观看| 如何舔出高潮| 边亲边吃奶的免费视频| 我要看黄色一级片免费的| 女人久久www免费人成看片| 成人漫画全彩无遮挡| 巨乳人妻的诱惑在线观看| 日本wwww免费看| 啦啦啦啦在线视频资源| 一区二区三区精品91| 在线 av 中文字幕| 狠狠婷婷综合久久久久久88av| 国产1区2区3区精品| 午夜福利,免费看| 欧美精品国产亚洲| 伊人久久国产一区二区| 街头女战士在线观看网站| 五月天丁香电影| 最近中文字幕2019免费版| 最近中文字幕高清免费大全6| 免费看不卡的av| 啦啦啦在线观看免费高清www| 自线自在国产av| 91国产中文字幕| 久久精品夜色国产| 亚洲一码二码三码区别大吗| av在线播放精品| 热99久久久久精品小说推荐| 一级片'在线观看视频| 熟妇人妻不卡中文字幕| 欧美bdsm另类| 99热全是精品| 伊人亚洲综合成人网| 美国免费a级毛片| 精品酒店卫生间| 黄片播放在线免费| 亚洲,欧美精品.| 久久久精品94久久精品| av视频免费观看在线观看| 大片电影免费在线观看免费| 亚洲第一av免费看| 日韩三级伦理在线观看| 自线自在国产av| 街头女战士在线观看网站| 777久久人妻少妇嫩草av网站| 欧美日韩一区二区视频在线观看视频在线| 久久精品久久精品一区二区三区| 99re6热这里在线精品视频| 色哟哟·www| 久久精品国产a三级三级三级| 欧美日韩一级在线毛片| 中文字幕制服av| 青草久久国产| 亚洲精品第二区| 午夜福利在线观看免费完整高清在| 毛片一级片免费看久久久久| 国产探花极品一区二区| av国产精品久久久久影院| 熟女av电影| 亚洲精品国产色婷婷电影| 成年女人在线观看亚洲视频| 大码成人一级视频| 日本欧美视频一区| 亚洲内射少妇av| 老女人水多毛片| 国产一区二区在线观看av| 久久人人97超碰香蕉20202| 成人黄色视频免费在线看| 久久精品夜色国产| 超色免费av| 秋霞在线观看毛片| 久久99蜜桃精品久久| 免费黄色在线免费观看| av在线观看视频网站免费| 曰老女人黄片| 在线看a的网站| 欧美人与性动交α欧美软件| 国产成人精品久久久久久| 人妻人人澡人人爽人人| 成年美女黄网站色视频大全免费| 国产老妇伦熟女老妇高清| 欧美日韩一区二区视频在线观看视频在线| 不卡av一区二区三区| 精品国产露脸久久av麻豆| 咕卡用的链子| 精品国产一区二区三区久久久樱花| 少妇猛男粗大的猛烈进出视频| 大香蕉久久网| 久久 成人 亚洲| 精品人妻熟女毛片av久久网站| 黄片播放在线免费| 国产欧美亚洲国产| 国产免费视频播放在线视频| 亚洲人成77777在线视频| 少妇猛男粗大的猛烈进出视频| 五月开心婷婷网| 一二三四中文在线观看免费高清| 久久鲁丝午夜福利片| xxxhd国产人妻xxx| av有码第一页| 热re99久久国产66热| 女性生殖器流出的白浆| 一级毛片我不卡| 色网站视频免费| 日韩欧美精品免费久久| 天堂中文最新版在线下载| 免费日韩欧美在线观看| 男的添女的下面高潮视频| 午夜激情av网站| 男女边摸边吃奶| 少妇人妻精品综合一区二区| 91aial.com中文字幕在线观看| 国产精品一二三区在线看| 国产精品偷伦视频观看了| 另类精品久久| 日本午夜av视频| 黄网站色视频无遮挡免费观看| 在线观看免费日韩欧美大片| 女人被躁到高潮嗷嗷叫费观| 极品人妻少妇av视频| 精品亚洲成国产av| 亚洲精品国产一区二区精华液| 午夜福利乱码中文字幕| 久久影院123| 亚洲成av片中文字幕在线观看 | 精品一品国产午夜福利视频| 制服人妻中文乱码| 日本黄色日本黄色录像| 国产成人a∨麻豆精品| 久久国产精品大桥未久av| 日韩免费高清中文字幕av| 大话2 男鬼变身卡| 97精品久久久久久久久久精品| 亚洲人成电影观看| 晚上一个人看的免费电影| 最新中文字幕久久久久| 国产野战对白在线观看| 日韩av免费高清视频| 考比视频在线观看| 久久久久久久精品精品| 亚洲av电影在线进入| 亚洲综合精品二区| 伊人亚洲综合成人网| 国产日韩欧美视频二区| 欧美日韩精品成人综合77777| 九九爱精品视频在线观看| 七月丁香在线播放| 一区二区日韩欧美中文字幕| 人人澡人人妻人| 黄色一级大片看看| 咕卡用的链子| 久久99一区二区三区| 国产精品99久久99久久久不卡 | 观看美女的网站| 女人久久www免费人成看片| 国语对白做爰xxxⅹ性视频网站| 大话2 男鬼变身卡| 青春草国产在线视频| 美女主播在线视频| 丝袜喷水一区| 多毛熟女@视频| 人人妻人人爽人人添夜夜欢视频| 男男h啪啪无遮挡| 中文字幕另类日韩欧美亚洲嫩草| 亚洲欧美精品综合一区二区三区 | 一二三四在线观看免费中文在| 久久99精品国语久久久| 欧美成人午夜免费资源| 又粗又硬又长又爽又黄的视频| 国产午夜精品一二区理论片| 日本爱情动作片www.在线观看| 国产成人精品在线电影| 男人爽女人下面视频在线观看| 男女边摸边吃奶| 老汉色∧v一级毛片| 26uuu在线亚洲综合色| 国产日韩欧美亚洲二区| 欧美中文综合在线视频| 久久久久精品人妻al黑| 日韩免费高清中文字幕av| 久久久久久久久久久久大奶| 老汉色∧v一级毛片| 国产一区二区在线观看av| 久久国产精品男人的天堂亚洲| 欧美少妇被猛烈插入视频| 欧美+日韩+精品| av卡一久久| 成年美女黄网站色视频大全免费| 日韩一区二区三区影片| 人人妻人人澡人人看| 午夜日韩欧美国产| 国产有黄有色有爽视频| 国产成人aa在线观看| 亚洲熟女精品中文字幕| 91成人精品电影| 一级毛片电影观看| 伦理电影大哥的女人| av不卡在线播放| 免费高清在线观看视频在线观看| www.自偷自拍.com| 国产激情久久老熟女| 亚洲久久久国产精品| 午夜91福利影院| 精品福利永久在线观看| 久久精品久久久久久久性| 国产精品秋霞免费鲁丝片| 亚洲三级黄色毛片| 精品少妇久久久久久888优播| 精品国产一区二区三区久久久樱花| 下体分泌物呈黄色| 中文字幕人妻熟女乱码| 国产色婷婷99| 国产成人av激情在线播放| 波野结衣二区三区在线| 亚洲欧美一区二区三区国产| 欧美bdsm另类| 久久精品熟女亚洲av麻豆精品| 观看美女的网站| 香蕉丝袜av| 欧美成人午夜精品| 日本vs欧美在线观看视频| 一区二区日韩欧美中文字幕| 啦啦啦视频在线资源免费观看| 欧美日韩一区二区视频在线观看视频在线| 少妇熟女欧美另类| 少妇人妻久久综合中文| 国产午夜精品一二区理论片| av卡一久久| 伊人亚洲综合成人网| 晚上一个人看的免费电影| 日韩三级伦理在线观看| 欧美人与善性xxx| 最近手机中文字幕大全| 91国产中文字幕| 精品亚洲成a人片在线观看| 91久久精品国产一区二区三区| 成人免费观看视频高清| 午夜激情av网站| 99热国产这里只有精品6| 国产xxxxx性猛交| 国产成人av激情在线播放| 在线天堂最新版资源| 亚洲精品第二区| 精品一区二区三区四区五区乱码 | 少妇熟女欧美另类| 性少妇av在线| 国产成人午夜福利电影在线观看| 王馨瑶露胸无遮挡在线观看| 日韩人妻精品一区2区三区| 女的被弄到高潮叫床怎么办| 午夜激情久久久久久久| 十八禁网站网址无遮挡| 老司机影院成人| 成人黄色视频免费在线看| 国产精品久久久av美女十八| 天美传媒精品一区二区| 久久精品国产亚洲av高清一级| 国产精品久久久久久精品古装| 亚洲一级一片aⅴ在线观看| 人妻一区二区av| 欧美 亚洲 国产 日韩一| 青草久久国产| 天天影视国产精品| av在线播放精品| 边亲边吃奶的免费视频| 熟妇人妻不卡中文字幕| 黑人猛操日本美女一级片| 久久久久久久久久久免费av| 国产 精品1| 国产麻豆69| 欧美变态另类bdsm刘玥| 9191精品国产免费久久| 一区二区三区精品91| 少妇精品久久久久久久| 天美传媒精品一区二区| 亚洲精品aⅴ在线观看| 18禁观看日本| 精品一区在线观看国产| 色网站视频免费| 久久精品久久久久久久性| 国产一区亚洲一区在线观看| 日韩,欧美,国产一区二区三区| 国产老妇伦熟女老妇高清| 日韩伦理黄色片| 少妇的逼水好多| 亚洲av成人精品一二三区| 午夜福利一区二区在线看| 精品卡一卡二卡四卡免费| 亚洲av中文av极速乱| 国产亚洲精品第一综合不卡| 综合色丁香网| 天天操日日干夜夜撸| 久久久久久人妻| 中文字幕最新亚洲高清| 黄频高清免费视频| 久久久久久人人人人人| 激情五月婷婷亚洲| 日本免费在线观看一区| 欧美成人精品欧美一级黄| 男女边吃奶边做爰视频| 99国产综合亚洲精品| 亚洲av综合色区一区| 777米奇影视久久| 亚洲中文av在线| 少妇熟女欧美另类| 中文字幕色久视频| 国产成人精品福利久久| 一级黄片播放器| 色吧在线观看| 国产欧美亚洲国产| 亚洲五月色婷婷综合| 十分钟在线观看高清视频www| 精品少妇黑人巨大在线播放| 欧美日韩精品网址| 日日撸夜夜添| 国产精品二区激情视频| a 毛片基地| av免费在线看不卡| 国产欧美亚洲国产| 99热全是精品| 国产成人精品婷婷| 免费高清在线观看日韩| 国产无遮挡羞羞视频在线观看| 亚洲精品国产一区二区精华液| 夫妻性生交免费视频一级片| 在线观看www视频免费| 国产精品免费大片| 夫妻性生交免费视频一级片| 免费看av在线观看网站| 男女边吃奶边做爰视频| 你懂的网址亚洲精品在线观看| 亚洲av综合色区一区| 一边亲一边摸免费视频| 国产在线免费精品| 青春草国产在线视频| 一边亲一边摸免费视频| 精品国产一区二区三区久久久樱花| 国产成人欧美| 欧美精品av麻豆av|