一種基于深度學習技術的稀疏矩陣分類方法
2018 IEEE International Conference on Cluster Computing
A New Approach for Sparse Matrix Classification Based on Deep Learning Techniques
Juan C. Pichel
CiTIUS
Universidade de Santiago de Compostela
Santiago de Compostela, Spain
Beatriz Pateiro-Lopez ′
Dpto. de Estad′?stica, Analisis Matem ′ atico y Optimizaci ′ on ′
Universidade de Santiago de Compostela
Santiago de Compostela, Spain
摘要
本文介紹了一種基于深度學習技術的稀疏矩陣存儲格式選擇方法萍肆。我們研究稀疏矩陣向量乘法(SpMV)的合適格式的選擇肴茄,這是許多科學和工程應用中最重要的計算核心之一。我們的方法將矩陣的稀疏模式作為一個圖像,使用RGB通道來編碼矩陣的幾個屬性熄捍。因此典格,我們生成包含足夠信息的圖像數(shù)據(jù)集來成功訓練卷積神經(jīng)網(wǎng)絡。使用gpu作為目標平臺阱佛,經(jīng)過訓練的CNN網(wǎng)絡帖汞,在90.1%的概率下選擇了最佳存儲格式,在測試中99.4%都達到了SpMV最高性能凑术。
索引詞:稀疏矩陣翩蘸,分類,深度學習淮逊,卷積神經(jīng)網(wǎng)絡催首、性能
I.?引言
稀疏矩陣向量乘法(SpMV)是許多科學和工程應用的核心。SpMV在現(xiàn)代并行架構(gòu)上有較低的峰值性能壮莹,一直都是行業(yè)的痛點翅帜。因此,它吸引了大量研究團體的關注命满。SpMV的性能取決于目標硬件平臺和矩陣的稀疏結(jié)構(gòu)涝滴。為此,針對特定的應用領域、矩陣結(jié)構(gòu)和計算機體系結(jié)構(gòu)[1]提出了多種存儲格式歼疮。實踐證明杂抽,選擇合適的存儲格式對SpMV的性能影響很大。壓縮稀疏行(CSR)格式實際上是cpu的標準表示形式韩脏,而gpu則沒有主要的格式缩麸。我們從幾個經(jīng)常互相沖突的因素中找到原因:最大化合并內(nèi)存訪問赡矢、最小化線程發(fā)散和最大化翹曲占用杭朱。
本文討論了gpu上稀疏矩陣的最佳存儲格式的自動選擇問題,提出了一種基于深度學習技術的方法吹散。我們特別考慮了卷積神經(jīng)網(wǎng)絡(CNNs)弧械,它是圖像識別和分類中最重要的深度學習網(wǎng)絡。我們的目標是演示一個簡單的標準CNN體系結(jié)構(gòu)空民,如AlexNet[3]刃唐,它非常的強大,可以提供非常好的分類結(jié)果界轩。因此画饥,沒有必要構(gòu)建一個特別的CNN架構(gòu)來處理這個問題。通過這種方式浊猾,我們的方法可以很容易地被研究界所采用抖甘,因為AlexNet可以在最重要和最常見的深度學習框架中使用。為了訓練網(wǎng)絡葫慎,將矩陣的稀疏圖案作為圖像单山。由于CNNs的輸入大小是固定的,所以原始稀疏矩陣被縮小幅疼,以使圖像中的像素表示子矩陣米奸。像素的RGB顏色用于表示矩陣的屬性。通過這種方式爽篷,我們可以創(chuàng)建具有足夠信息的圖像數(shù)據(jù)集來成功訓練CNN悴晰。以兩種不同的gpu作為目標平臺進行了詳盡的實驗評估。結(jié)果表明我們的方法在分類器的全局精度方面是有好處的逐工,達到了90%以上铡溪。此外,我們能夠獲得99.4%的平均最佳SpMV性能可用泪喊。最后棕硫,我們證明了使用預訓練模型可以加速訓練過程,而不是從頭開始訓練每個GPU的網(wǎng)絡袒啼。
本文的結(jié)構(gòu)如下:第II部分解釋了這項工作的背景哈扮。第III部分介紹了處理稀疏矩陣分類問題的深度學習方法纬纪。實驗結(jié)果在第IV部分進行了展示和討論,相關工作在第V部分進行了介紹滑肉。最后包各,對實驗得出的主要結(jié)論和對未來工作的一些想法進行了說明。
II.?背景
A.稀疏矩陣形式
對于稀疏矩陣靶庙,通過只存儲非零項问畅,可以減少大量的內(nèi)存需求。存在許多不同的存儲格式(在[1]中已經(jīng)詳細的列出)六荒,對于特定的稀疏矩陣护姆,根據(jù)其非零的數(shù)量和分布,這些格式比其他格式更適合掏击。這些格式在所需的存儲數(shù)量签则、訪問方法以及它們對不同應用程序或并行體系結(jié)構(gòu)(如gpu)的適應性方面有所不同。其中一些格式只適用于具有特定稀疏模式铐料,如對角線格式(DIA),或者塊格式豺旬,如BELLPACK矩陣[4]钠惩,其他形式的矩陣支持高效修正,但也有不支持高效運算的矩陣族阅,如坐標形式矩陣(COO)等篓跛。在這項工作中,我們關注的是那些適合于具有任意結(jié)構(gòu)的矩陣的格式坦刀,同時也適用于稀疏矩陣向量乘法等矩陣運算愧沟。更準確地說,我們已經(jīng)考慮了壓縮行存儲(CSR)鲤遥、ELLPACK (ELL)和hybrid(HYB)格式[5]沐寺,它們是在NVIDIA cuSPARSE1庫中實現(xiàn)的(參見Figure 1)。
壓縮稀疏行(CSR):是一種通用稀疏矩陣格式盖奈。對于矩陣的稀疏結(jié)構(gòu)不需要做任何假設混坞。CSR在相鄰內(nèi)存位置的每一行中分配后續(xù)的非零,并分別在兩個數(shù)組钢坦、索引和值中存儲列索引和非零項究孕。此外,它還需要另一個指針數(shù)組來指示每一行的偏移量爹凹。
ELLPACK (ELL):這種存儲方案在稠密的n×? ? k矩陣中壓縮原始稀疏n× m矩陣厨诸,其中k是原始矩陣每行不為0的最大個數(shù)。它還需要另一個n×? ? k的索引數(shù)組禾酱,用于在原始矩陣中存儲每個非零的位置(列)微酬。這種格式不能被認為是一種通用的矩陣格式绘趋,因為它需要每一行中的非零的數(shù)量在所有行中不會有很大的變化。在其他情況下得封,大量的存儲空間會被浪費埋心,計算效率也會降低。但是忙上,它適用于各種矩陣拷呆,它產(chǎn)生的性能結(jié)果通常都很好。
混合(HYB):這是兩種存儲格式的組合:COO和ELL疫粥。它試圖將ELL的計算效率與COO(顯式存儲行和列索引)的簡單性和通用性結(jié)合起來茬斧。大多數(shù)矩陣條目都以ELL格式存儲,而那些非零數(shù)量大不相同的行則以COO格式存儲梗逮。
B.卷積神經(jīng)網(wǎng)絡(CNNs)
CNNs由一系列層組成项秉,這些層將原始圖像從原始像素值逐層轉(zhuǎn)換為最終的類別分數(shù)值。我們可以將這些層分為三類:輸入層慷彤、特征提取層和分類層娄蔼。一個簡單的CNN架構(gòu)Figure2所示。輸入層將圖像的原始輸入數(shù)據(jù)加載并存儲在網(wǎng)絡中進行處理底哗。該輸入數(shù)據(jù)指定通道的寬度岁诉、高度和數(shù)量。通常跋选,通道的數(shù)量是3個涕癣,對應于每個像素的RGB值。
特征提取層一般有如下重復的操作:卷積前标、非線性(ReLU)和池化或子采樣坠韩。卷積層的主要目標是從輸入圖像中提取特征。卷積在輸入中移動一個小窗口(過濾器)炼列,在每個位置只搁,它計算過濾器和過濾器所覆蓋的輸入元素之間的點積。當我們在圖像上滑動濾鏡時俭尖,我們將生成一個二維激活映射须蜗,它會在每個空間位置上給出該濾鏡的響應。通過這種方式目溉,神經(jīng)網(wǎng)絡將學習在檢測到某些視覺特征如邊緣明肮、曲線等時激活的過濾器。注意缭付,多個過濾器可以用于同一個卷積層柿估,這將生成多個激活映射。在每次卷積運算之后都要用到一個叫做ReLU的附加運算陷猫。它是一種非線性操作秫舌,將特征圖中的所有負像素值替換為零的妖。此外,在CNN架構(gòu)中足陨,在連續(xù)卷積ReLU層之間插入池層是很常見的嫂粟。它的作用是在保留最重要信息的同時,逐步減小表示(子采樣)的空間大小墨缘,以減少網(wǎng)絡中的參數(shù)和計算量星虹。
最后,我們有分類層镊讼,其中我們有一個或多個完全連接的層來產(chǎn)生類別分數(shù)值宽涌。完全連接層意味著這一層的神經(jīng)元與上一層的所有激活都有完全連接。該層使用卷積層和池化層生成的高級特性蝶棋,根據(jù)訓練數(shù)據(jù)集將輸入圖像分類為多個類卸亮。
CNN的訓練過程是一個迭代的過程。首先玩裙,將網(wǎng)絡中的所有過濾器和參數(shù)初始化為隨機值兼贸。然后,網(wǎng)絡獲取一個訓練輸入圖像吃溅,它的類/標簽是預先知道的溶诞,并在前向傳播步驟(卷積、ReLU和池化操作以及在全連通層中的前向傳播)后進行預測罕偎。通過對網(wǎng)絡輸出與預期結(jié)果的比較,計算出預測誤差京闰。訓練過程(通過反向傳播的方式)迭代地修正網(wǎng)絡參數(shù)颜及,以最小化每個訓練輸入的總體誤差。卷積神經(jīng)網(wǎng)絡將會給出定數(shù)量的數(shù)據(jù)(即遍歷整個圖像數(shù)據(jù)集)并對輸入的數(shù)據(jù)集進行訓練蹂楣。注意俏站,在訓練過程中,過濾器的數(shù)量痊土、過濾器的大小肄扎、網(wǎng)絡的結(jié)構(gòu)等參數(shù)不會改變。在訓練過程中還有一些額外的參數(shù)被稱為超參數(shù)赁酝,比如學習率或新紀元數(shù)犯祠,這些參數(shù)應該被調(diào)整以使網(wǎng)絡訓練更好更快。
CNN已經(jīng)提出了很多架構(gòu)酌呆,其中最流行的有LeNet [6]衡载, AlexNet [3], GoogLeNet [7]隙袁, VGGNet[8]和ResNet[9]痰娱。在本文中弃榨,我們使用了AlexNet,它有5個卷積層梨睁,分別是減小濾波尺寸鲸睛,3個池化層,3個全連接層坡贺,大約有6000萬個自由參數(shù)官辈。盡管與其他標準網(wǎng)絡相比,AlexNet相對簡單拴念,但我們在下面幾節(jié)中演示了它足夠強大钧萍,可以處理稀疏矩陣格式選擇問題。
III.方法
本節(jié)介紹了一種基于深度學習技術的稀疏矩陣最佳存儲格式選擇方法政鼠。我們特別關注稀疏矩陣向量乘法(SpMV)的適當格式的選擇风瘦,它是科學和工程應用中最重要的計算核心之一。
圖3顯示了我們的方法的不同階段公般。我們假設一組來自不同實際問題的大型稀疏矩陣万搔,它們代表了各種特征和非零模式。該數(shù)據(jù)集將作為SpMV基準測試和圖像生成階段的輸入官帘。第一步的目標是評估數(shù)據(jù)集中所有矩陣在考慮不同存儲格式時SpMV內(nèi)核的性能瞬雹。因此,我們得到了每個矩陣在性能方面的最佳格式刽虹。這種格式將標簽(類)與數(shù)據(jù)集中的每個矩陣相關聯(lián)酗捌,稍后將在CNN訓練階段作為參考值使用。因此涌哲,類的數(shù)量與存儲格式一樣多胖缤。請注意,在這項工作中阀圾,我們將gpu作為硬件平臺來構(gòu)建參考值哪廓,但是我們的方法與底層并行系統(tǒng)完全無關,可以應用于多核cpu或加速器初烘,例如Intel Xeon Phi涡真。
圖像數(shù)據(jù)集的生成是我們方法的核心。為了建立數(shù)據(jù)集肾筐,我們考慮矩陣的稀疏模式作為圖像哆料。作為第一種方法,n× m矩陣相當于n× m的二進制圖像吗铐,其中位置(i,j)的白色像素在第i行和第j列中表示非零剧劝,黑色像素對應稀疏模式中的零。然而抓歼,CNN的輸入大小是固定的讥此,所以不同大小的矩陣應該縮放到相同大小拢锹。下面的方法解釋了如何縮放矩陣。假設輸入圖像的大小應該是p× p像素萄喳,為了簡單起見卒稳,考慮的稀疏矩陣是n× n(即,它是一個方陣)他巨,其中n個大于p充坑,我們把這個矩陣分成p× p子矩陣。為了構(gòu)建新的p× p縮放矩陣染突,如果在相應的子矩陣(i,j)中至少有一個非零值捻爷,我們在位置(i, j)插入一個非零值。這樣份企,從縮放矩陣創(chuàng)建一個p× p二值圖像就很簡單了也榄。Figure 4(a)演示了這個過程,顯示了從一個71, 505× 71, 505稀疏矩陣生成的63× 63像素圖像司志。
上述方法是生成符合CNN的二進制圖像數(shù)據(jù)集的一種簡單易行的方法甜紫。然而,縮小稀疏矩陣可以簡化稀疏模式的出現(xiàn)骂远,這可能會導致訓練階段提供給CNN的信息丟失囚霸。回想一下激才,圖像中的單個像素表示原始矩陣中的子矩陣拓型。例如,圖4(a)中的一個像素對應一個1,135 1,135子矩陣(即71,505/63)瘸恼。正如我們在第四節(jié)中所演示的那樣劣挫,使用二進制圖像數(shù)據(jù)集訓練網(wǎng)絡并不能提供有競爭力的結(jié)果。因此钞脂,有必要為CNN提供額外的信息揣云,以提高分類器的全局精度捕儒”校考慮到這一目標,我們建議使用圖像的RGB通道來編碼與原始稀疏矩陣的一些特征和屬性相關的信息刘莹。特別地阎毅,我們考慮了以下關于矩陣的全局度量(數(shù)字用作度量的標識符):
在我們的實現(xiàn)中,空子矩陣對應的像素都是黑色的点弯,即它們的RGB顏色為(0,0,0)扇调,只有表示非空子矩陣的像素有不同的相關的RGB顏色。這些像素的顏色總是相同的抢肛,每個RGB通道的值都在區(qū)間[1,255]內(nèi)狼钮,度量值應該規(guī)范化以適應該間隔(關于數(shù)據(jù)集規(guī)范化的細節(jié)在第四節(jié)中提供)碳柱。注意,可以使用一個熬芜、兩個或三個顏色通道來包含矩陣信息莲镣。當一個通道不被使用時,它對于圖像中所有像素的值為0涎拉。
從現(xiàn)在開始瑞侮,使用RxGyBz符號表示選擇x、y和z分別計算圖像的R鼓拧、G和B值半火。在圖像數(shù)據(jù)集生成階段,可以使用多個通道和指標的組合季俩。在本文中钮糖,我們只展示了在性能方面最相關的組合的結(jié)果。特別地种玛,數(shù)據(jù)集使用以下配置生成藐鹤。此外,為了便于說明赂韵,我們還包含了二進制圖像數(shù)據(jù)集(不含度量的黑白像素)和R1(僅使用紅色通道對矩陣每行的非零數(shù)進行編碼)的結(jié)果娱节。因此,本文生成并分析了6個不同的圖像數(shù)據(jù)集祭示。圖4顯示了一個示例肄满,該示例顯示了考慮不同配置時相同輸入稀疏矩陣得到的結(jié)果圖像。我們必須強調(diào)质涛,分配到頻道的指標不會影響CNN訓練階段的結(jié)果稠歉。這意味著考慮其]是無關的。
我們方法的下一個階段是CNN的訓練汇陆。為此怒炸,需要向CNN提供一組標記有其類別(最佳存儲格式)的圖像。這些數(shù)據(jù)是在前幾個階段生成的:SpMV基準測試和圖像生成毡代。注意阅羹,圖像數(shù)據(jù)集分為訓練集和測試集(如圖3所示),這樣訓練過程只考慮訓練集中的圖像教寂,而測試集中的圖像則需要評估最終選擇的分類模型的誤差捏鱼。我們使用了交叉驗證方法,這通常被認為是模型選擇和評估的最佳方法酪耕。特別地导梆,我們選擇了k-fold交叉驗證。當需要估計網(wǎng)絡的某個超參數(shù)時,可以使用這種方法看尼。在我們的例子中递鹉,超參數(shù)是最優(yōu)的訓練周期數(shù),該驗證方法將訓練集劃分為k個折疊藏斩。對于每個折疊k(稱為驗證集)梳虽,網(wǎng)絡只訓練k以外的所有折疊(例如,最大的epoch數(shù))灾茁。在每個歷元之后窜觉,記錄相應驗證集的全局精度。然后北专,計算每個epoch數(shù)的平均驗證集精度(跨越k折疊)禀挫。選擇的時期數(shù)將是使這一價值最大化的時期數(shù)。然后使用完整的訓練集作為輸入訓練CNN拓颓,直到迭代次數(shù)達到所選值语婴。
最后,訓練后的CNN將用于存儲格式預測驶睦。圖像測試集是完整圖像數(shù)據(jù)集的一部分砰左,但在訓練過程中沒有用到,它被用來作為CNN的輸入來驗證我們分類器的準確性场航。
IV.實驗評價
A.硬件平臺和軟件
在這項工作中缠导,我們將gpu作為硬件平臺來評估在執(zhí)行SpMV操作時預測最佳存儲格式的方法。然而溉痢,正如我們前面評論的僻造,我們的方法可以應用于其他并行系統(tǒng)。表I顯示了實驗評估中使用的NVIDIA gpu的主要特點孩饼。從現(xiàn)在開始髓削,我們分別用GTX和TITANX來指代具有開普勒架構(gòu)和Pascal架構(gòu)的gpu。
對于SpMV基準測試镀娶,我們使用包含CUDA toolkit version 8的NVIDIA cuSPARSE庫實現(xiàn)立膛。研究了CSR、HYB和ELL存儲格式(詳見第二節(jié))梯码。訓練CNN也使用GPU進行宝泵,而且最強大的GPU (TITANX)可以減少訓練時間。本次培訓階段所選擇NVIDIA 的Deep Learning GPU Training System2
(digital2)的軟件平臺忍些。DIGITS可以利用深度學習框架Caffe3設計鲁猩,訓練和可視化的深度神經(jīng)網(wǎng)絡圖像的分類坎怪。幾個最重要的CNN架構(gòu)罢坝,如LeNet、AlexNet和GoogLeNet都是預定義的,可以在平臺中使用嘁酿。
B.稀疏矩陣數(shù)據(jù)集
正如我們在第三節(jié)中指出的隙券,為了訓練網(wǎng)絡,有必要有一個大的稀疏矩陣集闹司。這個數(shù)據(jù)集應該包含來自不同實際問題和應用的矩陣娱仔。通過這種方式,我們期望這些矩陣涵蓋廣泛的特征和非零模式游桩。我們已經(jīng)創(chuàng)建了一個由8111個稀疏矩陣組成的數(shù)據(jù)集來滿足這些假設牲迫。該數(shù)據(jù)集是使用SuiteSparse矩陣集合[10]中的812個方陣作為基底生成的,并對它們應用一些轉(zhuǎn)換借卧,如裁剪(類似于[11])盹憎。數(shù)據(jù)集的平均值、最小值和最大值的主要特征如表二所示铐刘。
C . SpMV基準測試
為了訓練CNN陪每,應該給數(shù)據(jù)集中的矩陣分配一個分類(最好的存儲格式),這是SpMV基準測試階段的目標镰吵。我們通過測量在考慮的gpu上使用不同存儲格式(CSR檩禾、HYB和ELL)的單精度SpMV內(nèi)核的性能來進行實驗(見表一),對于每個矩陣和格式疤祭,性能計算為1000個SpMV操作的平均值盼产。然后根據(jù)最高性能的格式對每個矩陣進行標記。分類結(jié)果表示為每一類矩陣的個數(shù)和百分比勺馆,如表三所示辆飘。請注意,根據(jù)所考慮的GPU谓传,在分類上有明顯的差異蜈项。例如,我們觀察到最大的類在兩個gpu上是不同的(ELL表示GTX, CSR表示TITANX)续挟。這種對硬件平臺的依賴紧卒,證實了本文所解決問題的重要性和難度。
另一方面诗祸,存儲格式的錯誤選擇會對SpMV性能產(chǎn)生負面影響跑芳。圖5說明了這種測量數(shù)據(jù)集中所有矩陣的最佳和最差性能格式之間的加速的行為≈甭考慮到GTX平臺博个,箱線圖顯示,中間值功偿、第一個四分位數(shù)和第三個四分位數(shù)分別為1.81盆佣、1.51和2.25。這意味著對于50%的矩陣,選擇最佳的存儲格式可以使SpMV操作加速超過1.81共耍。TITANX的中值虑灰、第一個四分位數(shù)和第三個四分位數(shù)的速度是1.47、2.05和2.66痹兜。此外穆咐,我們還檢測到了一些異常值(圖中的點),在這些異常值中字旭,選擇合適的格式時对湃,SpMV的執(zhí)行速度要快10到數(shù)百倍。因此,分類中的錯誤預測可能導致重要的性能下降。
D.圖像數(shù)據(jù)集生成與網(wǎng)絡訓練
?? 表二中的幾個特征與第三節(jié)中詳細介紹的全局指標相對應跳芳。度量標準應該標準化以適合間隔[1,255],因為它們的值將被分配給圖像中的RGB顏色通道斤儿。這種歸一化的執(zhí)行方式會影響分類器的結(jié)果。為了找到最佳的歸一化方法恐锦,進行了大量的實驗研究往果。
接下來,我們將詳細介紹如何為評估中使用的圖像數(shù)據(jù)集計算RGB值(數(shù)字標識相應的度量):
如果前面的一些值對于一個特定的矩陣超過255一铅,圖像中相應的顏色將自動固定為255陕贮。
我們生成并研究了六種不同的圖像數(shù)據(jù)集:二進制圖像數(shù)據(jù)集(無度量)、R1, R1G2B3,R2G3B4,R1G3B4和R0G1B4潘飘。圖像的大小總是256× 256像素肮之,這與AlexNet網(wǎng)絡的輸入大小相對應。為了訓練AlexNet網(wǎng)絡卜录,我們使用了k-fold交叉驗證(見第三節(jié))戈擒,特別是將數(shù)據(jù)集分為訓練集(80%的矩陣)和測試集(20%的矩陣)。表III顯示了每個集合中矩陣的數(shù)量和分類艰毒,這個在測試集在訓練過程中沒有使用過筐高。此外,將訓練集劃分為5個折疊丑瞧,這種驗證方法的目的是求出訓練周期的最優(yōu)數(shù)目柑土。本程序適用于6個圖像數(shù)據(jù)集和2個gpu。我們發(fā)現(xiàn)最佳的epochs數(shù)量范圍從20(二進制數(shù)據(jù)集绊汹,GTX)到42
(R0G1B4數(shù)據(jù)集稽屏,TITANX)。我們必須強調(diào)西乖,其他超參數(shù)采用DIGITS?平臺提供的默認值狐榔。
然后使用完整的訓練集對AlexNet網(wǎng)絡進行訓練坛增,直到迭代達到最優(yōu)的迭代次數(shù)。在TITANX GPU上的訓練時間從6.3分鐘(二進制- gtx數(shù)據(jù)集)到14.5分鐘(R0G1B4- TITANX數(shù)據(jù)集)不等荒叼。
E.預測精度及性能分析
接下來,對每個數(shù)據(jù)集和GPU的訓練過的CNNs只使用測試集進行評估典鸡。除了分類器的全局精度(正確分類矩陣的總體百分比)被廓,我們還提供了兩個指標來更好地理解分類器的性能:精確度和召回率。在相同條件下重復測量得到相同結(jié)果的程度稱為精度萝玷〖蕹耍回憶或靈敏度也被稱為真實陽性率,并量化模型如何避免假陰性球碉。假設數(shù)據(jù)集中有A類TA矩陣蜓斧。我們的網(wǎng)絡將CA矩陣分類為A類,其中PA被正確分類(true positive)睁冬。那么挎春,A類產(chǎn)品的精度和召回量可以分別計算為PA/CA和PA/TA。
表IV顯示了兩個gpu上所有數(shù)據(jù)集的分類器的全局準確性豆拨、精確性和召回率直奋。GTX和TITANX gpu對網(wǎng)絡進行圖像訓練的準確率分別為90.1%和89%,圖像的RGB通道編碼了矩陣大小施禾、每行平均非零個數(shù)和每行最大非零個數(shù)(R0G1B4)脚线。在考慮其他配置時,特別是R2G3B4和R1G3B4時弥搞,也取得了較好的效果邮绿。由于TITANX數(shù)據(jù)集上的HYB和ELL類矩陣較少(見表三),相對于CSR值攀例,準確率和召回率較低船逮。最后,我們必須強調(diào)我們的方法是非常健壯的粤铭,因為對于兩個gpu上相同的圖像數(shù)據(jù)集傻唾,在準確性、精確性和召回率方面都得到了一致的結(jié)果承耿。
另一種證明我們方法的優(yōu)點的方法是測量分類器離最大可實現(xiàn)的SpMV性能有多近冠骄。通過這種方法,我們使用每個分類器選擇的格式測量測試集中所有矩陣的SpMV性能加袋。規(guī)范化結(jié)果如圖6所示凛辣,其方式是1對應于最大可實現(xiàn)性能(總是選擇最佳格式)。例如职烧,考慮到R0G1B4分類器扁誓,兩種gpu的平均性能都高于0.99防泵。這意味著最佳分類器與我們的分類器得到的分類器在SpMV性能上的差異小于1%。因此蝗敢,僅考慮全局精度捷泞、精度和召回率來評價分類器的質(zhì)量對于稀疏矩陣分類隱藏了重要的性能信息。由于選擇合適的存儲格式的最終目的是獲得最大的SpMV性能寿谴,因此上述分析非常重要锁右。
F.加快訓練過程
如前所述,矩陣的類依賴于SpMV基準測試階段考慮的硬件平臺讶泰。因此咏瑟,應該為每個特定的GPU訓練網(wǎng)絡。但是痪署,接下來我們將證明码泞,沒有必要從零開始進行訓練過程。
其思想是考慮一個預先訓練的模型作為訓練過程的起點狼犯,而不是考慮由隨機值初始化的AlexNet網(wǎng)絡(比如余寥,從零開始培訓)。這個預訓練模型對應于一個CNN為不同GPU訓練的模型悯森。通過這種方式劈狐,網(wǎng)絡繼承了許多參數(shù),這些參數(shù)從數(shù)據(jù)集中考慮的存儲格式和矩陣中獲取了重要的特征和特征呐馆。此外肥缔,我們必須考慮到不同gpu之間矩陣的類是不同的,但不是對所有數(shù)據(jù)集都是如此汹来。
由于使用了這種方法续膳,與從零開始的訓練相比,用較少的訓練數(shù)據(jù)得到了非常好的準確性結(jié)果收班。
因此坟岔,由于訓練網(wǎng)絡所需的數(shù)據(jù)減少,訓練時間也減少了摔桦。圖7演示了使用預先訓練的TITANX模型為GTX分類器進行的這種行為訓練社付。在這個例子中,我們考慮了R0G1B4圖像數(shù)據(jù)集邻耕。例如鸥咖,我們分別使用30%和50%的訓練數(shù)據(jù)對網(wǎng)絡進行了88.1%和89%的準確率訓練。
減少訓練數(shù)據(jù)大小的另一個重要結(jié)果是對SpMV基準測試階段的影響(見圖3)兄世,這是最耗時的階段啼辣,需要幾個小時才能獲得每個GPU上所有數(shù)據(jù)集的最佳存儲格式(類別)。注意御滩,它需要對每個矩陣和格式執(zhí)行1000次SpMV操作鸥拧。通過這種方式党远,可以顯著減少基準測試時間,同時在準確性方面獲得非常好的性能富弦。
V.?相關工作
在文獻[12][14]中沟娱,我們可以找到許多基于性能模型的gpu稀疏矩陣最優(yōu)格式識別的分析方法,都表現(xiàn)出良好的準確性腕柜,但模型通常是測試考慮一個小的矩陣集济似。其他作者使用傳統(tǒng)的機器學習方法自動選擇稀疏矩陣的最佳存儲格式。只有一些將gpu作為目標平臺媳握。在[2]中碱屁,作者構(gòu)建了一個決策樹磷脯,基于幾個矩陣結(jié)構(gòu)特征為給定的稀疏矩陣選擇最佳表示蛾找,他們的分類器報告了在64.6-83.8%范圍內(nèi)的全局精度,獲得了最大可實現(xiàn)的SpMV性能的95%赵誓。[15]中也發(fā)布了類似的方法打毛,它利用支持向量機來處理分類問題。他們證明了73-88.5%范圍內(nèi)的精度俩功,提高了平均SpMV性能高達98%幻枉。我們必須強調(diào),這兩項工作的最佳結(jié)果都低于使用我們的方法得到的數(shù)字诡蜓。
此外熬甫,在這兩種方法中所觀察到的最大精度通常都是使用具有三個以上矩陣屬性的特征集來訓練分類器,以上文獻都沒有考慮過深度學習技術蔓罚。在最近的一篇論文[11]中椿肩,作者使用CNNs處理稀疏矩陣格式選擇問題,他們提出了幾種表示矩陣的方法來訓練網(wǎng)絡豺谈,使用直方圖來捕捉矩陣中非零元素的空間分布可以得到最好的結(jié)果郑象。與我們的方法不同,它們不利用圖像的RGB通道編碼矩陣的某些特性茬末,使用它們的表示可以引導作者創(chuàng)建一個特殊的CNN架構(gòu)厂榛。我們的方法表明,簡單的標準CNN架構(gòu)(如AlexNet)就足以提供良好的分類結(jié)果丽惭。通過這種方式击奶,我們的方法很容易被研究界采用,因為AlexNet可以在最重要和最常見的深度學習框架中使用责掏。此外正歼,為了提高準確性或加快學習過程,未來AlexNet很容易被VGGNet[8]拷橘、ResNet[9]等其他標準架構(gòu)所替代局义。
其他的論文只關注機器學習技術在多核處理器[16]中的應用喜爷。最后,在[17]中萄唇,作者提出了一種使用深度學習技術為cpu和gpu選擇最佳SpMV代碼實現(xiàn)的機制檩帐。從概念上講,這是一項有趣的工作另萤,但是他們的方法得到的準確率很低(只有54%)湃密,達到了最高可實現(xiàn)性能的75%。
VI.結(jié)論
在這項工作中四敞,我們證明了深度學習技術可以成功地應用于不同于傳統(tǒng)機器學習任務的分類問題泛源。我們著重于為gpu上的SpMV內(nèi)核選擇最佳存儲格式,提出了一種將矩陣稀疏模式作為圖像來考慮的新方法忿危,將幾個矩陣特征編碼為圖像中像素的RGB顏色达箍,我們就可以生成具有足夠信息的圖像數(shù)據(jù)集來成功訓練CNN。我們證明了像AlexNet這樣一個簡單的铺厨、充分訓練的CNN架構(gòu)缎玫,在沒有任何精確性、召回率和平均SpMV性能方面調(diào)試的情況下都取得了非常好的效果解滓。特別是赃磨,我們觀察到最大的全局精度為90.1%,平均獲得最佳性能的99.4%洼裤。此外邻辉,我們還證明了用一個預先訓練的模型作為起點來加速訓練過程是可能的,而不是從零開始腮鞍。使用預訓練模型可以降低訓練數(shù)據(jù)的要求值骇,從而獲得較高的全局精度。
在未來的工作中缕减,我們將處理gpu和其他并行架構(gòu)的分類問題雷客,添加專門的存儲格式[18][20]。此外桥狡,我們還將采用主成分分析(PCA)等降維技術對圖像RGB通道中的三個以上矩陣屬性進行編碼搅裙,以提高分類器的全局精度。
參考文獻:
[1]
D. Langr and P. Tvrd′?k, “Evaluation Criteria for Sparse Matrix Storage Formats,”IEEE Transactions on
Parallel and Distributed Systems, vol.27, no. 2, pp. 428–440, 2016.
[2] N. Sedaghati, T. Mu, L.-N. Pouchet, S. Parthasarathy, and P.Sadayappan,“Automatic Selection of Sparse Matrix Representation on GPUs,” in
29th ACM on Int. Conf. on Supercomputing (ICS), 2015, pp. 99–108.
[3] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “ImageNet Classification withDeep Convolutional Neural Networks,” in
25th Int. Conf. on Neural Information Processing Systems - Volume
1, 2012, pp. 1097–1105.
[4] J. W. Choi, A. Singh, and R. W. Vuduc, “Model-driven Autotuning of SparseMatrix-vector Multiply on GPUs,” in
15th ACM SIGPLAN Symposium on Principles and Practice of Parallel
Programming (PPoPP),2010, pp.115–126.
[5] N. Bell and M. Garland, “Efficient Sparse Matrix-Vector Multiplication onCUDA,” NVIDIA Corporation, NVIDIA Technical Report NVR-2008-004, Dec. 2008.
[6] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based learning appliedto document recognition,”
Proceedings
of the IEEE, vol.86,no. 11, pp. 2278–2324, 1998.
[7] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan,V.Vanhoucke, and A. Rabinovich, “Going Deeper with Convolutions,” in
IEEE Conf. on Computer Vision and Pattern Recognition (CVPR),
2015, pp. 1–9.
[8] K. Simonyan and A. Zisserman, “Very Deep Convolutional Networks forLarge-Scale Image Recognition,”
CoRR, vol. abs/1409.1556, 2014.[Online]. Available:http://arxiv.org/abs/1409.1556
[9] K. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for ImageRecognition,”
CoRR, vol. abs/1512.03385, 2015.
[10] T. A. Davis and Y. Hu, “The University of Florida Sparse Matrix Collection,”
ACM Trans. Math. Softw., vol. 38, no. 1, pp. 1:1–1:25,2011.
[11] Y. Zhao, J. Li, C. Liao, and X. Shen, “Bridging the gap between deeplearning and sparse matrix format selection,” in
Proc. of the 23rd ACM SIGPLAN Symposium on Principles and Practice
of Parallel Programming,2018, pp. 94–108.
[12] P. Guo, L. Wang, and P. Chen, “A Performance Modeling and OptimizationAnalysis Tool for Sparse Matrix-Vector Multiplication on GPUs,”
IEEE Transactions on Parallel and Distributed Systems, vol. 25, no. 5, pp. 1112–1123, 2014.
[13] B. Neelima, G. R. M. Reddy, and P. S. Raghavendra, “Predicting an OptimalSparse Matrix Format for SpMV Computation on GPU,” in
IEEE Int. Parallel Distributed Processing Symposium Workshops, 2014, pp. 1427–1436.
[14] K. Li, W. Yang, and K. Li, “Performance Analysis and Optimization for SpMVon GPU Using Probabilistic Modeling,”
IEEE Transactions on Parallel and Distributed Systems, vol. 26, no. 1, pp. 196–205, 2015.
[15] A. Benatia, W. Ji, Y. Wang, and F. Shi, “Sparse Matrix Format Selection withMulticlass SVM for SpMV on GPU,” in
45th Int. Conf. on Parallel Processing (ICPP), 2016, pp. 496–505.
[16] J. Li, G. Tan, M. Chen, and N. Sun, “SMAT: An Input Adaptive Autotuner forSparse Matrix-vector Multiplication,” in
34th ACM SIGPLAN Conf. on Programming Language Design and
Implementation, 2013,pp.117–126.
[17] H. Cui, S. Hirasawa, H. Takizawa, and H. Kobayashi, “A Code Selection MechanismUsing Deep Learning,” in
IEEE
MCSOC, 2016, pp. 385–392.
[18] A. Ashari, N. Sedaghati, J. Eisenlohr, and P. Sadayappan, “An Efficient Two-dimensionalBlocking Strategy for Sparse Matrix-vector Multiplication on GPUs,” in
Proc. of the 28th ACM Int. Conf. on Supercomputing,2014, pp. 273–282.
[19] M. Kreutzer, G. Hager, G. Wellein, H. Fehske, and A. Bishop, “A UnifiedSparse Matrix Data Format for Efficient General Sparse MatrixVectorMultiplication on Modern Processors with Wide SIMD Units,”
SIAM Journal on Scientific Computing, vol. 36, no. 5, pp. C401–C423,2014.
[20] D. Merrill and M. Garland, “Merge-based Parallel Sparse MatrixvectorMultiplication,” in
Proc.
of the Int. Conf. for High PerformanceComputing, Networking, Storage and
Analysis (SC), 2016,
pp. 58:1–58:12.