《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模拟设计 > 设计应用 > 稀疏矩阵在C66x上的应用及优化
稀疏矩阵在C66x上的应用及优化
电子技术应用
黄旭东,洪泽,陈振娇
中国电子科技集团公司第五十八研究所
摘要: 随着大数据的爆炸式发展,稀疏矩阵已经成为机器学习和边缘计算的重要一环。在机器学习领域,数据集的稀疏矩阵化既可以保存信息又可以节省内存,已成为不可避免的趋势。SpMV(稀疏矩阵向量乘)作为稀疏矩阵计算中的核心,其迭代求解过程的空间复杂度和时间复杂度具有重要研究意义。分析稀疏矩阵C00、CSR、ELLPACK和DIA压缩格式,改变稀疏矩阵的稀疏度和非零元素的分布,得出COO读取数据、CSR进行计算的SpMV通用性更强。利用C66x的VLIW指令构架,采用软件流水的方式对SpMV_CSR算法进行指令并行优化,利用SIMD单指令多数据指令集对SpMV_CSR算法完成数据并行优化。实验结果表明,优化后的SpMV_CSR算法相较于优化前的加速比平均达到5倍以上。
關(guān)鍵詞: 稀疏矩阵 SpMV CSR C66x 软件流水
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A DOI: 10.16157/j.issn.0258-7998.244858
中文引用格式: 黃旭東,洪澤,陳振嬌. 稀疏矩陣在C66x上的應(yīng)用及優(yōu)化[J]. 電子技術(shù)應(yīng)用,2024,50(11):23-27.
英文引用格式: Huang Xudong,Hong Ze,Chen Zhenjiao. Application and optimization of sparse matrix vector multiplication on C66x[J]. Application of Electronic Technique,2024,50(11):23-27.
Application and optimization of sparse matrix vector multiplication on C66x
Huang Xudong,Hong Ze,Chen Zhenjiao
China Electronics Technology Group Corporation No.58 Research Institute
Abstract: With the explosive development of big data, sparse matrix has become an important part of machine learning and edge computing. In the field of machine learning, sparse matrix of data sets can not only save information but also save memory, which has become an inevitable trend. Sparse matrix vector multiplication (SpMV) is the core of sparse matrix computation. The space complexity and time complexity of its iterative solution process have important research significance. Analyze the compression format of sparse matrix C00, CSR, ELLPACK and DIA, change the sparsity of sparse matrix and the distribution of non-zero elements, and conclude that the SpMV read by COO and calculated by CSR is more universal. Utilizing the VLIW instruction architecture of C66x, using software pipelining to manage SpMV_CSR algorithm for instruction parallel optimization, utilizing SIMD single instruction multiple data instruction set for SpMV_CSR algorithm completes data parallel optimization. The experimental results indicate that the optimized SpMV_CSR algorithm has an average acceleration ratio of over 5 times compared to before optimization.
Key words : sparse matrix;SpMV;CSR;C66x;software pipelining;SIMD

引言

在機(jī)器學(xué)習(xí)和邊緣計(jì)算中,由于樣本數(shù)量巨大,大部分?jǐn)?shù)據(jù)集都是轉(zhuǎn)換成稀疏矩陣進(jìn)行數(shù)據(jù)處理。問題求解通常轉(zhuǎn)換成解線性代數(shù)方程組AX=B,其中A大部分是稀疏矩陣,因此SpMV 在求解過程中被重復(fù)調(diào)用,SpMV 的計(jì)算效率直接影響了整體求解效率[1]。李億淵實(shí)現(xiàn)了SpMV 在申威SW26010處理器上的性能優(yōu)化[2-3];吳志勇在FPGA上使用并行計(jì)算的方式對(duì)稀疏矩陣求解進(jìn)行加速[4];談?wù)啄暝诋悩?gòu)計(jì)算平臺(tái)上完成了SpMV劃分優(yōu)化算法[5];上述文獻(xiàn)方法SpMV 多集中于FPGA、CPU和GPU上的實(shí)現(xiàn)和優(yōu)化,而在高性能DSP C66x內(nèi)核上的研究還未見報(bào)道,因此開展此項(xiàng)工作具有重要意義。

稀疏矩陣具有自身特殊性,矩陣中大部分元素都是0,且0元素分布具有不規(guī)則性。大規(guī)模矩陣計(jì)算大部分都是稀疏矩陣計(jì)算,且稀疏度都在90%甚至99%以上,因此高效的稀疏矩陣壓縮格式更利于減少稀疏矩陣計(jì)算的空間復(fù)雜度[6]。如COO壓縮格式利用行號(hào)、列和數(shù)值三元組來表示,壓縮方式簡(jiǎn)單但不利于減少空間復(fù)雜度[7]。ELLPACK壓縮格式用兩個(gè)和原始矩陣相同行數(shù)的矩陣來存儲(chǔ)數(shù)據(jù),DIA對(duì)角線壓縮法,按對(duì)角線方式存儲(chǔ),列代表對(duì)角線,行代表行[8]。這兩種壓縮格式利于實(shí)現(xiàn)稀疏矩陣的應(yīng)用迭代法(如共軛梯度法),但是抵抗稀疏矩陣的隨機(jī)性較弱。CSR采用整體編碼格式,利用數(shù)值、列號(hào)以及行偏移來表示數(shù)據(jù),比起DIA和ELLPACK格式,通用性更高且靈活。

C66x內(nèi)核采用VLIW構(gòu)架,集成了單精度和雙精度的浮點(diǎn)運(yùn)算單元,可以實(shí)現(xiàn)定點(diǎn)和浮點(diǎn)的操作。C66x 內(nèi)核可同時(shí)運(yùn)行多達(dá)八項(xiàng)浮點(diǎn)乘法運(yùn)算,加之高達(dá)1.25 GHz的時(shí)鐘頻率,單核浮點(diǎn)峰值可以達(dá)到20 GFLOPS[9]。目前C66x已經(jīng)廣泛應(yīng)用到電力控制,機(jī)器視覺,機(jī)器人等領(lǐng)域。

本文分析COO、ELLPACK、DIA和CSR壓縮格式的優(yōu)缺點(diǎn),利用C66x的軟件流水和SIMD實(shí)現(xiàn)SpMV_CSR 算法的性能優(yōu)化。通過改變稀疏矩陣的規(guī)模和稠密度計(jì)算優(yōu)化后與優(yōu)化前的加速比,比較C66x內(nèi)核SpMV_CSR 優(yōu)化效果[10]。


本文詳細(xì)內(nèi)容請(qǐng)下載:

http://ihrv.cn/resource/share/2000006205


作者信息:

黃旭東,洪澤,陳振嬌

(中國(guó)電子科技集團(tuán)公司第五十八研究所,江蘇 無錫214035)


Magazine.Subscription.jpg

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。