中文引用格式: 黃旭東,洪澤,陳振嬌. 稀疏矩陣在C66x上的應用及優(yōu)化[J]. 電子技術(shù)應用,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.
引言
在機器學習和邊緣計算中,由于樣本數(shù)量巨大,大部分數(shù)據(jù)集都是轉(zhuǎn)換成稀疏矩陣進行數(shù)據(jù)處理。問題求解通常轉(zhuǎn)換成解線性代數(shù)方程組AX=B,其中A大部分是稀疏矩陣,因此SpMV 在求解過程中被重復調(diào)用,SpMV 的計算效率直接影響了整體求解效率[1]。李億淵實現(xiàn)了SpMV 在申威SW26010處理器上的性能優(yōu)化[2-3];吳志勇在FPGA上使用并行計算的方式對稀疏矩陣求解進行加速[4];談兆年在異構(gòu)計算平臺上完成了SpMV劃分優(yōu)化算法[5];上述文獻方法SpMV 多集中于FPGA、CPU和GPU上的實現(xiàn)和優(yōu)化,而在高性能DSP C66x內(nèi)核上的研究還未見報道,因此開展此項工作具有重要意義。
稀疏矩陣具有自身特殊性,矩陣中大部分元素都是0,且0元素分布具有不規(guī)則性。大規(guī)模矩陣計算大部分都是稀疏矩陣計算,且稀疏度都在90%甚至99%以上,因此高效的稀疏矩陣壓縮格式更利于減少稀疏矩陣計算的空間復雜度[6]。如COO壓縮格式利用行號、列和數(shù)值三元組來表示,壓縮方式簡單但不利于減少空間復雜度[7]。ELLPACK壓縮格式用兩個和原始矩陣相同行數(shù)的矩陣來存儲數(shù)據(jù),DIA對角線壓縮法,按對角線方式存儲,列代表對角線,行代表行[8]。這兩種壓縮格式利于實現(xiàn)稀疏矩陣的應用迭代法(如共軛梯度法),但是抵抗稀疏矩陣的隨機性較弱。CSR采用整體編碼格式,利用數(shù)值、列號以及行偏移來表示數(shù)據(jù),比起DIA和ELLPACK格式,通用性更高且靈活。
C66x內(nèi)核采用VLIW構(gòu)架,集成了單精度和雙精度的浮點運算單元,可以實現(xiàn)定點和浮點的操作。C66x 內(nèi)核可同時運行多達八項浮點乘法運算,加之高達1.25 GHz的時鐘頻率,單核浮點峰值可以達到20 GFLOPS[9]。目前C66x已經(jīng)廣泛應用到電力控制,機器視覺,機器人等領域。
本文分析COO、ELLPACK、DIA和CSR壓縮格式的優(yōu)缺點,利用C66x的軟件流水和SIMD實現(xiàn)SpMV_CSR 算法的性能優(yōu)化。通過改變稀疏矩陣的規(guī)模和稠密度計算優(yōu)化后與優(yōu)化前的加速比,比較C66x內(nèi)核SpMV_CSR 優(yōu)化效果[10]。
本文詳細內(nèi)容請下載:
http://ihrv.cn/resource/share/2000006205
作者信息:
黃旭東,洪澤,陳振嬌
(中國電子科技集團公司第五十八研究所,江蘇 無錫214035)