?

深度學習在多核緩存預取中的應用研究綜述

2024-03-05 04:58張建勛喬欣雨林炳輝
計算機應用研究 2024年2期
關鍵詞:研究綜述深度學習神經網絡

張建勛 喬欣雨 林炳輝

收稿日期:2023-05-24;修回日期:2023-07-19? 基金項目:中國高校產學研自然基金資助項目(2021FNA04016)

作者簡介:張建勛(1978—),男,河北保定人,副教授,碩導,博士,CCF會員,主要研究方向為混合存儲優化(Zhangjx@tute.edu.cn);喬欣雨(1997—),女,江蘇南京人,碩士研究生,主要研究方向為軟件工程;林炳輝(1998—),男,福建泉州人,碩士研究生,主要研究方向為軟件工程.

摘? 要:當前人工智能技術應用于系統結構領域的研究前景廣闊,特別是將深度學習應用于多核架構的數據預取研究已經成為國內外的研究熱點。針對基于深度學習的緩存預取任務進行了研究,形式化地定義了深度學習緩存預取模型。在介紹當前常見的多核緩存架構和預取技術的基礎上,全面分析了現有基于深度學習的典型緩存預取器的設計思路。深度學習神經網絡在多核緩存預取領域的應用主要采用了深度神經網絡、循環神經網絡、長短期記憶網絡和注意力機制等機器學習方法,綜合對比分析現有基于深度學習的數據預取神經網絡模型后發現,基于深度學習的多核緩存預取技術在計算成本、模型優化和實用性等方面還存在著局限性,未來在自適應預取模型以及神經網絡預取模型的實用性方面還有很大的研究探索空間和發展前景。

關鍵詞:深度學習;數據預??;多核架構;緩存優化;神經網絡;研究綜述

中圖分類號:TP333;TP181??? 文獻標志碼:A

文章編號:1001-3695(2024)02-003-0341-07

doi:10.19734/j.issn.1001-3695.2023.05.0231

Review of deep learning-based multi-core cache prefetching research

Zhang Jianxun,Qiao Xinyu,Lin Binghui

(School of Information Technology Engineering,Tianjin University of Technology and Education,Tianjin 300222,China)

Abstract:The current research on the application of artificial intelligence techniques to the field of system architecture is promising,especially the research on applying deep learning to data prefetching in multicore architectures has become a research hotspot at home and abroad.This work studied the cache prefetching task based on deep learning and defined the deep learning cache prefetch model formally.Based on the introduction of current common multi-core cache architectures and prefetching techniques,this paper comprehensively analyzed the design ideas of existing typical cache prefetchers based on deep learning.The application of deep learning neural network in the field of multicore cache prefetching mainly adopts machine learning methods such as deep neural network,recurrent neural network,long and short-term memory network and attention mechanism.A comprehensive comparative analysis of existing deep learning-based data prefetching hierarchical neural models reveals that deep learning-based multicore cache prefetching techniques still have certain computational cost,model optimization,and practicality.In the future,there is still much room for research exploration and development prospect in adaptive prefetching models and the practicality of neural network prefetching models.

Key words:deep learning;data prefetching;multi-core architecture;cache optimization;neural network;research review

近年來,隨著深度神經網絡的發展,深度學習為系統結構研究領域中的硬件預測問題提供了新的研究方向和機會,例如分支預測和緩存替換等。然而,深度學習能否用于數據預取的研究是一個值得深入思考的問題。當前,深度學習解決數據預取問題主要面臨著兩個挑戰。

挑戰一是在數據預取模型中,輸入通常是計算機程序訪問內存的指令地址,輸出則是對應指令地址所需的數據,由于數據預取中需要根據當前指令地址預測未來可能需要訪問的數據地址,所以其輸入和輸出空間通常非常龐大。例如對于一個具有64位地址空間的地址相關預取來說,其輸入和輸出若是單個的地址值,輸入和輸出的個數則會達到千萬級別,這是現有用于圖像分類或語音識別的深度學習模型所不能處理的,因此深度學習用于數據預取存在著類別爆炸問題。挑戰二是數據預取屬于實時行為,一方面,深度學習的訓練時間受限,基于深度學習的預取器沒有明顯的類別標簽用于指導神經網絡學習,無法事先通過獲取具體的標簽來訓練模型,例如對于一個內存訪問地址m,數據預取器可以學習預測m后續的任何地址,沒有明確哪個地址標簽可以指導深度學習模型的訓練,因此深度學習用于數據預取還存在類別標記問題。

為解決這些問題,已提出多種技術方案,如Hashemi等人[1]將預取作為一個分類問題,并使用LSTM[2]作為預取模型,但該方案只關注了增量或步長相關性,并不能將其涵蓋為解決所有相關性問題,且由于模型空間大小有限,只能在空間區域內學習delta增量。

由于現有的神經網絡模型受到上述兩個問題的困擾,其研究目標均是搭建一種能夠學習增量和地址相關性的神經網絡模型,然后利用數據預取的獨有特性,建立一種新的神經網絡結構來解決這兩個問題。本文對常見的基于深度學習的多核緩存預取神經網絡模型進行了對比分析與研究,對深度學習用于緩存預取的問題進行了梳理,并指出了未來的發展方向。

1? 多核緩存架構及其預取技術

本章主要描述了多核緩存的架構,介紹了多核緩存的預取技術,重點建立了基于深度學習的緩存預取模型。

1.1? 多核緩存架構

現代的多核處理器主要采用共享存儲結構,傳統的存儲結構可分為一致性內存訪問結構(uniform memory access,UMA)和非一致性內存訪問結構(non uniform memory access,NUMA)。一致性存取結構是指所有的物理存儲器被均勻的共享,每個處理器訪問內存的時間是一致的。非一致性存取結構是指每個處理核有本地存儲和遠端存儲,其存儲訪問時間不同,訪問本地存儲的速度遠遠高于訪問遠端存儲的速度,如圖1[3]所示。

通常,處理器存儲架構一般采用多級存儲層次結構,如圖2[4]所示。通常多核系統中都會加入兩級以上的緩存,用于平衡處理器速度和底層存儲速度之間的差異。片上多核緩存的存儲架構主要有私有緩存、共享緩存和混合緩存三種結構。私有緩存通常是一級或者二級緩存,其結構和檢索過程相對較簡單,訪問延時比較小,同時由于其隔離性,各個核之間的影響比較??;但對于每個核來說,可用的緩存資源也就相對比較少,所以緩存的命中率較低。共享緩存通常為二級或者三級緩存,共享緩存允許一個核訪問全部共享的緩存,可用緩存資源比較多,所以其命中率較高;但這種結構需要所有的核都可以任意訪問所有共享緩存的數據,結構相對復雜,從共享緩存中讀寫數據也會造成較大的訪問時延?;旌暇彺娼Y合了共享和私有緩存的存儲架構,在混合緩存中,處理器會擁有自己的私有緩存,同時也與其他處理器共享一部分緩存空間,這樣可以減少緩存之間的競爭,提高命中率和性能表現[5]。通常一級緩存為各個處理核私有,并且分為指令緩存和數據緩存,其容量較小,訪問速度是整個層次化緩存存儲結構中最快的一層。二級緩存一般容量較大,訪問速度比一級緩存慢,但其可以保留更多數據。二級緩存的組織方式一般有私有和共享兩種,如圖3[5]所示,在這兩種多核緩存結構中,私有緩存只由一個核所使用,各個核之間只能通過共享的內存或者專用的核間通信通道相聯系;而共享緩存可以被多個核共享使用,緩存中所有的數據都可以被共享的多個核訪問和使用。三級緩存一般為共享緩存,即為多個核所共享,其容量相比于二級緩存更大,訪問速度較慢[6]。

隨著緩存規模的不斷增大,其平均訪存時延也變得很大,因此提高共享緩存的命中率,減少遠端的內存數據請求訪問,在一定程度上能夠提高多核處理器的性能,這也是多核緩存數據預取技術的根本目的。

1.2? 多核緩存預取技術

數據預取主要是為了屏蔽緩存缺失而導致的數據訪問延遲,從而彌補處理器和內存之間的性能差距。通過硬件或軟件的支持,數據預取使數據在被請求之前能夠更加接近處理器。近年來提出了多項多核緩存預取技術,通過利用多核架構來減少數據訪問延遲。但是,多線程和多核處理器架構的出現為設計有效的預取策略帶來了新的機遇和挑戰。挑戰之一就是多個計算內核在共享內存帶寬的同時,競相獲取常規數據和預取數據。對于單核處理器而言,主存只接受來自一個內核的預取請求;而在多核處理器中,不僅需要處理常規的數據訪問請求,還要處理來自多個內核的預取請求,因此大量請求會給主存帶來更大的壓力[7]。挑戰之二就是緩存一致性問題。多核處理器訪問主存,主存由多核共享,因此在內存層次結構的某個級別上必須解決對內存的沖突訪問?,F有多核處理器中的緩存一致性通常通過基于目錄的方法或偵聽緩存訪問來解決。

Byna等人[8]針對多核處理器的預取機制進行了分類,主要針對硬件預取、軟件預取、預測和基于預執行的預取策略等方面進行了全面的概括與研究。數據預取技術主要涉及五個基本問題,即預取什么數據、何時預取數據、從哪里預取數據、預取目標是什么以及如何啟動預取。在錯誤的時間預取錯誤的數據或正確的數據不僅沒有幫助,反而會損害整體性能[9]。

a)預取什么數據。預測即將要預取的數據是預取最重要的要求,根據預取數據的實現位置和各種技術預測預取數據進行分類,可分為:(a)硬件控制策略,預取在硬件中實現,各種方法支持硬件控制的預取,預取的所有組件都在處理器內實現,不需要任何用戶干擾;(b)軟件控制策略,開發人員或編譯器能夠控制將預取指令插入程序的操作,軟件控制的預取可以使用編譯器控制的預處理指令或在源代碼中插入預取函數調用,或者基于二進制執行后分析插入的預取指令[10];(c)混合硬件/軟件控制策略,該控制策略在具有多線程支持的處理器上的使用越來越常見,在這些處理器上需要硬件的支持來運行專門用于預取數據的幫助線程,需要軟件支持來與實際計算線程同步[11~15]。

b)何時預取數據。發出預取指令的時間對預取的總體性能有很大影響。預取數據應在發生原始緩存缺失之前到達其目標。及時預取的效率取決于下一次緩存缺失發生的時間和預測未來訪問的開銷與預取數據的開銷之和。如果總開銷超過下一次高速緩存缺失的時間,則調整預取距離可以避免延遲預取。

c)從哪里預取數據。內存層次結構包含多個級別,包括緩存、主內存、輔助存儲和第三級存儲。數據預取可以在不同級別的存儲器層次結構中實現。在多核處理器中,存儲層次結構包含每個內核專用的本地緩存和多個內核共享的緩存。

d)預取目標是什么。預取目標越接近CPU,性能上的優勢就越大。單獨的預取緩存可以是處理器內核專用的,也可以由多個內核共享。預取數據的最佳目標是私有緩存,但由于私有緩存的容量小,緩存污染無可避免。所以在多核處理器中,預取目標各不相同,每個內核都可以將數據預取到其私有緩存或其專用預取緩存。

e)如何啟動預取。預取指令可以由需要數據的處理器或提供這種服務的處理器發出。第一種方法稱為客戶端預取,處理器在執行程序時,根據程序執行的特點或者歷史訪問模式等進行主動預取。第二種稱為服務器預取,是指處理器在訪問內存時,根據內存地址的連續性和訪問模式等,主動推送可能需要的數據到緩存中。

1.3? 基于深度學習的緩存預取模型

基于深度學習的緩存預取是指在需要訪問某個數據時,經過深度神經網絡預測提前將數據從存儲介質中預先加載到緩存中,以加快數據訪問速度,對數據進行緩存預取也可以看做是一種語義關系抽取的過程[16]。具體地說,通過相關算法從數據中抽取出語義對之間的潛在關系,并將這些信息預先加載到緩存中,在需要分析數據時通過直接從緩存中獲取已經抽取好的語義關系三元組〈e1,r,e2〉[17],就無須再次訪問數據,從而大大提高了處理效率和速度。

對于語義關系r的抽取過程,可以看做是基于深度學習的緩存預取的輸入向量表示,向量主要由上下文狀態向量與地址向量兩部分組成。對于上下文狀態向量可以描述為Sen=[w1,w2,…,wn],其中wn表示第n個上下文狀態。對于每個上下文狀態wn,根據初始化結果可以得到其相應的上下文狀態向量W=[v1,v2,…,vm],這樣可以得到一個上下文狀態向量矩陣,如式(1)所示。

Sen=v11v12…v1m

v21v22…v2m

vn1vn2…vnmn×m(1)

根據語義關系抽取的特點,可以根據上下文之間的距離來提取地址向量。其中wi與wj為兩個上下文狀態,則對于第k個上下文狀態wk,其地址可以表示為

Pos=[Pos1,Pos2]=[|Poswk-Poswi|,|Poswk-Poswj|](2)

將n個上下文狀態與式(2)融合地址特征,則得到如式(3)所示的特征向量。

Sen=v11v12…v1mpos111pos112…pos11kpos211pos212…pos21k

v21v22…v2mpos121pos122…pos12kpos221pos221…pos22k

vn1vn2…vnmpos1n1pos1n2…pos1nkpos2n1pos2n2…pos2nkn×(m+2k)(3)

其中:m為上下文狀態向量特征的長度;k為上下文狀態的地址向量的特征長度。通過以上方法可以得到相應的基于深度學習的緩存預取的輸入向量。在確定深度神經網絡輸入特征向量的基礎上,不同的基于深度學習的預取器設計采用不同的神經網絡結構和不同的注意力機制,詳見第2章。

1.4? 緩存預取評測指標

在緩存預取中,常用的評估指標有覆蓋率、準確率和及時性三個。覆蓋率是指預取算法預測到的數據占總訪問數據量的比例;準確率是指預取算法預測正確的數據占預測數據總量的比例;及時性是指預取算法預測并加載數據的速度。本文以三個評估指標為基準,對比分析多種基于深度學習的緩存數據預取算法,從而衡量不同預取器設計算法的優劣。

2? 基于深度學習的多核緩存預取技術

基于深度學習的緩存預取策略是一種利用深度學習模型來預測未來的訪問模式,并根據預測結果進行緩存優化和預取操作的方法,以此提高緩存命中率,降低延遲,提升存儲系統的性能和效率。目前,根據神經網絡的模型劃分,基于深度學習的緩存預取策略主要包括以下幾類。

2.1? 考慮程序語義的神經網絡緩存預取

由于傳統的緩存預取方法主要基于數據的局部性原理,但基于神經網絡的數據預取通常更加復雜,不僅取決于數據的物理地址,還受到神經網絡的結構和語義特征的影響。通過神經網絡的語義信息能夠根據神經網絡計算的結構和操作類型,預測內存訪問模式,并將可能需要的數據提前加載到緩存中,以減少數據訪問延遲和提高計算效率。

數據預取中,考慮程序中的上下文語義信息的主要目的在于發現內存訪問之間存在的某種關系或模式,其邏輯假設是重復出現的語義關系很有可能會有相似的控制流和時空數據訪問流。因此,通過跟蹤主存訪問之間的上下文信息可以用于區分語義局部性[13]。

語義局部性的概念最初由Peled等人[18]于2015年提出,是數據局部性的一種高級抽象,主要針對當前的非規則訪存行為利用程序數據結構或遍歷算法固有的語義特征來標識內存訪問之間的關系,并提出一個基于強化學習的框架來學習程序的上下文語義信息用以指導數據預取。

然而,通過遍歷上下文的屬性和程序狀態,無法區分屬性和狀態是否有用。為此,Peled等人[19]又將所提出的語義局部性概念應用于深度學習,提出了一個基于程序上下文的神經網絡預取器,通過提高語義相關的準確性來識別多種內存訪問模式,將機器和程序狀態元素作為輸入,輸入到神經網絡工作中來學習程序的算法屬性,神經網絡在運行時被訓練,以此來預測基于相關上下文地址關聯到未來內存訪問模式。

在前期工作的基礎上, Peled等人[20]于2019年使用全連接的前饋神經網絡用于數據預取,將數據預取作為回歸問題來訓練神經網絡,提出一種基于上下文語義信息的神經網絡(NN)預取設計模型,將程序和機器上下文信息與內存訪問模式通過不同關聯策略[21~23]相關聯,使用在線訓練來識別代碼所表現出的獨特訪問模式并進行動態調整,以此來動態適應不同的內存訪問模式。

Peled等人所提出的預取神經網絡模型展示了通過預測數據并將其預取到緩存中來提高系統性能具有較大的潛力,且該模型可以應用于任何內存訪問模式,而不限于特定的應用程序或工作負載。然而,該模型在程序的數據結構發生變化時,其NN預取器需要重建網絡權值來反映這個變化,而每個權值又表示多個并行的元素,這個改變過程會打破現有的預測并需要較長時間來恢復。同時,該神經網絡模型是在假設能耗和芯片面積能夠進一步優化的基礎上開展,現有的實現能效耗費仍然很高,需要進一步的研究來探索其可擴展性及其對系統成本和復雜性的影響。

同時,基于語義局部性的概念,Ganfure等人[24]提出了一種新型的受深度神經網絡啟發的上下文感知預取方法Deep Prefetcher,將訪問模式預測作為一個分類問題,通過使用分布式表示法捕獲塊訪問模式的上下文信息,并利用深度學習模型進行上下文感知數據預取。Deep Prefetcher通過兩個連續的讀取請求之間的差異生成一個新的學習特征作為輸入,通過模型將特征信息轉換為一個新的富含上下文信息的嵌入式表示,通過深度學習算法捕捉訓練數據中額外的語義信息,以此減少了訓練數據中的變異程度,降低學習的復雜性,最后輸出最有可能的邏輯塊地址序列。然而該模型是根據邏輯塊地址訪問模式序列中得到的學習特征進行訓練的,無法根據具體提出請求的應用程序獲取數據,因此,未來將深入研究應用深度強化學習進行預取,考慮能夠捕獲高層次的應用環境以提高預取性能是改進的舉措之一。

Bera等人[25]設計了一種通過進程和內存子系統交互來自主學習預取的框架Pythia,將數據預取表述為一個概率預測問題,并將其輸出視為一個概率分布,通過強化學習(RL)[26]對多程序特征和系統級反饋信息進行預取。對于每一個新的請求,Pythia都會提取一組程序特征信息,使用該特征狀態信息,根據其先驗經驗進行預取操作。對于每個預取操作,Pythia都會收到一個數字獎勵,該獎勵用于增強程序上下文信息和預取決策之間的相關性,以便生成高準確度、高及時性的系統感知的預取請求。同時該框架還能夠將任何類型的系統級反饋信息納入其決策中,然而該框架是基于硬件實現的預取框架,會導致芯片面積增加,功耗增加等問題,且該框架所使用的深度強化學習算法需要大量的計算資源和時間,對于多核緩存預取的應用來說存在一定的限制,因此可擴展性和實用性還需要進一步探索和改進。

2.2? 基于循環神經網絡的緩存預取

為了應對神經網絡中復雜的數據訪問模式,可以利用神經網絡的語義信息來預測內存訪問模式,從而實現更智能的緩存預取,因此基于循環神經網絡(recurrent neural network,RNN)[27]的緩存預取方法被提出。循環神經網絡具有輸入信號、輸出信號和權重,但內部有幾個隱藏層,這些隱藏層不僅受到當前輸入的影響,而且周期性連接以記住以前的輸入信息。圖4[28]是RNN的一個單元。為了計算出隱藏狀態的當前時間t,使用前一個時間t-1的隱藏狀態ht-1和輸入xt計算出的ht值被發送到輸出層,成為再次計算ht+1的輸入值。

循環神經網絡是用于學習時間序列數據的強大工具,其用于緩存預取主要是利用RNN直接學習和預測主存的訪問模式,通過跟蹤主存訪問之間的上下文信息來發現內存訪問之間存在的某種關系或模式,這些上下文信息可以包括神經網絡的輸入數據、中間計算結果以及控制流信息等,將緩存預取問題轉換為一個序列預測問題。通過分析這些上下文信息,可以在訓練階段建立一個循環神經網絡模型,使用該模型進行內存訪問模式的預測,并將可能需要的數據提前加載到緩存中。

在預測階段,循環神經網絡模型可以根據當前的上下文信息預測下一個內存訪問的位置和數據需求。然后,根據這些預測結果,提前將可能需要的數據加載到緩存中,以供后續的計算使用。通過這種方式,循環神經網絡的緩存預取方法能夠更好地適應神經網絡的復雜性和多樣化的數據訪問模式,提高計算效率并降低數據訪問延遲。這種方法對于處理復雜的神經網絡任務和大規模數據集具有重要意義,可以提高計算效率并加速神經網絡的訓練和推斷過程。

Zhang等人[29]提出一種基于RNN的偏移預取器(RAOP)框架,主要應用RNN來增強傳統的偏移預取器,不僅在請求發生時產生預取,還能夠預測地址用于數據預取。該框架由基于RNN的預測器和增強偏移預取模塊兩部分組成。通過利用RNN預測的接入作為時間參考,預測器在虛擬地址(VA)空間[30]中采用壓縮LSTM結構進行建模,對于每個應用程序都訓練一個預測器模型,在物理地址(PA)空間上進行預取,并將最近可能訪問的緩存行預取到LLC中,針對LLC緩存實現了一個最佳偏移(best-offset,BO)預取器[31]。RAOP通過對當前地址和RNN預測地址執行偏移預取來提高預取性能。

由于RNN對于長序列處理問題存在梯度消失和爆炸問題,所以使用LSTM[32]作為預取預測器的主要結構,通過內存訪問trace的偏移量來訓練LSTM模型,并試圖預測給定的前一個偏移序列的后續偏移量。將偏移預測問題看做是一個分類問題,通過將詞匯表編碼為二進制來壓縮輸出和輸入維度,實現壓縮模型的壓縮。

RAOP通過使用循環神經網絡自適應地學習并預測未來的數據訪問模式,相比于傳統的預取算法,能夠更準確地預測未來數據的訪問順序,提高緩存的命中率;通過偏移信息考慮不同數據之間的相關性,以更好地利用緩存空間,并通過調整循環神經網絡的參數來適應不同的數據訪問模式,因此還具有較強的通用性和自適應性。

然而,RAOP框架一定程度上對訓練模型的大小進行了壓縮,仍然需要大量的計算資源和時間來訓練RNN,增加了實現的難度和成本,即使RAOP對預取深度的數量增加通常會導致更高的覆蓋率,但僅增加深度并不總是能提高整體系統性能[33]。另一方面,如果僅考慮RAOP框架預測能力,其預取的準確率很高,但是在預取的覆蓋率、緩存命中率以及預取的有用性指標方面普遍較低,在預取性能提升方面與下一塊預取性能提升不明顯。此外,現有RAOP框架的預測基于單線程的數據訪問模式,未考慮多核平臺多個應用混合訪存模式的復雜性。

Guan等人[34]針對長期大范圍預測的需求,于2021年提出了一種將上下文無關語法(CFG)[35]和在線標記集成到RNN學習和推理中作為輸入的預取方法,通過Sequitur分層壓縮算法[36]將重復的子序列數據壓縮為CFG,并根據壓縮序列作為輸入,調用RNN模型進行預測,通過對序列進行連續有效的壓縮從而細化RNN模型。該研究是第一個已知的將序列壓縮集成到RNN學習和推理中的方法,既擴大了預測范圍,也減少了推理延遲,并通過設計高效回滾和考慮準確性的部分壓縮技術來解決模型復雜性問題。然而循環神經網絡和上下文無關語法都是相對復雜的概念和技術,將它們結合在一起可能導致更加復雜的模型和算法,增加了實現和理解的難度,特別是在處理長期依賴關系時可能使訓練變得更加困難,需要更多的計算資源和更復雜的優化策略,同時也會增加模型的開銷成本。

2.3? 基于長短期記憶網絡和注意力機制的緩存預取

在緩存預取中,深度神經網絡和循環神經網絡在捕捉長期上下文依賴關系中有所限制,尤其是對于長度可變的輸入序列,如自然語言文本或時間序列數據,由于每個樣本的長度不同,模型需要進行動態調整來適應不同的上下文大小,所以會導致緩存預取策略無法有效地利用緩存空間。為了應對神經網絡中復雜的數據訪問模式,可以利用神經網絡的語義信息來預測內存訪問模式,從而實現更智能的緩存預取。其中,長短期記憶(long short-term memory,LSTM)網絡[37]和注意力機制[38](attention mechanism)是兩個常用的技術手段。

長短期記憶是為了解決RNN的輸入變長時,當前隱藏層失去先前輸入信息的記憶這一缺點而提出的方法。為了解決這個問題,通過添加一個叫做單元狀態的值來刪除不必要的記憶,并選擇要記住的內容。圖5[28]是一個LSTM單元。LSTM由三個門來獲取隱藏狀態和單元狀態值。第一個遺忘門(ft)是刪除記憶的大門,第二個輸入門(it,gt)是記住當前信息的大門,最后,輸出門(ot)是計算當前時間點隱藏狀態的門。單元狀態ct可以通過將兩個值相乘(it,gt)計算每個元素的輸入門,并將輸入門所選擇的存儲器添加到遺忘門的結果中,隱藏狀態ht可以由單元狀態ct和輸出門(ot)相乘得到[28]。

然而LSTM的遞歸結構很難被并行化,而且推理延遲會隨著輸入時間步長而線性增加[39],因此注意力機制是一種允許模型自動選擇相關信息的機制,它可以根據輸入的特征權重動態地調整不同位置的注意力,可有效緩解該問題。在緩存預取中,注意力機制可以根據神經網絡的結構和計算過程中的語義關系,自適應地選擇需要預取的數據。

基于長短期記憶網絡和注意力機制的緩存預取使用長短期記憶網絡模型來建立訪問序列的特征表示,并使用注意力機制來加強相關性分析,以提高預取精度和緩存效率。

Hashemi等人[1]首次將預取看做為一個分類問題,并使用LSTM建立了一個預取器,但這個基于LSTM的預取器無法對不規則數據進行預取,主要受限于模型空間大小,所以該預取器只能在空間區域內學習delta增量。此外,該模型訓練是離線進行的,沒有在實際的預取環境中實現,因此,其評價指標沒有考慮預取的及時性和準確性,而僅僅是考慮到了預取的正確性。

基于機器學習的預取器設計無法投入實際應用,其根本原因在于模型的尺寸太大從而導致較高的存儲開銷和延遲。同時,模型的在線訓練也是一個難題。針對這些問題, Srivastava等人[40]提出一種壓縮LSTM的技術來改變預測模型的尺寸,同樣將內存訪問地址的預測問題看做是分類問題,將LSTM的輸出層用二進制編碼,將單一標簽分類問題轉換為多標簽分類( log n)問題,從而實現與傳統LSTM相比,其壓縮因子能夠達到O(nlog n)級別,并降低了預取的覆蓋率。

為解決類爆炸問題,Zhan等人[41]提出一個神經分層序列預取模型(neural hierarchical sequence,NHS)。為使模型能夠學習數百萬個地址之間的地址相關性,該模型使用分層神經結構,將地址預測分解為頁面預測[42]和偏移預測[43]兩個子問題。盡管一個應用程序能夠有數千萬個唯一地址,但唯一頁面的總數只有幾萬或幾十萬個,且唯一偏移量的數量固定為64。這種分解會導致頁內偏移的折疊問題,即那些不同頁面的地址但具有相同頁內偏移的折疊在一起,不同訪存地址將共享相同的偏移嵌入,這會限制神經網絡的學習能力,從而導致較差的性能。為解決該問題,該方案使用了一個新的基于注意力的嵌入層,使頁面預測為偏移預測提供上下文,這個上下文信息能夠使共享嵌入層區分不同的數據訪問地址,而無須知道每個數據地址的唯一表示。

然而由于NHS無法獲得訓練用的基本真實值標簽,為解決標記問題,該研究組提出了一種基于概率分布框架的數據預取神經模型Voyager[44],在NHS的基礎上構建一個多標簽訓練方案,達到探索新的定位形式的目的。該方案的核心是使模型能夠從多個可能的標簽中學習并選擇出最可預測的標簽,這樣就不必預取全局地址流中的下一個地址,而不是僅僅提供單一的真實值標簽[45]。同時該模型將數據預取表述為一個概率預測問題,并將其輸出視為一個概率分布,機器學習的模型能夠為概率分布建模提供靈活的研究框架[46~49]。

與現有技術相比,該神經網絡模型的準確性和覆蓋率都有所提高,且現有預取器的工作負載性能很差,該模型能夠很好地彌補這一缺陷。然而,該神經網絡模型的實用性卻不高,隨著神經網絡技術的進步,該模型在計算成本上也還有改進的空間。

對于可以為每個觸發器預取多個塊的預取器而言,一次預取的預測塊地址的順序不算重要,對于Voyager產生的延遲問題就會被忽略,為此Zhang等人[50]提出使用細粒度地址分段[51],將地址進行分割來處理模型的輸入,通過基于注意力的網絡來學習輸入分段地址和偏移之間的映射關系,在訓練中人為地引入估計的延遲,然后進行距離預取,進一步抵消模型推斷的延遲。但該研究并未說明引入估計的延遲數據來源,通過人為引入延遲數據并不具有普遍性,同時該模型并未考慮計算成本,因此該模型還具有改進的空間。

2.4? 深度學習用于多核緩存預取的對比分析

深度學習在多核緩存預取策略上的成效主要體現在提高了高速緩存的命中率和降低了訪問延遲,從而提升了深度學習應用的性能和效率。然而這些預取技術都有著一定的針對性,針對緩存的具體問題采用了各種可能的策略進行優化處理,現將幾種基于深度學習的緩存預取策略進行對比分析,如表1和2所示。

根據表2能夠看出,未來深度學習用于緩存預取方面還具有許多可探討性的空間,通過深度學習方法能夠預測未來訪問,從而提高緩存命中率和性能,且由于深度學習能夠自動學習訪問序列中的復雜特征和相關性,無須人為設定規則或參數,可以適應不同類型和場景下的訪問模式,具有較強的泛化能力和魯棒性。同時,深度學習可以動態調整緩存大小和預取粒度,以適應變化的工作負載。

然而,深度學習在緩存預取上也存在一些局限性,由于深度學習的模型需要大量的訓練數據和計算資源,就可能會導致訓練時間過長或者內存不足等問題;且深度學習需要根據不同的應用場景調整模型參數和結構,可能存在過擬合或者欠擬合等風險。同時,深度學習的模型還存在模型過時或者不適應新環境等挑戰,因此需要考慮模型更新和遷移等問題。

3? 基于深度學習的多核緩存預取技術分析與展望

通過上述經典工作的分析和比較,可以看出深度學習已經在緩存預取技術上的研究取得了一定成果,但依然存在著一定的問題,具體來說有以下幾點:

a)計算成本?;谏疃葘W習的緩存預取技術訓練模型仍然比較耗時,其訓練時間與訓練集和計算環境規模緊密相關。因此在進一步降低計算成本方面仍有研究意義。

b)優化模型?,F有模型預測的準確率和覆蓋率雖然有所改進,但其優化空間還很大。通過優化模型能夠進一步提升預測的準確率以及緩存的命中率。

c)實用性?,F有的基于神經網絡的預取模型的研究雖然在覆蓋率和準確率上有所提高,但其預測能力會受限于訓練模型的樣本量,所以其實用性并不高。

基于深度學習的多核緩存預取研究具有很大的發展前景,未來在基于深度學習的緩存預取技術的研究有以下方向值得探索和實踐。

a)在線自適應預取模型。由于運行程序的多樣性,大量應用的訪存行為不一致,單一的預取策略并不能同時很好地滿足各種應用的需求。較為復雜的策略雖然能保證精度,但會引入較高的額外開銷。而簡單的預取策略在不規律訪問情況下的精度過低,導致效率不足。因此,需要研究自適應的預取策略,根據當前運行的程序狀態,動態選擇合適的預取策略,從而進一步提高程序性能。對于實時、高效的在線自適應預取模型,第一,必須降低預測模型的時間和空間復雜度。雖然Voyager模型具有較高的預測準確率,降低了模型大小,但很難實現在線自適應。第二,提高對預取時機的預測準確率,而這方面的研究很少。

b)基于啟發的實用神經網絡預取模型。利用從Voyager和后續深度學習研究中獲得的啟發來構建一種基于神經網絡的實用預取模型。例如:對于緩存替換,感知器可以代替LSTM以提高技術水平;對于數據預取方面的任務也更具有挑戰性,同時潛在的性能也很大,通過地址預取提供改進增量預取的文本,或通過數據地址歷史記錄為硬件預取策略的功能選擇提供信息。

c)時空數據預取的深度交互。時間局部性和空間局部性的簡單混合不利于數據預取的設計,需要研究時空預取兩個維度的深度交互來設計數據預取策略。根據地址相關性,長的歷史數據訪問地址空間對于預測不規則訪問是一個很好的特征選擇,同時,在神經網絡設計中,多個定位器設計方法能夠為一些難以預測的數據提供解決方案,因此,未來針對非則數據預取方面,考慮時空局部性的深度交互原理對于促進神經網絡預取模型的實用性方面具有重要意義。

4? 結束語

隨著多核技術的迅速發展,數據的并發處理和大數據操作已成為主流,為了處理更加復雜的程序行為和規模愈發龐大的數據量,緩存系統的效率也正面臨著嚴峻的挑戰。如何在復雜的多核環境中基于深度學習來更高效地使用預取技術,從而提高系統響應速度和數據命中率,目前還處于剛剛起步階段,也無法滿足當前多核環境提高緩存效率的需要??梢灶A見,隨著技術的不斷進步,深度學習和預取技術的創新與發展能夠更加保證處理器的高性能工作,同時也為多核技術的進一步成熟發展提供強有力支持。

當前深度學習應用于多核架構的數據預取研究已經成為國內外的研究熱點。本文通過梳理當前常見的多核緩存架構和預取技術,對基于深度學習的預取的主流技術進行了分類分析,比較了不同神經網絡預取技術之間的優劣,以期對未來基于深度學習的多核緩存預取技術研究提供借鑒參考。

參考文獻:

[1]Hashemi M,Swersky K,Smith J,et al.Learning memory access patterns[C]//Proc of International Conference on Machine Learning.2018:1919-1928.

[2]胡新辰.基于LSTM的語義關系分類研究[D].哈爾濱:哈爾濱工業大學,2015.(Hu Xinchen.Research on semantic relation classification based on LSTM[D].Harbin:Harbin Institute of Technology,2015.)

[3]葉紅偉.片上網絡多級緩存技術研究及系統互聯方案實現[D].西安:西安電子科技大學,2017.(Ye Hongwei.Research on multi-level caching technology for on-chip networks and implementation of system interconnection scheme[D].Xian:Xian University of Electronic Science and Technology,2017.)

[4]袁馳坤.面向緩存一致性優化的高性能片上網絡[D].成都:電子科技大學,2019.(Yuan Chikun.High-performance on-chip network for cache coherency optimization[D].Chengdu:University of Electronic Science and Technology of China,2019.)

[5]閔慶豪,張為華.多核緩存優化技術研究綜述[J].計算機系統應用,2015,24(1):1-8.(Min Qinghao,Zhang Weihua.A review of research on multicore cache optimization techniques[J].Computer System Applications,2015,24(1):1-8.)

[6]劉鵬.三維多核處理器片上緩存功耗管理機制研究[D].南京:南京航空航天大學,2020.(Liu Peng.Research on power management mechanism of on-chip cache for three-dimensional multicore processors[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2020.)

[7]Manegold S,Boncz P A,Kersten M L.Optimizing database architecture for the new bottleneck:memory access[J].The VLDB Journal,2000,9:231-246.

[8]Byna S,Chen Yong,Sun Xianhe.A taxonomy of data prefetching mechanisms[C]//Proc of International Symposium on Parallel Architectures,Algorithms,and Networks.Piscataway,NJ:IEEE Press,2008:19-24.

[9]He Jun,Sun Xianhe,Thakur R.Knowac:I/O prefetch via accumulated knowledge[C]//Proc of IEEE International Conference on Cluster Computing.Piscataway,NJ:IEEE Press,2012:429-437.

[10]Kougkas A,Devarajan H,Sun Xianhe.I/O acceleration via multi-tiered data buffering and prefetching[J].Journal of Computer Science and Technology,2020,35:92-120.

[11]張建勛,古志民.基于交織預取率的幫助線程預取質量調節算法[J].計算機應用研究,2019,36(2):430-434.(Zhang Jianxun,Gu Zhimin.A helper thread prefetch quality adjustment algorithm based on interleaved prefetch rate[J].Application Research of Compu-ters,2019,36(2):430-434.)

[12]張建勛,古志民.幫助線程預取質量的實時在線評價方法[J].計算機應用,2017,37(1):114-119,127.(Zhang Jianxun,Gu Zhimin.A real-time online evaluation method to help thread prefetching quality[J].Computer Applications,2017,37(1):114-119,127.)

[13]Zhang Jianxun,Gu Zhimin,Huang Yan,et al.Helper thread prefetching control framework for chip multi-processor[J].International Journal of Parallel Programming,2015,43:180-202.

[14]張建勛,古志民,胡瀟涵,等.面向非規則大數據分析應用的多核幫助線程預取方法[J].通信學報,2014,35(8):137-146.(Zhang Jianxun,Gu Zhimin,Hu Xiaohan,et al.A multi-core helper thread prefetching approach for non-regular big data analysis applications[J].Journal on Communication,2014,35(8):137-146.)

[15]張建勛,古志民.幫助線程預取技術研究綜述[J].計算機科學,2013,40(7):19-23,39.(Zhang Jianxun,Gu Zhimin.A review of research on helper thread prefetching techniques[J].Computer Science,2013,40(7):19-23,39.)

[16]陳劍南,杜軍平,薛哲,等.基于多重注意力的金融事件大數據精準畫像[J].計算機科學與探索,2021,15(7):1237-1244.(Chen Jiannan,Du Junping,Xue Zhe,et al.Accurate portrait of big data of financial events based on multiple attention mechanism[J].Journal of Frontiers of Computer Science and Technology,2021,15(7):1237-1244.)

[17]Zheng Suncong,Wang Feng,Bao Hongyun,et al.Joint extraction of entities and relations based on a novel tagging scheme[C]//Proc of the 55th Annual Meeting of the Association for Computational Linguistics.2017:1227-1236.

[18]Peled L,Mannor S,Weiser U,et al.Semantic locality and context-based prefetching using reinforcement learning[C]//Proc of the 42nd Annual International Symposium on Computer Architecture.2015:285-297.

[19]Peled L,Weiser U,Etsion Y.A neural network memory prefetcher using semantic locality[EB/OL].(2018).https://arxiv.org/abs/1804.00478.

[20]Peled L,Weiser U,Etsion Y.A neural network prefetcher for arbitrary memory access patterns[J].ACM Trans on Architecture and Code Optimization(TACO),2019,16(4):1-27.

[21]Khan T A,Sriraman A,Devietti J,et al.I-spy:context-driven conditional instruction prefetching with coalescing[C]//Proc of the 53rd Annual IEEE/ACM International Symposium on Microarchitecture.2020:146-159.

[22]Schneider S O,Schlather M.A new approach to treatment assignment for one and multiple treatment groups[R/OL].(2017).http://deas.repec.org/p/got/gotcrc/228.html.

[23]黨思航.目標識別中的增量學習方法研究[D].成都:電子科技大學,2021.(Dang Sihang.Research on incremental learning methods in target recognition[D].Chengdu:University of Electronic Science and Technology of China,2021.)

[24]Ganfure G O,Wu Chunfeng,Chang Yuanhao,et al.Deep Prefetcher:a deep learning framework for data prefetching in flash storage devices[J].IEEE Trans on Computer-Aided Design of Integrated Circuits and Systems,2020,39(11):3311-3322.

[25]Bera R,Kanellopoulos K,Nori A,et al.Pythia:a customizable hardware prefetching framework using online reinforcement learning[C]//Proc of the 54th Annual IEEE/ACM International Symposium on Microarchitecture.2021:1121-1137.

[26]劉全,翟建偉,章宗長,等.深度強化學習綜述[J].計算機學報,2018,41(1):1-27.(Liu Quan,Zhai Jianwei,Zhang Zongchang,et al.A review of deep reinforcement learning[J].Journal of Compu-ter Science,2018,41(1):1-27.)

[27]Fang Wei,Chen Yupeng,Xue Qiongying.Survey on research of RNN-based spatio-temporal sequence prediction algorithms[J].Journal on Big Data,2021,3(3):97-110.

[28]Choi H,Park S.A survey of machine learning-based system performance optimization techniques[J].Applied Sciences,2021,11(7):3235.

[29]Zhang Pengmiao,Srivastava A,Brooks B,et al.RAOP:recurrent neural network augmented offset prefetcher[C]//Proc of International Symposium on Memory Systems.2020:352-362.

[30]Yu Xiangyao,Hughes C J,Satish N,et al.IMP:indirect memory prefetcher[C]//Proc of the 48th International Symposium on Microarchitecture.2015:178-190.

[31]Michaud P.Best-offset hardware prefetching[C]//Proc of IEEE International Symposium on High Performance Computer Architecture.Piscataway,NJ:IEEE Press,2016:469-480.

[32]Chung J,Gulcehre C,Cho K H,et al.Empirical evaluation of gated recurrent neural networks on sequence modeling[C]//Proc of NIPS Workshop on Deep Learning.2014.

[33]Kim J,Pugsley S H,Gratz P V,et al.Path confidence based lookahead prefetching[C]//Proc of the 49th Annual IEEE/ACM International Symposium on Microarchitecture.2016:1-12.

[34]Guan Hui,Chaudhary U,Xu Yuanchao,et al.Recurrent neural networks meet context-free grammar:two birds with one stone[C]//Proc of IEEE International Conference on Data Mining.2021:1078-1083.

[35]Zhao Guorong,Wang Wenjian.Method for Chinese parsing based on fusion of multiple structural information[J].Journal of Frontiers of Computer Science and Technology,2017,11(7):1114-1121.

[36]Nevill-Manning C G,Witten I H.Identifying hierarchical structure in sequences:a linear-time algorithm[J].Journal of Artificial Intelligence Research,1997,7:67-82.

[37]Hochreiter S,Schmidhuber J.Long short-term memory[J].Neural Computation,1997,9(8):1735-1780.

[38]Vaswani A,Shazeer N,Parmar N,et al.Attention is all you need[C]//Advances in Neural Information Processing Systems.2017.

[39]Hwang K,Sung W.Single stream parallelization of generalized LSTM-like RNNs on a GPU[C]//Proc of IEEE International Conference on Acoustics,Speech and Signal Processing.2015:1047-1051.

[40]Srivastava A,Lazaris A,Brooks B,et al.Predicting memory accesses:the road to compact ML-driven prefetcher[C]//Proc of International Symposium on Memory Systems.2019:461-470.

[41]Zhan Shi,Jain A,Swersky K,et al.A neural hierarchical sequence model for irregular data prefetching[C]//Proc of ML for Systems Workshop,NeurIPS.2019.

[42]張友志,胡國勝,程玉勝.一種改進的Markov預測模型方法[J].計算機技術與發展,2008,18(12):78-80,83.(Zhang Youzhi,Hu Guosheng,Cheng Yusheng.An improved Markov prediction model approach[J].Computer Technology and Development,2008,18(12):78-80,83.)

[43]陳愛斌,蔡自興,文志強,等.一種基于預測模型的均值偏移加速算法[J].信息與控制,2010,39(2):234-237.(Chen Aibin,Cai Zixing,Wen Zhiqiang,et al.A mean-shift acceleration algorithm based on prediction model[J].Information and Control,2010,39(2):234-237.)

[44]Zhan Shi,Jain A,Swersky K,et al.A hierarchical neural model of data prefetching[C]//Proc of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems.2021:861-873.

[45]Tsoumakas G,Katakis I.Multi-label classification:an overview[J].International Journal of Data Warehousing and Mining,2007,3(3):1-13.

[46]Bakhshalipour M,Lotfi-Kamran P,Sarbazi-Azad H.Domino temporal data prefetcher[C]//Proc of IEEE International Symposium on High Performance Computer Architecture.2018:131-142.

[47]Wu Hao,Nathella K,Pusdesris J,et al.Temporal prefetching without the off-chip metadata[C]//Proc of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture.2019:996-1008.

[48]Wu Hao,Nathella K,Sunwoo D,et al.Efficient metadata management for irregular data prefetching[C]//Proc of the 46th International Symposium on Computer Architecture.2019:449-461.

[49]Jacobs R A,Jordan M I,Nowlan S J,et al.Adaptive mixtures of local experts[J].Neural Computation,1991,3(1):79-87.

[50]Zhang Pengmiao,Srivastava A,Nori A V,et al.Fine-grained address segmentation for attention-based variable-degree prefetching[C]//Proc of the 19th ACM International Conference on Computing Frontiers.2022:103-112.

[51]石星.基于深度學習的塊級緩存預取優化研究[D].武漢:華中科技大學,2019.(Shi Xing.Research on block-level cache prefetching optimization based on deep learning[D].Wuhan:Huazhong University of Science and Technology,2019.)

[52]Qin Zhen,Sun Weixuan,Deng Hui,et al.Cosformer:rethinking softmax in attention[C]//Proc of International Conference on Learning Representations.2022.

[53]蔡曲林,劉普寅.一種新的概率神經網絡有監督學習算法[J].模糊系統與數學,2006(6):83-87.(Cai Qulin,Liu Puyin.A new supervised learning algorithm for probabilistic neural networks[J].Fuzzy Systems and Mathematics,2006(6):83-87.)

[54]Chen Youliang,Zhang Xiangjun,Karimian H,et al.A novel framework for prediction of dam deformation based on extreme learning machine and Lévy flight bat algorithm[J].Journal of Hydroinformatics,2021,23(5):935-949.

[55]Nam J,Kim J,Loza M E,et al.Large-scale multi-label text classification—revisiting neural network[C]//Proc of Joint European Confe-rence on Machine Learning and Knowledge Discovery in Databases.2014:437-452.

猜你喜歡
研究綜述深度學習神經網絡
神經網絡抑制無線通信干擾探究
MOOC與翻轉課堂融合的深度學習場域建構
大數據技術在反恐怖主義中的應用展望
近五年農村征地糾紛問題研究綜述
深度學習算法應用于巖石圖像處理的可行性研究
小學課桌椅設計研究綜述
基于深度卷積網絡的人臉年齡分析算法與實現
關于重游意愿的研究綜述
基于神經網絡的拉矯機控制模型建立
復數神經網絡在基于WiFi的室內LBS應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合