亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于圖神經(jīng)網(wǎng)絡的程序脆弱性指數(shù)評估方法

        2023-01-01 00:00:00黃甦雷馬駿馳段宗濤
        計算機應用研究 2023年4期

        作者簡介:黃甦雷(1998-),女,碩士研究生,主要研究方向為軟件可靠性;馬駿馳(1988-),男(通信作者),陜西西安人,講師,碩導,博士,主要研究方向為圖神經(jīng)網(wǎng)絡、軟件可靠性(majunchi@chd.edu.cn);段宗濤(1977-),男,陜西鳳翔人,教授,博導,博士,主要研究方向為時空大數(shù)據(jù)智能計算及應用、車聯(lián)網(wǎng)可信計算技術.

        摘 要:軟錯誤會導致隱性偏差,嚴重影響計算機系統(tǒng)的可靠性。計算程序脆弱性指數(shù)是防護隱性偏差的先決條件。針對傳統(tǒng)方法中程序語義提取不足,無法全面反映錯誤傳播機理的問題,提出了一種基于圖注意力網(wǎng)絡的程序脆弱性指數(shù)評估方法EpicGNN。將脆弱性指數(shù)預測的任務轉換為圖神經(jīng)網(wǎng)絡的圖回歸任務,應用不同類型的邊來表示不同的指令關系;引入結構化多頭自注意力機制量化節(jié)點間、節(jié)點到圖在錯誤傳播中的重要程度;依據(jù)該重要性聚合節(jié)點信息、圖信息形成圖的表示向量,并利用回歸模型預測脆弱性指數(shù)。實驗結果表明,EpicGNN在spec2000、spec2006、rodinia等數(shù)據(jù)集上的平均絕對誤差相比現(xiàn)有模型減少了0.037~0.258,對未見過的圖仍然有良好的泛化性能。

        關鍵詞:軟錯誤;錯誤傳播;程序脆弱性;圖神經(jīng)網(wǎng)絡

        中圖分類號:TP311.5 文獻標志碼:A

        文章編號:1001-3695(2023)04-030-1148-06

        doi:10.19734/j.issn.1001-3695.2022.08.0435

        Abstract:Soft error can lead to silent data corruption(SDC) that affects the reliability of computer system.One prerequisite to prevent SDC is calculating the vulnerability factor of the target program.Traditional methods are not capable of extracting program semantics,which led to inferior of the fault propagation mechanism.This paper proposed a program vulnerability factor eva-luation method based on graph attention network(EpicGNN).EpicGNN used structural multi-head self-attention to quantify importance of fault propagations from one node to its neighbors and further to graph,different types of edges represent different instruction relationships.Then it aggregated the information of node and graph to update the representation.It applied a regression model to predict vulnerability factor.Experimental on spec2000,spec2006,rodinia and other datasets achieve 0.037~0.258 lower average absolute error compared with traditional methods.Moreover,EpicGNN obtains good performance on unseen graphs.

        Key words:soft error;fault propagation;program vulnerability;graph neural network

        0 引言

        單粒子翻轉(single event upset)是質子、電子、重離子等高能粒子轟擊半導體器件造成PN結瞬間充放電的現(xiàn)象。單粒子翻轉引起的半導體電路瞬態(tài)故障稱為軟錯誤。軟錯誤雖然不會損壞內部硬件電路,但是有可能影響程序的正常運行。表1列出了由軟錯誤引發(fā)的后果類型,其中最為嚴重的一個后果是錯誤的程序輸出,稱為隱性偏差(silent data corruption)。發(fā)生隱性偏差時,程序的整個執(zhí)行過程與正常運行時沒有區(qū)別,只是程序的輸出結果發(fā)生了錯誤。這種錯誤不僅對軟件的可用性、可靠性有很大影響,當輸出結果被用于如自動駕駛等高要求安全性的應用時,可能會導致重大安全事故。在部署100 000個FPGA的數(shù)據(jù)中心,隱性偏差的發(fā)生頻率可以高達半天一次,因而隱性偏差的防護成為了當前研究的熱點[1,2]。

        目前已經(jīng)出現(xiàn)了一些軟件級的軟錯誤防護方法,這些防護方法一般通過執(zhí)行多個副本并比較來進行檢測,然而檢測代價都較高,如軟件層面的指令復制技術需要兩倍的執(zhí)行代價來保護程序[3]。若在所有軟件模塊都進行防護會產(chǎn)生很高的檢測代價和設計復雜度,這對于大部分的應用來說都是不可接受的。要想實現(xiàn)以較低代價檢測軟錯誤,必須做到有的放矢,即評價程序在軟錯誤侵擾下發(fā)生執(zhí)行偏離的概率,并以此為依據(jù)在重點的模塊部署軟錯誤防護措施。

        描述程序發(fā)生隱性偏差概率的指標稱為脆弱性指數(shù)(vulnerability factor),脆弱性指數(shù)是指執(zhí)行隨機故障注入(fault injection,F(xiàn)I)后導致隱性偏差的概率,如式(1)所示。故障注入方法每次只對隨機采樣的指令注入一個錯誤,直到程序執(zhí)行完畢,以確定該錯誤是否導致隱性偏差[4]。

        其中:NSDC表示所有注入中導致隱性偏差的指令數(shù)量;Ntotal表示故障注入總次數(shù)。脆弱性指數(shù)評估了在軟錯誤侵擾下程序偏離原有執(zhí)行結果的概率。評估脆弱性指數(shù)最直接的方式是故障注入。然而執(zhí)行故障注入來確定脆弱性指數(shù)需要花費大量的時間,尤其是當程序的規(guī)模較大時,故障注入的時間代價是不可接受的。另一種評估脆弱性指數(shù)的方式是利用錯誤傳播模型進行估算。錯誤傳播模型首先分析程序中容易產(chǎn)生軟錯誤的指令,然后根據(jù)提出的錯誤傳播的啟發(fā)式方法分析不同類型指令的脆弱性指數(shù),最終得到程序整體的脆弱性指數(shù)。

        評估脆弱性指數(shù)面臨的主要挑戰(zhàn)是程序的錯誤傳播過程復雜多變,錯誤傳播的過程往往涉及到程序的語義。而傳統(tǒng)的錯誤傳播模型是根據(jù)錯誤注入實驗的結果對錯誤傳播的規(guī)律進行概括,這種概括往往是不完整的,并極度依賴專業(yè)人員的分析能力。且該方法對程序語義描述能力不足,限制了模型對程序中的錯誤傳播進行分析與推理的能力,造成了錯誤傳播模型準確率低。因此,如何提取程序中潛在的特征及語義關系是目前亟需解決的一大問題。近年來,以深度學習為代表的表示學習技術熱度高漲。表示學習的核心思想是不依賴于人工經(jīng)驗,自動地找到對于原始數(shù)據(jù)更好的表達。圖表示學習能夠自動學習到圖上的潛在節(jié)點嵌入特征表示或者圖嵌入特征表示,同時盡可能多地保留圖的拓撲信息,以便下游的圖機器學習模型使用來完成預測任務。圖神經(jīng)網(wǎng)絡(graph neural network,GNN) 已被證明在建模圖特征方面十分有效。

        針對傳統(tǒng)錯誤傳播模型對程序語義描述能力不足的問題,本文基于圖神經(jīng)網(wǎng)絡架構將程序的脆弱性指數(shù)的計算問題轉換為圖回歸問題,從而自動學習程序語義信息并分析程序的錯誤傳播模式。首先提取程序的動態(tài)依賴圖(dynamic depen-dence graph,DDG)[5],通過構造多層注意力的圖神經(jīng)網(wǎng)絡來捕獲程序中包含的復雜結構和語義,聚合節(jié)點級、層級和圖級向量后形成最終的圖表示向量,最后通過回歸計算脆弱性指數(shù)。模型在訓練完成后,能夠進行歸納式學習,也就是說,對未見過的程序依然能夠進行脆弱性指數(shù)的估計,因而能夠在保證預測準確率的情況下極大地降低預測所需的時間。綜上所述,本文的主要貢獻有:

        a)本文基于圖神經(jīng)網(wǎng)絡來評估程序的整體脆弱性指數(shù)。圖神經(jīng)網(wǎng)絡能夠自動學習與錯誤傳播相關的信息,構造隱含層描述錯誤傳播的規(guī)律并實現(xiàn)端到端的錯誤傳播學習。相對于傳統(tǒng)的錯誤傳播模型采用人工總結的錯誤傳播模式,本文模型不需要程序業(yè)務邏輯及執(zhí)行信息的先驗知識,降低了錯誤傳播分析的領域知識要求并提高了預測的準確性。

        b)本文使用了結構化多頭自注意力機制來描述錯誤傳播特征,該方法能夠捕獲豐富的語義信息,量化節(jié)點間、節(jié)點到圖的錯誤傳播貢獻度,并根據(jù)數(shù)據(jù)流和控制流分別形成語義描述,形成對數(shù)據(jù)流和控制流隱性偏差錯誤傳播方式的精準表達。

        c)通過故障注入驗證了模型的可用性。實驗結果表明,與錯誤傳播分析模型Trident相比,本文方法的平均絕對誤差減少了0.258;與SDCTune相比,本文方法的平均絕對誤差減少了0.037;與GATPS相比,本文方法的平均絕對誤差減少了0.064。在時間代價方面,與故障注入方法相比,本文方法的時間成本節(jié)省了95.9%;與Trident相比,本文方法的時間成本節(jié)省了84.2%。

        1 相關工作

        1.1 故障注入方法

        故障注入通過統(tǒng)計大量隨機注入的結果來計算程序的脆弱性指數(shù)[6~8]。每次故障注入中,隨機選擇一條指令,翻轉該指令的目的操作數(shù),執(zhí)行該程序至結束并對后果類型進行分類。故障注入方法存在高度耗時的問題,一些研究工作壓縮了故障注入空間,通過減少故障注入指令的數(shù)量來降低故障注入成本[9]。這種方法僅保留了對代表性指令的故障注入,然而對于規(guī)模較大的程序而言,其時間代價仍然是不可接受的。文獻[10]提出一種基于機器學習的方法對故障注入進行改進,提高了對于程序崩潰的預測準確性。

        1.2 錯誤傳播分析模型

        一些研究提出了錯誤傳播分析模型來評估程序的脆弱性指數(shù)。Li等人[11]提出了Trident模型,分別在靜態(tài)指令級、控制流級、內存級對程序進行建模,迭代計算了錯誤從發(fā)生位置到程序輸出的傳播概率,據(jù)此來估計程序的脆弱性指數(shù)。Trident采用了指令運行的平均數(shù)值來估計傳播概率,而這與實際運行的情況有較大差距,導致脆弱性指數(shù)的預測準確率較低。針對Trident不兼容GPU程序的問題,Anwer等人[12]提出了GPU-Trident,對高度并行的GPU程序進行錯誤傳播建模。Lu等人[13]指出尋址操作和比較操作會影響程序的隱性偏差概率,以此為依據(jù)提出了SDCTune模型。將指令按照是否包含尋址操作和比較操作分成組,并在每組中提出了回歸模型來計算每條指令的脆弱性指數(shù),再評估程序整體的脆弱性指數(shù)。SDCTune考慮的程序特征較少,回歸模型只考慮了將數(shù)據(jù)寬度作為輸入,因而導致了脆弱性指數(shù)預測的偏差。

        另一類研究通過排除其他的后果類型來逼近脆弱性指數(shù)。程序脆弱性因子(program vulnerability factor,PVF)通過排除導致屏蔽的故障位來計算脆弱性指數(shù)[14],然而排除后的故障位中依然包含了導致崩潰、隱性偏差和掛起的故障位。Fang等人[15]提出了ePVF模型,在PVF的基礎上排除了導致程序崩潰的故障位,降低了程序脆弱性指數(shù)范圍的誤差。然而由于一些導致屏蔽和隱性偏差的故障位難以區(qū)分,所得到的脆弱性指數(shù)與實際的脆弱性指數(shù)有較大差距[11]。

        1.3 圖神經(jīng)網(wǎng)絡

        圖神經(jīng)網(wǎng)絡通過自動學習結構特征和適應下游的隱性偏差預測任務為脆弱性指數(shù)的計算提供了一種新的解決思路。圖神經(jīng)網(wǎng)絡可以提供端到端的學習方式,使得模型直接從故障注入的結果中學習到錯誤傳播的模型,并應用于下游的脆弱性指數(shù)預測任務,無須人工提取特征或錯誤傳播規(guī)律。為了編碼圖結構信息,消息傳遞神經(jīng)網(wǎng)絡(message passing neural network,MPNN)作為一種通用的框架來進行節(jié)點間的交互[16]。Ye等人[17]提出了Poem模型,通過多層感知機(multi layer perceptron)進行消息傳遞。Jiao等人[18]使用GraphSage進行消息傳遞和節(jié)點更新,對指令的脆弱性進行預測。Ma等人[19]將圖注意力網(wǎng)絡應用于量化鄰居節(jié)點的差異化影響,捕獲與錯誤傳播相關的隱性結構特征。然而,消息傳遞神經(jīng)網(wǎng)絡的每個節(jié)點和層對輸出的圖嵌入特征表示往往具有相同的貢獻,缺乏對圖特征信息的有效利用。為了解決該問題,一種直接的方法是利用自注意力機制(self-attention)來衡量每個輸入部分對輸出的重要性并賦予不同的權重。圖注意力網(wǎng)絡(graph attention network,GAT) 將自注意力機制引入到節(jié)點嵌入表示學習任務中[20],為鄰居的不同節(jié)點分配不同的重要性。該機制為學習錯誤傳播中依賴關系的不同重要性提供了可能。

        循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN)、長短期記憶神經(jīng)網(wǎng)絡(long short-term memory,LSTM)能夠提取復雜序列中的順序信息,因此廣泛用于處理序列的預測任務中。文獻[21]將自注意力機制與長短期記憶神經(jīng)網(wǎng)絡融合,提高了程序間長距離依賴關系的學習。文獻[22]應用循環(huán)神經(jīng)網(wǎng)絡挖掘程序的深層順序特征,學習程序的結構信息。

        2 模型

        EpicGNN的工作流程如圖1所示。首先使用LLVM(low level virtual machine)編譯器將程序轉換為中間表示(inter-mediate representation,IR),并據(jù)此構造程序的動態(tài)依賴圖。從中提取圖的鄰接矩陣及節(jié)點特征作為結構化圖自注意力模型的輸入,然后通過結構化圖自注意力模型得到程序的向量表示。最后,使用多層感知機神經(jīng)網(wǎng)絡將該表示線性回歸轉換為預測值。

        3 實驗設置

        本文的所有實驗均在Windows x86,Intel Core i7-6700 CPU,NVIDIA GT 730顯卡,內存16 GB的系統(tǒng)上進行。本文的圖注意力網(wǎng)絡及回歸預測使用PyTorch 3.7及PyTorch Geome-tric 1.6框架實現(xiàn)。本文公開了實驗數(shù)據(jù)及代碼https://github.com/huang429/structureGAT。

        3.1 測試程序

        測試程序包含spec2000、spec2006和rodinia測試集。其中spec2000和spec2006是由標準性能評價機構開發(fā)的用于評測CPU性能的基準程序測試組,rodinia是用于異構計算的程序測試套組。為了方便比較,本文使用與Trident、SDCTune模型相同的程序作為測試程序,即spec2000-mcf、spec2006-libquantum、rodinia-nw、rodinia-pathfinder、rodinia-nn、rodinia-particlefilter、rodinia-lud、blackscholes。程序的詳細描述如表2所示。

        3.2 實驗參數(shù)設置

        隱含層維度dh設置為64,節(jié)點級多頭注意力參數(shù)M設置為2,圖級多頭注意力參數(shù)M設置為2,訓練的batch size為16,注意力層數(shù)

        Euclid Math OneLAp設置為5。所有的神經(jīng)網(wǎng)絡模型由SGD優(yōu)化器優(yōu)化,學習率設置為0.001。非線性激活函數(shù)設置為ELU(exponential linear unit)函數(shù)[23]。待優(yōu)化的權重參數(shù)(weight)通過Glorot初始化方法初始化[24],權重偏置(bias)初始化為零向量。使用L2正則化懲罰避免過擬合問題,其中衰減因子設置為1.0。對神經(jīng)網(wǎng)絡進行了8 000輪次的訓練。

        3.3 故障注入框架

        本文在LLVM框架[25]下進行故障注入實驗和提取動態(tài)依賴圖[26]。使用開源故障注入器LLFI進行故障注入[27],在LLVM中間表示級別對程序執(zhí)行故障注入。對測試集程序在LLFI中配置并執(zhí)行單位翻轉,每次運行只注入一個錯誤,在運行結束后統(tǒng)計注入結果。本文對應用程序隨機選擇的兩個不同輸入分別進行了故障注入。對程序的每個輸入分別進行3 000次注入。在95%的置信度下,故障注入獲取的脆弱性指數(shù)的誤差率為1.48%。注入結果及真空脆弱性指數(shù)如表3所示。

        3.4 基線模型

        本文的基線模型包括GATPS、Trident和SDCTune。GATPS模型使用異構注意力網(wǎng)絡表示指令間的讀寫關系、尋址關系、邏輯關系和分支關系,捕獲程序中與錯誤傳播相關的隱性特征[18];Trident模型基于對程序中錯誤傳播的經(jīng)驗觀察,分別在靜態(tài)指令級、控制流級和內存級對程序進行建模,捕獲了以上三種級別下的錯誤傳播,而無須故障注入[28];SDCTune是基于程序的動態(tài)和靜態(tài)特性對指令進行分類,手動提取特征,由線性回歸得到每類指令的啟發(fā)式方法。本文復現(xiàn)了上述三種模型,并使用相同的程序進行了測試。具體將會在第4章中介紹。

        3.5 評價指標

        使用平均絕對誤差來評價模型的結果,即模型預測值與樣本真實值之間距離的平均值,如2.3節(jié)中的描述。選用這一損失函數(shù)是因為其受離群點的影響較小,擬合直線能夠較好地表示正常數(shù)據(jù)的分布情況。

        4 實驗結果

        為了評估模型的預測結果,本文首先進行了故障注入實驗,以確定真實的脆弱性指數(shù)。本文使用3.3節(jié)描述的故障注入設置進行故障注入實驗。

        4.1 與基線模型的比較

        采用相同的數(shù)據(jù)集分別在GATPS、Trident和SDCTune上進行了測試,結果如表3所示。實驗結果表明,以故障注入方法為基準,EpicGNN的平均絕對誤差為0.067,GATPS的平均絕對誤差為0.131,Trident的平均絕對誤差為0.325,SDCTune的平均絕對誤差為0.104。EpicGNN與三種基線模型相比,平均絕對誤差分別降低了0.064、0.258及0.037。本文取GATPS對于指令脆弱性指數(shù)預測結果的平均值作為程序整體的脆弱性指數(shù),因此,忽略了不同指令對于導致程序發(fā)生隱形偏差的影響度。Trident對于程序脆弱性指數(shù)的預測往往偏低,其采用了運行時刻的平均數(shù)值而不是每次運行單獨的數(shù)值進行概率計算,導致模型與實際運行狀態(tài)發(fā)生了較大偏離。SDCTune對于程序脆弱性指數(shù)的預測往往偏高,主要原因是其對于尋址指令和比較指令脆弱性指數(shù)的過高估計,且該模型僅考慮數(shù)據(jù)寬度的影響,導致大多數(shù)同類型指令的脆弱性指數(shù)相同,并未區(qū)分不同指令的影響度,導致模型與真實情況有較大偏離。

        4.2 注意力系數(shù)效果分析

        通過展示節(jié)點級別的注意力系數(shù)來說明本文模型對節(jié)點間錯誤傳播的量化能力。圖4展示了libquantum程序節(jié)點間的注意力系數(shù),即式(3)中的∝(l+1,m)eij。節(jié)點之間的連線表示不同類型的邊,藍色代表節(jié)點間的控制依賴關系,紅色代表節(jié)點間的數(shù)據(jù)依賴關系(見電子版)。邊的粗細表示注意力系數(shù)的大小。孤立點表示該節(jié)點與其鄰居節(jié)點間的注意力系數(shù)為0。從圖中可以看出邊的粗細程度有較大差異,說明學到的注意力系數(shù)在數(shù)值上有較大差異,EpicGNN能夠較好地學習到不同節(jié)點的影響力分數(shù),區(qū)分節(jié)點不同鄰居的重要性。

        4.3 時間代價分析

        使用以上程序執(zhí)行EpicGNN需要的時間為7~116 min,故障注入方法需要的時間為45 min~90 h。EpicGNN所需要的時間成本相對故障注入方法平均減少了95.9%,相對GATPS平均增加了32.1%,相對Trident平均減少了84.2%,相對SDCTune增加了77.2%。GAPTS模型只針對節(jié)點級注意力更新節(jié)點信息,不需要聚合為圖向量,因此節(jié)省了讀出層的時間耗費。Trident執(zhí)行動態(tài)分析,需要執(zhí)行程序,時間代價主要花費在對程序不同級別的建模上。SDCTune的時間代價為四種模型中最少的,主要原因是該模型是靜態(tài)的,提取特征的方法不會隨著程序或者輸入的變化而變化,不需要執(zhí)行程序,所以節(jié)省了時間成本。

        EpicGNN各部分花費的時間代價如圖5所示。構建動態(tài)依賴圖的過程需要執(zhí)行程序,耗費時間由程序輸入和規(guī)模共同決定。大部分程序主要的時間代價為圖神經(jīng)網(wǎng)絡的訓練,由其隱含層的數(shù)量、樣本數(shù)量決定。只有particlefilter程序構建動態(tài)依賴圖的時間相比圖神經(jīng)網(wǎng)絡的訓練時間較長,主要原因是該程序需要重復進行搜索、決策、采樣的過程。

        4.4 神經(jīng)網(wǎng)絡參數(shù)影響分析

        為了驗證圖注意力網(wǎng)絡隱含層維度的效果,即式(3)中的dh,本文在訓練期間設置隱含層維度分別為{16,32,64,128}。為了保證公平比較,其他超參數(shù)與3.2節(jié)中說明的超參數(shù)保持一致。不同隱含層維度的交叉驗證結果如圖6所示。從圖中可以看出,隱含層維度與模型的平均絕對誤差成負相關,同時隨著隱含層維度增加,神經(jīng)網(wǎng)絡的訓練時間會增加。在隱含層維度增加到128時,測試程序的平均絕對誤差相比隱含層維度為32時平均減少了63.5%,所需的時間成本平均增加了93.4%,如圖7所示。當隱含層維度為64時,模型的時間成本較低,模型的誤差也較低,因而隱含層維度為64是綜合考慮時間成本和誤差的較合理設置。

        為了研究多頭數(shù)量對預測結果的影響,本文為節(jié)點級自注意力設置了不同數(shù)量的多頭策略來驗證多頭結構的效果。具體地,設置注意力頭數(shù)分別為{1,2,4,8}。實驗結果如圖8所示。大多數(shù)數(shù)據(jù)集的誤差不會隨著多頭數(shù)量的增加而顯著降低。同時,在大多數(shù)測試程序上,注意力頭數(shù)與模型訓練時間成正比,如圖9所示。然而,在libquantum和particlefilter上,M=8時相比M=4時的時間成本減少,這是由于較大的M在訓練過程中更容易出現(xiàn)過擬合現(xiàn)象。此外,M=4時,particlefilter、mcf、libquantum及blackscholes程序模型訓練的時間代價相對于M=2時平均增加了178%,而平均絕對誤差僅平均減少了0.56%。因此,本文認為M=2時,EpicGNN能在較低的時間成本下取得較好的誤差效果。

        4.5 訓練集分析

        實驗結果已證明在訓練集和測試集為同一程序的不同輸入下EpicGNN具備較好的性能,本節(jié)研究訓練集對模型性能的影響,使用不同程序作為訓練集和測試集來進行預測實驗。為了方便比較,本文設置訓練集大小為n-1,測試集大小為1,n表示參與測試的程序數(shù)量。這樣設置是為了使模型經(jīng)過足夠樣本的訓練能夠學習到豐富的程序語義及潛在的錯誤傳播規(guī)律。表4展示預測的結果,EpicGNN具有相對良好的泛化性能,平均絕對誤差達到了0.05,平均絕對誤差相比于同一程序的不同輸入做訓練集和測試集減少了0.017。其主要原因是模型在經(jīng)過較多樣本訓練后的泛化效果更好。而使用同一程序的不同輸入作為訓練集和測試集,模型訓練的樣本較小,學習到的樣本及錯誤傳播規(guī)律較少,平均絕對誤差相對較高。圖10展示了本節(jié)實驗的時間成本,橫軸表示測試集對應的程序。從圖10中觀察到,對于樣本較少的程序,如rodinia-nn,rodinia-lud,花費的時間成本較小,即時間成本與圖規(guī)模成正比。

        使用不同程序作為訓練集和測試集得到的平均絕對誤差相比于用同一程序的不同輸入作為訓練集和測試集較低,并且該種方式在目標程序未知時,可以對圖神經(jīng)網(wǎng)絡進行離線訓練。也就是說,該種方式訓練的時間成本可以均攤到每次測試中。因此,使用不同程序作為訓練集和測試集是綜合考慮時間成本及平均絕對誤差的較合理方式。

        5 結束語

        本文提出了一種基于圖神經(jīng)網(wǎng)絡評估程序脆弱性指數(shù)的方法EpicGNN。EpicGNN無須故障注入,實現(xiàn)了端到端的錯誤傳播模式學習。本文使用了結構化圖自注意力模型捕獲程序中指令間的依賴關系,學習程序中潛在的錯誤傳播,最終得到程序的特征向量表示并使用多層感知機將該向量轉換為程序脆弱性指數(shù)。實驗結果表明,EpicGNN比傳統(tǒng)錯誤傳播模型的平均絕對誤差減少了0.037~0.258,比圖注意力網(wǎng)絡模型GATPS的平均絕對誤差減少了0.064,比故障注入方法的時間成本節(jié)省了95.9%,對未見過的圖仍具有良好的泛化性能。

        未來將利用計算出的程序脆弱性指數(shù),根據(jù)不同場景下的需求研究軟錯誤防護機制及程序保護機制,以提高軟件的可靠性。

        參考文獻:

        [1]Andrew M K,Michael J W.The impact of terrestrial radiation on FPGAs in data centers[J].ACM Trans on Reconfigurable Technology and Systems,2021,15(2):article No.12.

        [2]Dixit H D,Pendharkar S,Beadon M,et al.Silent data corruptions at scale[EB/OL].(2021-02-22).https://arxiv.org/abs/2102.11245.

        [3]Kalra C,Previlon F,Rubin N,et al.Armorall:compiler-based resi-lience targeting GPU applications[J].ACM Trans on Architecture and Code Optimization,2020,17(2):1-24.

        [4]Hsueh M C,Tsai T K,Iyer R K.Fault injection techniques and tools[J].Computer,1997,30(4):75-82.

        [5]Agrawal H,Horgan J R.Dynamic program slicing[C]//Proc of ACM SIGPLAN Conference on Programming Language Design and Implementation.New York:ACM Press,1990:246-256.

        [6]Stott D T,F(xiàn)loering B,Kalbarczyk Z,et al.A framework for assessing dependability in distributed systems with lightweight fault injectors[C]//Proc of the 4th International Computer Performance and Dependability Symposium.Washington DC:IEEE Computer Society,2000:91.

        [7]Aidemark J,Vinter J,F(xiàn)olkesson P,et al.GOOFI:generic object-oriented fault injection tool[C]// Proc of International Conference on Dependable Systems and Networks.Washington DC:IEEE Computer Society,2001:83-88.

        [8]Carreira J,Madeira H,Silva J G.Xception:a technique for the experimental evaluation of dependability in modern computers[J].IEEE Trans on Software Engineering,1998,24(2):125-136.

        [9]Rahman M H,Shamji A,Guo Shengjian,et al.PEPPA-X:finding program test inputs to bound silent data corruption vulnerability in HPC applications[C]//Proc of International Conference for High Perfor-mance Computing,Networking,Storage and Analysis.New York:ACM Press,2021:1-13.

        [10]Palazzi L,Li Guanpeng,F(xiàn)ang Bo,et al.Improving the accuracy of IR-level fault injection[J].IEEE Trans on Dependable and Secure Computing,2022,19(1):243-258.

        [11]Li Guanpeng,Pattabiraman K,Hari S K S,et al.Modeling soft-error propagation in programs[C]//Proc of the 4th IEEE/IFIP Internatio-nal Conference on Dependable Systems and Networks.Piscataway,NJ:IEEE Press,2018:27-38.

        [12]Anwer A R,Li Guanpeng,Pattabiraman K,et al.GPU-Trident:efficient modeling of error propagation in GPU programs[C]//Proc of International Conference for High Performance Computing,Networking,Storage and Analysis.Piscataway,NJ:IEEE Press,2020:1-15.

        [13]Lu Qining,Pattabiraman K,Gupta M S,et al.SDCTune:a model for predicting the SDC proneness of an application for configurable protection[C]// Proc of International Conference on Compilers,Architecture and Synthesis for Embedded Systems.New York:ACM Press,2014:1-10.

        [14]Sridharan V,Kaeli D R.Eliminating microarchitectural dependency from architectural vulnerability[C]// Proc of the 15th IEEE International Symposium on High-Performance Computer Architecture.Pisca-taway,NJ:IEEE Press,2009:117-128.

        [15]Fang Bo,Lu Qining,Pattabiraman K,et al.ePVF:an enhanced program vulnerability factor methodology for cross-layer resilience analysis[C]//Proc of the 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.2016:168-179.

        [16]Gilmer J,Schoenholz S S,Riley P F,et al.Neural message passing for quantum chemistry[C]// Proc of the 34th International Conference on Machine Learning.2017:1263-1272.

        [17]Ye Guixin,Tang Zhanyong,Wang Huanting,et al.Deep program structure modeling through multi-relational graph-based learning[C]//Proc of ACM International Conference on Parallel Architectures and Compilation Techniques.New York:ACM Press,2020:111-123.

        [18]Jiao Jiajia,Pal D,Deng Chenhui,et al.GLAIVE:graph learning assisted instruction vulnerability estimation[C]//Proc of Design,Automation amp; Test in Europe Conference amp; Exhibition.2021:82-87.

        [19]Ma Junchi,Duan Zongtao,Tang Lei.GATPS:an attention-based graph neural network for predicting SDC-causing instructions[C]//Proc of the 39th IEEE VLSI Test Symposium.Piscataway,NJ:IEEE Press,2021:1-7.

        [20]Petar V,Guillem C,Arantxa C,et al.Graph attention networks[EB/OL].(2017-10-30).https://doi.org/10.48550/arXiv.1710.10903.

        [21]李娜.基于深度學習的軟件脆弱性檢測研究[D].北京:軍事科學院,2021.( Li Na.Research on software vulnerability detection based on deep learning[D].Beijing:Academy of Military Sciences,2021.)

        [22]肖添明,管劍波,蹇松雷,等.基于代碼屬性圖和Bi-GRU的軟件脆弱性檢測方法[J].計算機研究與發(fā)展,2021,58(8):1668-1685.( Xiao Tianming,Guan Jianbo,Jian Songlei,et al.Software vulnerability detection method based on code property graph and Bi-GRU[J].Journal of Computer Research and Development,2021,58(8):1668-1685.)

        [23]Clevert D,Unterthiner T,Hochreiter S.Fast and accurate deep network learning by exponential linear units(ELUs)[EB/OL].(2015-11-23).https://doi.org/10.48550/arXiv.1511.07289.

        [24]Glorot X,Bengio Y.Understanding the difficulty of training deep feedforward neural networks[C]//Proc of the 13th International Confe-rence on Artificial Intelligence and Statistics.2010:249-256.

        [25]Lattner C ,Adve V.LLVM:a compilation framework for lifelong program analysis amp; transformation[C]//Proc of International Symposium on Code Generation and Optimization.Washington DC:IEEE Compu-ter Society,2004:75-86.

        [26]Chalupa M.DG:a program analysis library[J].Software Impacts,2020,6:100038.

        [27]Lu Qining,F(xiàn)arahani M,Pattabiraman K,et al.LLFI:an intermediate code-level fault injection tool for hardware faults[C]//Proc of IEEE International Conference on Software Quality,Reliability and Security.Piscataway,NJ:IEEE Press,2015:11-16.

        [28]Wei Jiesheng,Thomas A,Li Guanpeng,et al.Quantifying the accuracy of high-level fault injection techniques for hardware faults[C]//Proc of the 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.Washington DC:IEEE Computer Society,2014:375-382.

        精品国产成人亚洲午夜福利| 国产一区二区三区精品免费av| 亚洲av无码国产综合专区| 伊人色综合视频一区二区三区| 亚洲 成人 无码 在线观看| 免费人人av看| 亚洲av色在线播放一区| 久久精品无码一区二区日韩av| 处破痛哭a√18成年片免费| 高潮喷水无遮挡毛片视频| 国产成人精品久久二区二区91 | 中文字幕一区二区三区久久网| 日韩欧美亚洲综合久久影院ds| 日韩AVAV天堂AV在线| 熟女少妇丰满一区二区 | 亚洲深深色噜噜狠狠爱网站| 综合图区亚洲另类偷窥| 国产片在线一区二区三区| 国产人妻熟女高跟丝袜图片| 亚洲成在人线av| 亚洲一区二区三在线播放| 日本免费一区二区三区影院| 亚洲av日韩av天堂一区二区三区| 亚洲区在线| 一区二区三区在线观看视频免费 | 又爆又大又粗又硬又黄的a片| 草莓视频在线观看无码免费| 国产黄色一区二区在线看| 亚洲乱亚洲乱妇50p| 久久AV中文一区二区三区| 成人短篇在线视频夫妻刺激自拍| 一个色综合中文字幕人妻激情视频| 饥渴的熟妇张开腿呻吟视频| 精品国产91久久综合| 在线观看的a站免费完整版| 亚洲人成人无码www影院| 亚洲成人电影在线观看精品国产| 成人在线视频自拍偷拍| 精品人妻伦一二三区久久| 天天看片视频免费观看| 被暴雨淋湿爆乳少妇正在播放|