張建勛 喬欣雨 林炳輝



收稿日期:2023-05-24;修回日期:2023-07-19? 基金項(xiàng)目:中國(guó)高校產(chǎn)學(xué)研自然基金資助項(xiàng)目(2021FNA04016)
作者簡(jiǎn)介:張建勛(1978—),男,河北保定人,副教授,碩導(dǎo),博士,CCF會(huì)員,主要研究方向?yàn)榛旌洗鎯?chǔ)優(yōu)化(Zhangjx@tute.edu.cn);喬欣雨(1997—),女,江蘇南京人,碩士研究生,主要研究方向?yàn)檐浖こ蹋涣直x(1998—),男,福建泉州人,碩士研究生,主要研究方向?yàn)檐浖こ?
摘? 要:當(dāng)前人工智能技術(shù)應(yīng)用于系統(tǒng)結(jié)構(gòu)領(lǐng)域的研究前景廣闊,特別是將深度學(xué)習(xí)應(yīng)用于多核架構(gòu)的數(shù)據(jù)預(yù)取研究已經(jīng)成為國(guó)內(nèi)外的研究熱點(diǎn)。針對(duì)基于深度學(xué)習(xí)的緩存預(yù)取任務(wù)進(jìn)行了研究,形式化地定義了深度學(xué)習(xí)緩存預(yù)取模型。在介紹當(dāng)前常見(jiàn)的多核緩存架構(gòu)和預(yù)取技術(shù)的基礎(chǔ)上,全面分析了現(xiàn)有基于深度學(xué)習(xí)的典型緩存預(yù)取器的設(shè)計(jì)思路。深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)在多核緩存預(yù)取領(lǐng)域的應(yīng)用主要采用了深度神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、長(zhǎng)短期記憶網(wǎng)絡(luò)和注意力機(jī)制等機(jī)器學(xué)習(xí)方法,綜合對(duì)比分析現(xiàn)有基于深度學(xué)習(xí)的數(shù)據(jù)預(yù)取神經(jīng)網(wǎng)絡(luò)模型后發(fā)現(xiàn),基于深度學(xué)習(xí)的多核緩存預(yù)取技術(shù)在計(jì)算成本、模型優(yōu)化和實(shí)用性等方面還存在著局限性,未來(lái)在自適應(yīng)預(yù)取模型以及神經(jīng)網(wǎng)絡(luò)預(yù)取模型的實(shí)用性方面還有很大的研究探索空間和發(fā)展前景。
關(guān)鍵詞:深度學(xué)習(xí);數(shù)據(jù)預(yù)取;多核架構(gòu);緩存優(yōu)化;神經(jīng)網(wǎng)絡(luò);研究綜述
中圖分類(lèi)號(hào):TP333;TP181??? 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):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
近年來(lái),隨著深度神經(jīng)網(wǎng)絡(luò)的發(fā)展,深度學(xué)習(xí)為系統(tǒng)結(jié)構(gòu)研究領(lǐng)域中的硬件預(yù)測(cè)問(wèn)題提供了新的研究方向和機(jī)會(huì),例如分支預(yù)測(cè)和緩存替換等。然而,深度學(xué)習(xí)能否用于數(shù)據(jù)預(yù)取的研究是一個(gè)值得深入思考的問(wèn)題。當(dāng)前,深度學(xué)習(xí)解決數(shù)據(jù)預(yù)取問(wèn)題主要面臨著兩個(gè)挑戰(zhàn)。
挑戰(zhàn)一是在數(shù)據(jù)預(yù)取模型中,輸入通常是計(jì)算機(jī)程序訪(fǎng)問(wèn)內(nèi)存的指令地址,輸出則是對(duì)應(yīng)指令地址所需的數(shù)據(jù),由于數(shù)據(jù)預(yù)取中需要根據(jù)當(dāng)前指令地址預(yù)測(cè)未來(lái)可能需要訪(fǎng)問(wèn)的數(shù)據(jù)地址,所以其輸入和輸出空間通常非常龐大。例如對(duì)于一個(gè)具有64位地址空間的地址相關(guān)預(yù)取來(lái)說(shuō),其輸入和輸出若是單個(gè)的地址值,輸入和輸出的個(gè)數(shù)則會(huì)達(dá)到千萬(wàn)級(jí)別,這是現(xiàn)有用于圖像分類(lèi)或語(yǔ)音識(shí)別的深度學(xué)習(xí)模型所不能處理的,因此深度學(xué)習(xí)用于數(shù)據(jù)預(yù)取存在著類(lèi)別爆炸問(wèn)題。挑戰(zhàn)二是數(shù)據(jù)預(yù)取屬于實(shí)時(shí)行為,一方面,深度學(xué)習(xí)的訓(xùn)練時(shí)間受限,基于深度學(xué)習(xí)的預(yù)取器沒(méi)有明顯的類(lèi)別標(biāo)簽用于指導(dǎo)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí),無(wú)法事先通過(guò)獲取具體的標(biāo)簽來(lái)訓(xùn)練模型,例如對(duì)于一個(gè)內(nèi)存訪(fǎng)問(wèn)地址m,數(shù)據(jù)預(yù)取器可以學(xué)習(xí)預(yù)測(cè)m后續(xù)的任何地址,沒(méi)有明確哪個(gè)地址標(biāo)簽可以指導(dǎo)深度學(xué)習(xí)模型的訓(xùn)練,因此深度學(xué)習(xí)用于數(shù)據(jù)預(yù)取還存在類(lèi)別標(biāo)記問(wèn)題。
為解決這些問(wèn)題,已提出多種技術(shù)方案,如Hashemi等人[1]將預(yù)取作為一個(gè)分類(lèi)問(wèn)題,并使用LSTM[2]作為預(yù)取模型,但該方案只關(guān)注了增量或步長(zhǎng)相關(guān)性,并不能將其涵蓋為解決所有相關(guān)性問(wèn)題,且由于模型空間大小有限,只能在空間區(qū)域內(nèi)學(xué)習(xí)delta增量。
由于現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型受到上述兩個(gè)問(wèn)題的困擾,其研究目標(biāo)均是搭建一種能夠?qū)W習(xí)增量和地址相關(guān)性的神經(jīng)網(wǎng)絡(luò)模型,然后利用數(shù)據(jù)預(yù)取的獨(dú)有特性,建立一種新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)解決這兩個(gè)問(wèn)題。本文對(duì)常見(jiàn)的基于深度學(xué)習(xí)的多核緩存預(yù)取神經(jīng)網(wǎng)絡(luò)模型進(jìn)行了對(duì)比分析與研究,對(duì)深度學(xué)習(xí)用于緩存預(yù)取的問(wèn)題進(jìn)行了梳理,并指出了未來(lái)的發(fā)展方向。
1? 多核緩存架構(gòu)及其預(yù)取技術(shù)
本章主要描述了多核緩存的架構(gòu),介紹了多核緩存的預(yù)取技術(shù),重點(diǎn)建立了基于深度學(xué)習(xí)的緩存預(yù)取模型。
1.1? 多核緩存架構(gòu)
現(xiàn)代的多核處理器主要采用共享存儲(chǔ)結(jié)構(gòu),傳統(tǒng)的存儲(chǔ)結(jié)構(gòu)可分為一致性?xún)?nèi)存訪(fǎng)問(wèn)結(jié)構(gòu)(uniform memory access,UMA)和非一致性?xún)?nèi)存訪(fǎng)問(wèn)結(jié)構(gòu)(non uniform memory access,NUMA)。一致性存取結(jié)構(gòu)是指所有的物理存儲(chǔ)器被均勻的共享,每個(gè)處理器訪(fǎng)問(wèn)內(nèi)存的時(shí)間是一致的。非一致性存取結(jié)構(gòu)是指每個(gè)處理核有本地存儲(chǔ)和遠(yuǎn)端存儲(chǔ),其存儲(chǔ)訪(fǎng)問(wèn)時(shí)間不同,訪(fǎng)問(wèn)本地存儲(chǔ)的速度遠(yuǎn)遠(yuǎn)高于訪(fǎng)問(wèn)遠(yuǎn)端存儲(chǔ)的速度,如圖1[3]所示。
通常,處理器存儲(chǔ)架構(gòu)一般采用多級(jí)存儲(chǔ)層次結(jié)構(gòu),如圖2[4]所示。通常多核系統(tǒng)中都會(huì)加入兩級(jí)以上的緩存,用于平衡處理器速度和底層存儲(chǔ)速度之間的差異。片上多核緩存的存儲(chǔ)架構(gòu)主要有私有緩存、共享緩存和混合緩存三種結(jié)構(gòu)。私有緩存通常是一級(jí)或者二級(jí)緩存,其結(jié)構(gòu)和檢索過(guò)程相對(duì)較簡(jiǎn)單,訪(fǎng)問(wèn)延時(shí)比較小,同時(shí)由于其隔離性,各個(gè)核之間的影響比較?。坏珜?duì)于每個(gè)核來(lái)說(shuō),可用的緩存資源也就相對(duì)比較少,所以緩存的命中率較低。共享緩存通常為二級(jí)或者三級(jí)緩存,共享緩存允許一個(gè)核訪(fǎng)問(wèn)全部共享的緩存,可用緩存資源比較多,所以其命中率較高;但這種結(jié)構(gòu)需要所有的核都可以任意訪(fǎng)問(wèn)所有共享緩存的數(shù)據(jù),結(jié)構(gòu)相對(duì)復(fù)雜,從共享緩存中讀寫(xiě)數(shù)據(jù)也會(huì)造成較大的訪(fǎng)問(wèn)時(shí)延?;旌暇彺娼Y(jié)合了共享和私有緩存的存儲(chǔ)架構(gòu),在混合緩存中,處理器會(huì)擁有自己的私有緩存,同時(shí)也與其他處理器共享一部分緩存空間,這樣可以減少緩存之間的競(jìng)爭(zhēng),提高命中率和性能表現(xiàn)[5]。通常一級(jí)緩存為各個(gè)處理核私有,并且分為指令緩存和數(shù)據(jù)緩存,其容量較小,訪(fǎng)問(wèn)速度是整個(gè)層次化緩存存儲(chǔ)結(jié)構(gòu)中最快的一層。二級(jí)緩存一般容量較大,訪(fǎng)問(wèn)速度比一級(jí)緩存慢,但其可以保留更多數(shù)據(jù)。二級(jí)緩存的組織方式一般有私有和共享兩種,如圖3[5]所示,在這兩種多核緩存結(jié)構(gòu)中,私有緩存只由一個(gè)核所使用,各個(gè)核之間只能通過(guò)共享的內(nèi)存或者專(zhuān)用的核間通信通道相聯(lián)系;而共享緩存可以被多個(gè)核共享使用,緩存中所有的數(shù)據(jù)都可以被共享的多個(gè)核訪(fǎng)問(wèn)和使用。三級(jí)緩存一般為共享緩存,即為多個(gè)核所共享,其容量相比于二級(jí)緩存更大,訪(fǎng)問(wèn)速度較慢[6]。
隨著緩存規(guī)模的不斷增大,其平均訪(fǎng)存時(shí)延也變得很大,因此提高共享緩存的命中率,減少遠(yuǎn)端的內(nèi)存數(shù)據(jù)請(qǐng)求訪(fǎng)問(wèn),在一定程度上能夠提高多核處理器的性能,這也是多核緩存數(shù)據(jù)預(yù)取技術(shù)的根本目的。
1.2? 多核緩存預(yù)取技術(shù)
數(shù)據(jù)預(yù)取主要是為了屏蔽緩存缺失而導(dǎo)致的數(shù)據(jù)訪(fǎng)問(wèn)延遲,從而彌補(bǔ)處理器和內(nèi)存之間的性能差距。通過(guò)硬件或軟件的支持,數(shù)據(jù)預(yù)取使數(shù)據(jù)在被請(qǐng)求之前能夠更加接近處理器。近年來(lái)提出了多項(xiàng)多核緩存預(yù)取技術(shù),通過(guò)利用多核架構(gòu)來(lái)減少數(shù)據(jù)訪(fǎng)問(wèn)延遲。但是,多線(xiàn)程和多核處理器架構(gòu)的出現(xiàn)為設(shè)計(jì)有效的預(yù)取策略帶來(lái)了新的機(jī)遇和挑戰(zhàn)。挑戰(zhàn)之一就是多個(gè)計(jì)算內(nèi)核在共享內(nèi)存帶寬的同時(shí),競(jìng)相獲取常規(guī)數(shù)據(jù)和預(yù)取數(shù)據(jù)。對(duì)于單核處理器而言,主存只接受來(lái)自一個(gè)內(nèi)核的預(yù)取請(qǐng)求;而在多核處理器中,不僅需要處理常規(guī)的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求,還要處理來(lái)自多個(gè)內(nèi)核的預(yù)取請(qǐng)求,因此大量請(qǐng)求會(huì)給主存帶來(lái)更大的壓力[7]。挑戰(zhàn)之二就是緩存一致性問(wèn)題。多核處理器訪(fǎng)問(wèn)主存,主存由多核共享,因此在內(nèi)存層次結(jié)構(gòu)的某個(gè)級(jí)別上必須解決對(duì)內(nèi)存的沖突訪(fǎng)問(wèn)?,F(xiàn)有多核處理器中的緩存一致性通常通過(guò)基于目錄的方法或偵聽(tīng)緩存訪(fǎng)問(wèn)來(lái)解決。
Byna等人[8]針對(duì)多核處理器的預(yù)取機(jī)制進(jìn)行了分類(lèi),主要針對(duì)硬件預(yù)取、軟件預(yù)取、預(yù)測(cè)和基于預(yù)執(zhí)行的預(yù)取策略等方面進(jìn)行了全面的概括與研究。數(shù)據(jù)預(yù)取技術(shù)主要涉及五個(gè)基本問(wèn)題,即預(yù)取什么數(shù)據(jù)、何時(shí)預(yù)取數(shù)據(jù)、從哪里預(yù)取數(shù)據(jù)、預(yù)取目標(biāo)是什么以及如何啟動(dòng)預(yù)取。在錯(cuò)誤的時(shí)間預(yù)取錯(cuò)誤的數(shù)據(jù)或正確的數(shù)據(jù)不僅沒(méi)有幫助,反而會(huì)損害整體性能[9]。
a)預(yù)取什么數(shù)據(jù)。預(yù)測(cè)即將要預(yù)取的數(shù)據(jù)是預(yù)取最重要的要求,根據(jù)預(yù)取數(shù)據(jù)的實(shí)現(xiàn)位置和各種技術(shù)預(yù)測(cè)預(yù)取數(shù)據(jù)進(jìn)行分類(lèi),可分為:(a)硬件控制策略,預(yù)取在硬件中實(shí)現(xiàn),各種方法支持硬件控制的預(yù)取,預(yù)取的所有組件都在處理器內(nèi)實(shí)現(xiàn),不需要任何用戶(hù)干擾;(b)軟件控制策略,開(kāi)發(fā)人員或編譯器能夠控制將預(yù)取指令插入程序的操作,軟件控制的預(yù)取可以使用編譯器控制的預(yù)處理指令或在源代碼中插入預(yù)取函數(shù)調(diào)用,或者基于二進(jìn)制執(zhí)行后分析插入的預(yù)取指令[10];(c)混合硬件/軟件控制策略,該控制策略在具有多線(xiàn)程支持的處理器上的使用越來(lái)越常見(jiàn),在這些處理器上需要硬件的支持來(lái)運(yùn)行專(zhuān)門(mén)用于預(yù)取數(shù)據(jù)的幫助線(xiàn)程,需要軟件支持來(lái)與實(shí)際計(jì)算線(xiàn)程同步[11~15]。
b)何時(shí)預(yù)取數(shù)據(jù)。發(fā)出預(yù)取指令的時(shí)間對(duì)預(yù)取的總體性能有很大影響。預(yù)取數(shù)據(jù)應(yīng)在發(fā)生原始緩存缺失之前到達(dá)其目標(biāo)。及時(shí)預(yù)取的效率取決于下一次緩存缺失發(fā)生的時(shí)間和預(yù)測(cè)未來(lái)訪(fǎng)問(wèn)的開(kāi)銷(xiāo)與預(yù)取數(shù)據(jù)的開(kāi)銷(xiāo)之和。如果總開(kāi)銷(xiāo)超過(guò)下一次高速緩存缺失的時(shí)間,則調(diào)整預(yù)取距離可以避免延遲預(yù)取。
c)從哪里預(yù)取數(shù)據(jù)。內(nèi)存層次結(jié)構(gòu)包含多個(gè)級(jí)別,包括緩存、主內(nèi)存、輔助存儲(chǔ)和第三級(jí)存儲(chǔ)。數(shù)據(jù)預(yù)取可以在不同級(jí)別的存儲(chǔ)器層次結(jié)構(gòu)中實(shí)現(xiàn)。在多核處理器中,存儲(chǔ)層次結(jié)構(gòu)包含每個(gè)內(nèi)核專(zhuān)用的本地緩存和多個(gè)內(nèi)核共享的緩存。
d)預(yù)取目標(biāo)是什么。預(yù)取目標(biāo)越接近CPU,性能上的優(yōu)勢(shì)就越大。單獨(dú)的預(yù)取緩存可以是處理器內(nèi)核專(zhuān)用的,也可以由多個(gè)內(nèi)核共享。預(yù)取數(shù)據(jù)的最佳目標(biāo)是私有緩存,但由于私有緩存的容量小,緩存污染無(wú)可避免。所以在多核處理器中,預(yù)取目標(biāo)各不相同,每個(gè)內(nèi)核都可以將數(shù)據(jù)預(yù)取到其私有緩存或其專(zhuān)用預(yù)取緩存。
e)如何啟動(dòng)預(yù)取。預(yù)取指令可以由需要數(shù)據(jù)的處理器或提供這種服務(wù)的處理器發(fā)出。第一種方法稱(chēng)為客戶(hù)端預(yù)取,處理器在執(zhí)行程序時(shí),根據(jù)程序執(zhí)行的特點(diǎn)或者歷史訪(fǎng)問(wèn)模式等進(jìn)行主動(dòng)預(yù)取。第二種稱(chēng)為服務(wù)器預(yù)取,是指處理器在訪(fǎng)問(wèn)內(nèi)存時(shí),根據(jù)內(nèi)存地址的連續(xù)性和訪(fǎng)問(wèn)模式等,主動(dòng)推送可能需要的數(shù)據(jù)到緩存中。
1.3? 基于深度學(xué)習(xí)的緩存預(yù)取模型
基于深度學(xué)習(xí)的緩存預(yù)取是指在需要訪(fǎng)問(wèn)某個(gè)數(shù)據(jù)時(shí),經(jīng)過(guò)深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)提前將數(shù)據(jù)從存儲(chǔ)介質(zhì)中預(yù)先加載到緩存中,以加快數(shù)據(jù)訪(fǎng)問(wèn)速度,對(duì)數(shù)據(jù)進(jìn)行緩存預(yù)取也可以看做是一種語(yǔ)義關(guān)系抽取的過(guò)程[16]。具體地說(shuō),通過(guò)相關(guān)算法從數(shù)據(jù)中抽取出語(yǔ)義對(duì)之間的潛在關(guān)系,并將這些信息預(yù)先加載到緩存中,在需要分析數(shù)據(jù)時(shí)通過(guò)直接從緩存中獲取已經(jīng)抽取好的語(yǔ)義關(guān)系三元組〈e1,r,e2〉[17],就無(wú)須再次訪(fǎng)問(wèn)數(shù)據(jù),從而大大提高了處理效率和速度。
對(duì)于語(yǔ)義關(guān)系r的抽取過(guò)程,可以看做是基于深度學(xué)習(xí)的緩存預(yù)取的輸入向量表示,向量主要由上下文狀態(tài)向量與地址向量?jī)刹糠纸M成。對(duì)于上下文狀態(tài)向量可以描述為Sen=[w1,w2,…,wn],其中wn表示第n個(gè)上下文狀態(tài)。對(duì)于每個(gè)上下文狀態(tài)wn,根據(jù)初始化結(jié)果可以得到其相應(yīng)的上下文狀態(tài)向量W=[v1,v2,…,vm],這樣可以得到一個(gè)上下文狀態(tài)向量矩陣,如式(1)所示。
Sen=v11v12…v1m
v21v22…v2m
vn1vn2…vnmn×m(1)
根據(jù)語(yǔ)義關(guān)系抽取的特點(diǎn),可以根據(jù)上下文之間的距離來(lái)提取地址向量。其中wi與wj為兩個(gè)上下文狀態(tài),則對(duì)于第k個(gè)上下文狀態(tài)wk,其地址可以表示為
Pos=[Pos1,Pos2]=[|Poswk-Poswi|,|Poswk-Poswj|](2)
將n個(gè)上下文狀態(tài)與式(2)融合地址特征,則得到如式(3)所示的特征向量。
Sen=v11v12…v1mpos111pos112…pos11kpos211pos212…pos21k
v21v22…v2mpos121pos122…pos12kpos221pos221…pos22k
vn1vn2…vnmpos1n1pos1n2…pos1nkpos2n1pos2n2…pos2nkn×(m+2k)(3)
其中:m為上下文狀態(tài)向量特征的長(zhǎng)度;k為上下文狀態(tài)的地址向量的特征長(zhǎng)度。通過(guò)以上方法可以得到相應(yīng)的基于深度學(xué)習(xí)的緩存預(yù)取的輸入向量。在確定深度神經(jīng)網(wǎng)絡(luò)輸入特征向量的基礎(chǔ)上,不同的基于深度學(xué)習(xí)的預(yù)取器設(shè)計(jì)采用不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和不同的注意力機(jī)制,詳見(jiàn)第2章。
1.4? 緩存預(yù)取評(píng)測(cè)指標(biāo)
在緩存預(yù)取中,常用的評(píng)估指標(biāo)有覆蓋率、準(zhǔn)確率和及時(shí)性三個(gè)。覆蓋率是指預(yù)取算法預(yù)測(cè)到的數(shù)據(jù)占總訪(fǎng)問(wèn)數(shù)據(jù)量的比例;準(zhǔn)確率是指預(yù)取算法預(yù)測(cè)正確的數(shù)據(jù)占預(yù)測(cè)數(shù)據(jù)總量的比例;及時(shí)性是指預(yù)取算法預(yù)測(cè)并加載數(shù)據(jù)的速度。本文以三個(gè)評(píng)估指標(biāo)為基準(zhǔn),對(duì)比分析多種基于深度學(xué)習(xí)的緩存數(shù)據(jù)預(yù)取算法,從而衡量不同預(yù)取器設(shè)計(jì)算法的優(yōu)劣。
2? 基于深度學(xué)習(xí)的多核緩存預(yù)取技術(shù)
基于深度學(xué)習(xí)的緩存預(yù)取策略是一種利用深度學(xué)習(xí)模型來(lái)預(yù)測(cè)未來(lái)的訪(fǎng)問(wèn)模式,并根據(jù)預(yù)測(cè)結(jié)果進(jìn)行緩存優(yōu)化和預(yù)取操作的方法,以此提高緩存命中率,降低延遲,提升存儲(chǔ)系統(tǒng)的性能和效率。目前,根據(jù)神經(jīng)網(wǎng)絡(luò)的模型劃分,基于深度學(xué)習(xí)的緩存預(yù)取策略主要包括以下幾類(lèi)。
2.1? 考慮程序語(yǔ)義的神經(jīng)網(wǎng)絡(luò)緩存預(yù)取
由于傳統(tǒng)的緩存預(yù)取方法主要基于數(shù)據(jù)的局部性原理,但基于神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)取通常更加復(fù)雜,不僅取決于數(shù)據(jù)的物理地址,還受到神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和語(yǔ)義特征的影響。通過(guò)神經(jīng)網(wǎng)絡(luò)的語(yǔ)義信息能夠根據(jù)神經(jīng)網(wǎng)絡(luò)計(jì)算的結(jié)構(gòu)和操作類(lèi)型,預(yù)測(cè)內(nèi)存訪(fǎng)問(wèn)模式,并將可能需要的數(shù)據(jù)提前加載到緩存中,以減少數(shù)據(jù)訪(fǎng)問(wèn)延遲和提高計(jì)算效率。
數(shù)據(jù)預(yù)取中,考慮程序中的上下文語(yǔ)義信息的主要目的在于發(fā)現(xiàn)內(nèi)存訪(fǎng)問(wèn)之間存在的某種關(guān)系或模式,其邏輯假設(shè)是重復(fù)出現(xiàn)的語(yǔ)義關(guān)系很有可能會(huì)有相似的控制流和時(shí)空數(shù)據(jù)訪(fǎng)問(wèn)流。因此,通過(guò)跟蹤主存訪(fǎng)問(wèn)之間的上下文信息可以用于區(qū)分語(yǔ)義局部性[13]。
語(yǔ)義局部性的概念最初由Peled等人[18]于2015年提出,是數(shù)據(jù)局部性的一種高級(jí)抽象,主要針對(duì)當(dāng)前的非規(guī)則訪(fǎng)存行為利用程序數(shù)據(jù)結(jié)構(gòu)或遍歷算法固有的語(yǔ)義特征來(lái)標(biāo)識(shí)內(nèi)存訪(fǎng)問(wèn)之間的關(guān)系,并提出一個(gè)基于強(qiáng)化學(xué)習(xí)的框架來(lái)學(xué)習(xí)程序的上下文語(yǔ)義信息用以指導(dǎo)數(shù)據(jù)預(yù)取。
然而,通過(guò)遍歷上下文的屬性和程序狀態(tài),無(wú)法區(qū)分屬性和狀態(tài)是否有用。為此,Peled等人[19]又將所提出的語(yǔ)義局部性概念應(yīng)用于深度學(xué)習(xí),提出了一個(gè)基于程序上下文的神經(jīng)網(wǎng)絡(luò)預(yù)取器,通過(guò)提高語(yǔ)義相關(guān)的準(zhǔn)確性來(lái)識(shí)別多種內(nèi)存訪(fǎng)問(wèn)模式,將機(jī)器和程序狀態(tài)元素作為輸入,輸入到神經(jīng)網(wǎng)絡(luò)工作中來(lái)學(xué)習(xí)程序的算法屬性,神經(jīng)網(wǎng)絡(luò)在運(yùn)行時(shí)被訓(xùn)練,以此來(lái)預(yù)測(cè)基于相關(guān)上下文地址關(guān)聯(lián)到未來(lái)內(nèi)存訪(fǎng)問(wèn)模式。
在前期工作的基礎(chǔ)上, Peled等人[20]于2019年使用全連接的前饋神經(jīng)網(wǎng)絡(luò)用于數(shù)據(jù)預(yù)取,將數(shù)據(jù)預(yù)取作為回歸問(wèn)題來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò),提出一種基于上下文語(yǔ)義信息的神經(jīng)網(wǎng)絡(luò)(NN)預(yù)取設(shè)計(jì)模型,將程序和機(jī)器上下文信息與內(nèi)存訪(fǎng)問(wèn)模式通過(guò)不同關(guān)聯(lián)策略[21~23]相關(guān)聯(lián),使用在線(xiàn)訓(xùn)練來(lái)識(shí)別代碼所表現(xiàn)出的獨(dú)特訪(fǎng)問(wèn)模式并進(jìn)行動(dòng)態(tài)調(diào)整,以此來(lái)動(dòng)態(tài)適應(yīng)不同的內(nèi)存訪(fǎng)問(wèn)模式。
Peled等人所提出的預(yù)取神經(jīng)網(wǎng)絡(luò)模型展示了通過(guò)預(yù)測(cè)數(shù)據(jù)并將其預(yù)取到緩存中來(lái)提高系統(tǒng)性能具有較大的潛力,且該模型可以應(yīng)用于任何內(nèi)存訪(fǎng)問(wèn)模式,而不限于特定的應(yīng)用程序或工作負(fù)載。然而,該模型在程序的數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時(shí),其N(xiāo)N預(yù)取器需要重建網(wǎng)絡(luò)權(quán)值來(lái)反映這個(gè)變化,而每個(gè)權(quán)值又表示多個(gè)并行的元素,這個(gè)改變過(guò)程會(huì)打破現(xiàn)有的預(yù)測(cè)并需要較長(zhǎng)時(shí)間來(lái)恢復(fù)。同時(shí),該神經(jīng)網(wǎng)絡(luò)模型是在假設(shè)能耗和芯片面積能夠進(jìn)一步優(yōu)化的基礎(chǔ)上開(kāi)展,現(xiàn)有的實(shí)現(xiàn)能效耗費(fèi)仍然很高,需要進(jìn)一步的研究來(lái)探索其可擴(kuò)展性及其對(duì)系統(tǒng)成本和復(fù)雜性的影響。
同時(shí),基于語(yǔ)義局部性的概念,Ganfure等人[24]提出了一種新型的受深度神經(jīng)網(wǎng)絡(luò)啟發(fā)的上下文感知預(yù)取方法Deep Prefetcher,將訪(fǎng)問(wèn)模式預(yù)測(cè)作為一個(gè)分類(lèi)問(wèn)題,通過(guò)使用分布式表示法捕獲塊訪(fǎng)問(wèn)模式的上下文信息,并利用深度學(xué)習(xí)模型進(jìn)行上下文感知數(shù)據(jù)預(yù)取。Deep Prefetcher通過(guò)兩個(gè)連續(xù)的讀取請(qǐng)求之間的差異生成一個(gè)新的學(xué)習(xí)特征作為輸入,通過(guò)模型將特征信息轉(zhuǎn)換為一個(gè)新的富含上下文信息的嵌入式表示,通過(guò)深度學(xué)習(xí)算法捕捉訓(xùn)練數(shù)據(jù)中額外的語(yǔ)義信息,以此減少了訓(xùn)練數(shù)據(jù)中的變異程度,降低學(xué)習(xí)的復(fù)雜性,最后輸出最有可能的邏輯塊地址序列。然而該模型是根據(jù)邏輯塊地址訪(fǎng)問(wèn)模式序列中得到的學(xué)習(xí)特征進(jìn)行訓(xùn)練的,無(wú)法根據(jù)具體提出請(qǐng)求的應(yīng)用程序獲取數(shù)據(jù),因此,未來(lái)將深入研究應(yīng)用深度強(qiáng)化學(xué)習(xí)進(jìn)行預(yù)取,考慮能夠捕獲高層次的應(yīng)用環(huán)境以提高預(yù)取性能是改進(jìn)的舉措之一。
Bera等人[25]設(shè)計(jì)了一種通過(guò)進(jìn)程和內(nèi)存子系統(tǒng)交互來(lái)自主學(xué)習(xí)預(yù)取的框架Pythia,將數(shù)據(jù)預(yù)取表述為一個(gè)概率預(yù)測(cè)問(wèn)題,并將其輸出視為一個(gè)概率分布,通過(guò)強(qiáng)化學(xué)習(xí)(RL)[26]對(duì)多程序特征和系統(tǒng)級(jí)反饋信息進(jìn)行預(yù)取。對(duì)于每一個(gè)新的請(qǐng)求,Pythia都會(huì)提取一組程序特征信息,使用該特征狀態(tài)信息,根據(jù)其先驗(yàn)經(jīng)驗(yàn)進(jìn)行預(yù)取操作。對(duì)于每個(gè)預(yù)取操作,Pythia都會(huì)收到一個(gè)數(shù)字獎(jiǎng)勵(lì),該獎(jiǎng)勵(lì)用于增強(qiáng)程序上下文信息和預(yù)取決策之間的相關(guān)性,以便生成高準(zhǔn)確度、高及時(shí)性的系統(tǒng)感知的預(yù)取請(qǐng)求。同時(shí)該框架還能夠?qū)⑷魏晤?lèi)型的系統(tǒng)級(jí)反饋信息納入其決策中,然而該框架是基于硬件實(shí)現(xiàn)的預(yù)取框架,會(huì)導(dǎo)致芯片面積增加,功耗增加等問(wèn)題,且該框架所使用的深度強(qiáng)化學(xué)習(xí)算法需要大量的計(jì)算資源和時(shí)間,對(duì)于多核緩存預(yù)取的應(yīng)用來(lái)說(shuō)存在一定的限制,因此可擴(kuò)展性和實(shí)用性還需要進(jìn)一步探索和改進(jìn)。
2.2? 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的緩存預(yù)取
為了應(yīng)對(duì)神經(jīng)網(wǎng)絡(luò)中復(fù)雜的數(shù)據(jù)訪(fǎng)問(wèn)模式,可以利用神經(jīng)網(wǎng)絡(luò)的語(yǔ)義信息來(lái)預(yù)測(cè)內(nèi)存訪(fǎng)問(wèn)模式,從而實(shí)現(xiàn)更智能的緩存預(yù)取,因此基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[27]的緩存預(yù)取方法被提出。循環(huán)神經(jīng)網(wǎng)絡(luò)具有輸入信號(hào)、輸出信號(hào)和權(quán)重,但內(nèi)部有幾個(gè)隱藏層,這些隱藏層不僅受到當(dāng)前輸入的影響,而且周期性連接以記住以前的輸入信息。圖4[28]是RNN的一個(gè)單元。為了計(jì)算出隱藏狀態(tài)的當(dāng)前時(shí)間t,使用前一個(gè)時(shí)間t-1的隱藏狀態(tài)ht-1和輸入xt計(jì)算出的ht值被發(fā)送到輸出層,成為再次計(jì)算ht+1的輸入值。
循環(huán)神經(jīng)網(wǎng)絡(luò)是用于學(xué)習(xí)時(shí)間序列數(shù)據(jù)的強(qiáng)大工具,其用于緩存預(yù)取主要是利用RNN直接學(xué)習(xí)和預(yù)測(cè)主存的訪(fǎng)問(wèn)模式,通過(guò)跟蹤主存訪(fǎng)問(wèn)之間的上下文信息來(lái)發(fā)現(xiàn)內(nèi)存訪(fǎng)問(wèn)之間存在的某種關(guān)系或模式,這些上下文信息可以包括神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)、中間計(jì)算結(jié)果以及控制流信息等,將緩存預(yù)取問(wèn)題轉(zhuǎn)換為一個(gè)序列預(yù)測(cè)問(wèn)題。通過(guò)分析這些上下文信息,可以在訓(xùn)練階段建立一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)模型,使用該模型進(jìn)行內(nèi)存訪(fǎng)問(wèn)模式的預(yù)測(cè),并將可能需要的數(shù)據(jù)提前加載到緩存中。
在預(yù)測(cè)階段,循環(huán)神經(jīng)網(wǎng)絡(luò)模型可以根據(jù)當(dāng)前的上下文信息預(yù)測(cè)下一個(gè)內(nèi)存訪(fǎng)問(wèn)的位置和數(shù)據(jù)需求。然后,根據(jù)這些預(yù)測(cè)結(jié)果,提前將可能需要的數(shù)據(jù)加載到緩存中,以供后續(xù)的計(jì)算使用。通過(guò)這種方式,循環(huán)神經(jīng)網(wǎng)絡(luò)的緩存預(yù)取方法能夠更好地適應(yīng)神經(jīng)網(wǎng)絡(luò)的復(fù)雜性和多樣化的數(shù)據(jù)訪(fǎng)問(wèn)模式,提高計(jì)算效率并降低數(shù)據(jù)訪(fǎng)問(wèn)延遲。這種方法對(duì)于處理復(fù)雜的神經(jīng)網(wǎng)絡(luò)任務(wù)和大規(guī)模數(shù)據(jù)集具有重要意義,可以提高計(jì)算效率并加速神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和推斷過(guò)程。
Zhang等人[29]提出一種基于RNN的偏移預(yù)取器(RAOP)框架,主要應(yīng)用RNN來(lái)增強(qiáng)傳統(tǒng)的偏移預(yù)取器,不僅在請(qǐng)求發(fā)生時(shí)產(chǎn)生預(yù)取,還能夠預(yù)測(cè)地址用于數(shù)據(jù)預(yù)取。該框架由基于RNN的預(yù)測(cè)器和增強(qiáng)偏移預(yù)取模塊兩部分組成。通過(guò)利用RNN預(yù)測(cè)的接入作為時(shí)間參考,預(yù)測(cè)器在虛擬地址(VA)空間[30]中采用壓縮LSTM結(jié)構(gòu)進(jìn)行建模,對(duì)于每個(gè)應(yīng)用程序都訓(xùn)練一個(gè)預(yù)測(cè)器模型,在物理地址(PA)空間上進(jìn)行預(yù)取,并將最近可能訪(fǎng)問(wèn)的緩存行預(yù)取到LLC中,針對(duì)LLC緩存實(shí)現(xiàn)了一個(gè)最佳偏移(best-offset,BO)預(yù)取器[31]。RAOP通過(guò)對(duì)當(dāng)前地址和RNN預(yù)測(cè)地址執(zhí)行偏移預(yù)取來(lái)提高預(yù)取性能。
由于RNN對(duì)于長(zhǎng)序列處理問(wèn)題存在梯度消失和爆炸問(wèn)題,所以使用LSTM[32]作為預(yù)取預(yù)測(cè)器的主要結(jié)構(gòu),通過(guò)內(nèi)存訪(fǎng)問(wèn)trace的偏移量來(lái)訓(xùn)練LSTM模型,并試圖預(yù)測(cè)給定的前一個(gè)偏移序列的后續(xù)偏移量。將偏移預(yù)測(cè)問(wèn)題看做是一個(gè)分類(lèi)問(wèn)題,通過(guò)將詞匯表編碼為二進(jìn)制來(lái)壓縮輸出和輸入維度,實(shí)現(xiàn)壓縮模型的壓縮。
RAOP通過(guò)使用循環(huán)神經(jīng)網(wǎng)絡(luò)自適應(yīng)地學(xué)習(xí)并預(yù)測(cè)未來(lái)的數(shù)據(jù)訪(fǎng)問(wèn)模式,相比于傳統(tǒng)的預(yù)取算法,能夠更準(zhǔn)確地預(yù)測(cè)未來(lái)數(shù)據(jù)的訪(fǎng)問(wèn)順序,提高緩存的命中率;通過(guò)偏移信息考慮不同數(shù)據(jù)之間的相關(guān)性,以更好地利用緩存空間,并通過(guò)調(diào)整循環(huán)神經(jīng)網(wǎng)絡(luò)的參數(shù)來(lái)適應(yīng)不同的數(shù)據(jù)訪(fǎng)問(wèn)模式,因此還具有較強(qiáng)的通用性和自適應(yīng)性。
然而,RAOP框架一定程度上對(duì)訓(xùn)練模型的大小進(jìn)行了壓縮,仍然需要大量的計(jì)算資源和時(shí)間來(lái)訓(xùn)練RNN,增加了實(shí)現(xiàn)的難度和成本,即使RAOP對(duì)預(yù)取深度的數(shù)量增加通常會(huì)導(dǎo)致更高的覆蓋率,但僅增加深度并不總是能提高整體系統(tǒng)性能[33]。另一方面,如果僅考慮RAOP框架預(yù)測(cè)能力,其預(yù)取的準(zhǔn)確率很高,但是在預(yù)取的覆蓋率、緩存命中率以及預(yù)取的有用性指標(biāo)方面普遍較低,在預(yù)取性能提升方面與下一塊預(yù)取性能提升不明顯。此外,現(xiàn)有RAOP框架的預(yù)測(cè)基于單線(xiàn)程的數(shù)據(jù)訪(fǎng)問(wèn)模式,未考慮多核平臺(tái)多個(gè)應(yīng)用混合訪(fǎng)存模式的復(fù)雜性。
Guan等人[34]針對(duì)長(zhǎng)期大范圍預(yù)測(cè)的需求,于2021年提出了一種將上下文無(wú)關(guān)語(yǔ)法(CFG)[35]和在線(xiàn)標(biāo)記集成到RNN學(xué)習(xí)和推理中作為輸入的預(yù)取方法,通過(guò)Sequitur分層壓縮算法[36]將重復(fù)的子序列數(shù)據(jù)壓縮為CFG,并根據(jù)壓縮序列作為輸入,調(diào)用RNN模型進(jìn)行預(yù)測(cè),通過(guò)對(duì)序列進(jìn)行連續(xù)有效的壓縮從而細(xì)化RNN模型。該研究是第一個(gè)已知的將序列壓縮集成到RNN學(xué)習(xí)和推理中的方法,既擴(kuò)大了預(yù)測(cè)范圍,也減少了推理延遲,并通過(guò)設(shè)計(jì)高效回滾和考慮準(zhǔn)確性的部分壓縮技術(shù)來(lái)解決模型復(fù)雜性問(wèn)題。然而循環(huán)神經(jīng)網(wǎng)絡(luò)和上下文無(wú)關(guān)語(yǔ)法都是相對(duì)復(fù)雜的概念和技術(shù),將它們結(jié)合在一起可能導(dǎo)致更加復(fù)雜的模型和算法,增加了實(shí)現(xiàn)和理解的難度,特別是在處理長(zhǎng)期依賴(lài)關(guān)系時(shí)可能使訓(xùn)練變得更加困難,需要更多的計(jì)算資源和更復(fù)雜的優(yōu)化策略,同時(shí)也會(huì)增加模型的開(kāi)銷(xiāo)成本。
2.3? 基于長(zhǎng)短期記憶網(wǎng)絡(luò)和注意力機(jī)制的緩存預(yù)取
在緩存預(yù)取中,深度神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)在捕捉長(zhǎng)期上下文依賴(lài)關(guān)系中有所限制,尤其是對(duì)于長(zhǎng)度可變的輸入序列,如自然語(yǔ)言文本或時(shí)間序列數(shù)據(jù),由于每個(gè)樣本的長(zhǎng)度不同,模型需要進(jìn)行動(dòng)態(tài)調(diào)整來(lái)適應(yīng)不同的上下文大小,所以會(huì)導(dǎo)致緩存預(yù)取策略無(wú)法有效地利用緩存空間。為了應(yīng)對(duì)神經(jīng)網(wǎng)絡(luò)中復(fù)雜的數(shù)據(jù)訪(fǎng)問(wèn)模式,可以利用神經(jīng)網(wǎng)絡(luò)的語(yǔ)義信息來(lái)預(yù)測(cè)內(nèi)存訪(fǎng)問(wèn)模式,從而實(shí)現(xiàn)更智能的緩存預(yù)取。其中,長(zhǎng)短期記憶(long short-term memory,LSTM)網(wǎng)絡(luò)[37]和注意力機(jī)制[38](attention mechanism)是兩個(gè)常用的技術(shù)手段。
長(zhǎng)短期記憶是為了解決RNN的輸入變長(zhǎng)時(shí),當(dāng)前隱藏層失去先前輸入信息的記憶這一缺點(diǎn)而提出的方法。為了解決這個(gè)問(wèn)題,通過(guò)添加一個(gè)叫做單元狀態(tài)的值來(lái)刪除不必要的記憶,并選擇要記住的內(nèi)容。圖5[28]是一個(gè)LSTM單元。LSTM由三個(gè)門(mén)來(lái)獲取隱藏狀態(tài)和單元狀態(tài)值。第一個(gè)遺忘門(mén)(ft)是刪除記憶的大門(mén),第二個(gè)輸入門(mén)(it,gt)是記住當(dāng)前信息的大門(mén),最后,輸出門(mén)(ot)是計(jì)算當(dāng)前時(shí)間點(diǎn)隱藏狀態(tài)的門(mén)。單元狀態(tài)ct可以通過(guò)將兩個(gè)值相乘(it,gt)計(jì)算每個(gè)元素的輸入門(mén),并將輸入門(mén)所選擇的存儲(chǔ)器添加到遺忘門(mén)的結(jié)果中,隱藏狀態(tài)ht可以由單元狀態(tài)ct和輸出門(mén)(ot)相乘得到[28]。
然而LSTM的遞歸結(jié)構(gòu)很難被并行化,而且推理延遲會(huì)隨著輸入時(shí)間步長(zhǎng)而線(xiàn)性增加[39],因此注意力機(jī)制是一種允許模型自動(dòng)選擇相關(guān)信息的機(jī)制,它可以根據(jù)輸入的特征權(quán)重動(dòng)態(tài)地調(diào)整不同位置的注意力,可有效緩解該問(wèn)題。在緩存預(yù)取中,注意力機(jī)制可以根據(jù)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和計(jì)算過(guò)程中的語(yǔ)義關(guān)系,自適應(yīng)地選擇需要預(yù)取的數(shù)據(jù)。
基于長(zhǎng)短期記憶網(wǎng)絡(luò)和注意力機(jī)制的緩存預(yù)取使用長(zhǎng)短期記憶網(wǎng)絡(luò)模型來(lái)建立訪(fǎng)問(wèn)序列的特征表示,并使用注意力機(jī)制來(lái)加強(qiáng)相關(guān)性分析,以提高預(yù)取精度和緩存效率。
Hashemi等人[1]首次將預(yù)取看做為一個(gè)分類(lèi)問(wèn)題,并使用LSTM建立了一個(gè)預(yù)取器,但這個(gè)基于LSTM的預(yù)取器無(wú)法對(duì)不規(guī)則數(shù)據(jù)進(jìn)行預(yù)取,主要受限于模型空間大小,所以該預(yù)取器只能在空間區(qū)域內(nèi)學(xué)習(xí)delta增量。此外,該模型訓(xùn)練是離線(xiàn)進(jìn)行的,沒(méi)有在實(shí)際的預(yù)取環(huán)境中實(shí)現(xiàn),因此,其評(píng)價(jià)指標(biāo)沒(méi)有考慮預(yù)取的及時(shí)性和準(zhǔn)確性,而僅僅是考慮到了預(yù)取的正確性。
基于機(jī)器學(xué)習(xí)的預(yù)取器設(shè)計(jì)無(wú)法投入實(shí)際應(yīng)用,其根本原因在于模型的尺寸太大從而導(dǎo)致較高的存儲(chǔ)開(kāi)銷(xiāo)和延遲。同時(shí),模型的在線(xiàn)訓(xùn)練也是一個(gè)難題。針對(duì)這些問(wèn)題, Srivastava等人[40]提出一種壓縮LSTM的技術(shù)來(lái)改變預(yù)測(cè)模型的尺寸,同樣將內(nèi)存訪(fǎng)問(wèn)地址的預(yù)測(cè)問(wèn)題看做是分類(lèi)問(wèn)題,將LSTM的輸出層用二進(jìn)制編碼,將單一標(biāo)簽分類(lèi)問(wèn)題轉(zhuǎn)換為多標(biāo)簽分類(lèi)( log n)問(wèn)題,從而實(shí)現(xiàn)與傳統(tǒng)LSTM相比,其壓縮因子能夠達(dá)到O(nlog n)級(jí)別,并降低了預(yù)取的覆蓋率。
為解決類(lèi)爆炸問(wèn)題,Zhan等人[41]提出一個(gè)神經(jīng)分層序列預(yù)取模型(neural hierarchical sequence,NHS)。為使模型能夠?qū)W習(xí)數(shù)百萬(wàn)個(gè)地址之間的地址相關(guān)性,該模型使用分層神經(jīng)結(jié)構(gòu),將地址預(yù)測(cè)分解為頁(yè)面預(yù)測(cè)[42]和偏移預(yù)測(cè)[43]兩個(gè)子問(wèn)題。盡管一個(gè)應(yīng)用程序能夠有數(shù)千萬(wàn)個(gè)唯一地址,但唯一頁(yè)面的總數(shù)只有幾萬(wàn)或幾十萬(wàn)個(gè),且唯一偏移量的數(shù)量固定為64。這種分解會(huì)導(dǎo)致頁(yè)內(nèi)偏移的折疊問(wèn)題,即那些不同頁(yè)面的地址但具有相同頁(yè)內(nèi)偏移的折疊在一起,不同訪(fǎng)存地址將共享相同的偏移嵌入,這會(huì)限制神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,從而導(dǎo)致較差的性能。為解決該問(wèn)題,該方案使用了一個(gè)新的基于注意力的嵌入層,使頁(yè)面預(yù)測(cè)為偏移預(yù)測(cè)提供上下文,這個(gè)上下文信息能夠使共享嵌入層區(qū)分不同的數(shù)據(jù)訪(fǎng)問(wèn)地址,而無(wú)須知道每個(gè)數(shù)據(jù)地址的唯一表示。
然而由于NHS無(wú)法獲得訓(xùn)練用的基本真實(shí)值標(biāo)簽,為解決標(biāo)記問(wèn)題,該研究組提出了一種基于概率分布框架的數(shù)據(jù)預(yù)取神經(jīng)模型Voyager[44],在NHS的基礎(chǔ)上構(gòu)建一個(gè)多標(biāo)簽訓(xùn)練方案,達(dá)到探索新的定位形式的目的。該方案的核心是使模型能夠從多個(gè)可能的標(biāo)簽中學(xué)習(xí)并選擇出最可預(yù)測(cè)的標(biāo)簽,這樣就不必預(yù)取全局地址流中的下一個(gè)地址,而不是僅僅提供單一的真實(shí)值標(biāo)簽[45]。同時(shí)該模型將數(shù)據(jù)預(yù)取表述為一個(gè)概率預(yù)測(cè)問(wèn)題,并將其輸出視為一個(gè)概率分布,機(jī)器學(xué)習(xí)的模型能夠?yàn)楦怕史植冀L峁╈`活的研究框架[46~49]。
與現(xiàn)有技術(shù)相比,該神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確性和覆蓋率都有所提高,且現(xiàn)有預(yù)取器的工作負(fù)載性能很差,該模型能夠很好地彌補(bǔ)這一缺陷。然而,該神經(jīng)網(wǎng)絡(luò)模型的實(shí)用性卻不高,隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的進(jìn)步,該模型在計(jì)算成本上也還有改進(jìn)的空間。
對(duì)于可以為每個(gè)觸發(fā)器預(yù)取多個(gè)塊的預(yù)取器而言,一次預(yù)取的預(yù)測(cè)塊地址的順序不算重要,對(duì)于Voyager產(chǎn)生的延遲問(wèn)題就會(huì)被忽略,為此Zhang等人[50]提出使用細(xì)粒度地址分段[51],將地址進(jìn)行分割來(lái)處理模型的輸入,通過(guò)基于注意力的網(wǎng)絡(luò)來(lái)學(xué)習(xí)輸入分段地址和偏移之間的映射關(guān)系,在訓(xùn)練中人為地引入估計(jì)的延遲,然后進(jìn)行距離預(yù)取,進(jìn)一步抵消模型推斷的延遲。但該研究并未說(shuō)明引入估計(jì)的延遲數(shù)據(jù)來(lái)源,通過(guò)人為引入延遲數(shù)據(jù)并不具有普遍性,同時(shí)該模型并未考慮計(jì)算成本,因此該模型還具有改進(jìn)的空間。
2.4? 深度學(xué)習(xí)用于多核緩存預(yù)取的對(duì)比分析
深度學(xué)習(xí)在多核緩存預(yù)取策略上的成效主要體現(xiàn)在提高了高速緩存的命中率和降低了訪(fǎng)問(wèn)延遲,從而提升了深度學(xué)習(xí)應(yīng)用的性能和效率。然而這些預(yù)取技術(shù)都有著一定的針對(duì)性,針對(duì)緩存的具體問(wèn)題采用了各種可能的策略進(jìn)行優(yōu)化處理,現(xiàn)將幾種基于深度學(xué)習(xí)的緩存預(yù)取策略進(jìn)行對(duì)比分析,如表1和2所示。
根據(jù)表2能夠看出,未來(lái)深度學(xué)習(xí)用于緩存預(yù)取方面還具有許多可探討性的空間,通過(guò)深度學(xué)習(xí)方法能夠預(yù)測(cè)未來(lái)訪(fǎng)問(wèn),從而提高緩存命中率和性能,且由于深度學(xué)習(xí)能夠自動(dòng)學(xué)習(xí)訪(fǎng)問(wèn)序列中的復(fù)雜特征和相關(guān)性,無(wú)須人為設(shè)定規(guī)則或參數(shù),可以適應(yīng)不同類(lèi)型和場(chǎng)景下的訪(fǎng)問(wèn)模式,具有較強(qiáng)的泛化能力和魯棒性。同時(shí),深度學(xué)習(xí)可以動(dòng)態(tài)調(diào)整緩存大小和預(yù)取粒度,以適應(yīng)變化的工作負(fù)載。
然而,深度學(xué)習(xí)在緩存預(yù)取上也存在一些局限性,由于深度學(xué)習(xí)的模型需要大量的訓(xùn)練數(shù)據(jù)和計(jì)算資源,就可能會(huì)導(dǎo)致訓(xùn)練時(shí)間過(guò)長(zhǎng)或者內(nèi)存不足等問(wèn)題;且深度學(xué)習(xí)需要根據(jù)不同的應(yīng)用場(chǎng)景調(diào)整模型參數(shù)和結(jié)構(gòu),可能存在過(guò)擬合或者欠擬合等風(fēng)險(xiǎn)。同時(shí),深度學(xué)習(xí)的模型還存在模型過(guò)時(shí)或者不適應(yīng)新環(huán)境等挑戰(zhàn),因此需要考慮模型更新和遷移等問(wèn)題。
3? 基于深度學(xué)習(xí)的多核緩存預(yù)取技術(shù)分析與展望
通過(guò)上述經(jīng)典工作的分析和比較,可以看出深度學(xué)習(xí)已經(jīng)在緩存預(yù)取技術(shù)上的研究取得了一定成果,但依然存在著一定的問(wèn)題,具體來(lái)說(shuō)有以下幾點(diǎn):
a)計(jì)算成本。基于深度學(xué)習(xí)的緩存預(yù)取技術(shù)訓(xùn)練模型仍然比較耗時(shí),其訓(xùn)練時(shí)間與訓(xùn)練集和計(jì)算環(huán)境規(guī)模緊密相關(guān)。因此在進(jìn)一步降低計(jì)算成本方面仍有研究意義。
b)優(yōu)化模型?,F(xiàn)有模型預(yù)測(cè)的準(zhǔn)確率和覆蓋率雖然有所改進(jìn),但其優(yōu)化空間還很大。通過(guò)優(yōu)化模型能夠進(jìn)一步提升預(yù)測(cè)的準(zhǔn)確率以及緩存的命中率。
c)實(shí)用性。現(xiàn)有的基于神經(jīng)網(wǎng)絡(luò)的預(yù)取模型的研究雖然在覆蓋率和準(zhǔn)確率上有所提高,但其預(yù)測(cè)能力會(huì)受限于訓(xùn)練模型的樣本量,所以其實(shí)用性并不高。
基于深度學(xué)習(xí)的多核緩存預(yù)取研究具有很大的發(fā)展前景,未來(lái)在基于深度學(xué)習(xí)的緩存預(yù)取技術(shù)的研究有以下方向值得探索和實(shí)踐。
a)在線(xiàn)自適應(yīng)預(yù)取模型。由于運(yùn)行程序的多樣性,大量應(yīng)用的訪(fǎng)存行為不一致,單一的預(yù)取策略并不能同時(shí)很好地滿(mǎn)足各種應(yīng)用的需求。較為復(fù)雜的策略雖然能保證精度,但會(huì)引入較高的額外開(kāi)銷(xiāo)。而簡(jiǎn)單的預(yù)取策略在不規(guī)律訪(fǎng)問(wèn)情況下的精度過(guò)低,導(dǎo)致效率不足。因此,需要研究自適應(yīng)的預(yù)取策略,根據(jù)當(dāng)前運(yùn)行的程序狀態(tài),動(dòng)態(tài)選擇合適的預(yù)取策略,從而進(jìn)一步提高程序性能。對(duì)于實(shí)時(shí)、高效的在線(xiàn)自適應(yīng)預(yù)取模型,第一,必須降低預(yù)測(cè)模型的時(shí)間和空間復(fù)雜度。雖然Voyager模型具有較高的預(yù)測(cè)準(zhǔn)確率,降低了模型大小,但很難實(shí)現(xiàn)在線(xiàn)自適應(yīng)。第二,提高對(duì)預(yù)取時(shí)機(jī)的預(yù)測(cè)準(zhǔn)確率,而這方面的研究很少。
b)基于啟發(fā)的實(shí)用神經(jīng)網(wǎng)絡(luò)預(yù)取模型。利用從Voyager和后續(xù)深度學(xué)習(xí)研究中獲得的啟發(fā)來(lái)構(gòu)建一種基于神經(jīng)網(wǎng)絡(luò)的實(shí)用預(yù)取模型。例如:對(duì)于緩存替換,感知器可以代替LSTM以提高技術(shù)水平;對(duì)于數(shù)據(jù)預(yù)取方面的任務(wù)也更具有挑戰(zhàn)性,同時(shí)潛在的性能也很大,通過(guò)地址預(yù)取提供改進(jìn)增量預(yù)取的文本,或通過(guò)數(shù)據(jù)地址歷史記錄為硬件預(yù)取策略的功能選擇提供信息。
c)時(shí)空數(shù)據(jù)預(yù)取的深度交互。時(shí)間局部性和空間局部性的簡(jiǎn)單混合不利于數(shù)據(jù)預(yù)取的設(shè)計(jì),需要研究時(shí)空預(yù)取兩個(gè)維度的深度交互來(lái)設(shè)計(jì)數(shù)據(jù)預(yù)取策略。根據(jù)地址相關(guān)性,長(zhǎng)的歷史數(shù)據(jù)訪(fǎng)問(wèn)地址空間對(duì)于預(yù)測(cè)不規(guī)則訪(fǎng)問(wèn)是一個(gè)很好的特征選擇,同時(shí),在神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)中,多個(gè)定位器設(shè)計(jì)方法能夠?yàn)橐恍╇y以預(yù)測(cè)的數(shù)據(jù)提供解決方案,因此,未來(lái)針對(duì)非則數(shù)據(jù)預(yù)取方面,考慮時(shí)空局部性的深度交互原理對(duì)于促進(jìn)神經(jīng)網(wǎng)絡(luò)預(yù)取模型的實(shí)用性方面具有重要意義。
4? 結(jié)束語(yǔ)
隨著多核技術(shù)的迅速發(fā)展,數(shù)據(jù)的并發(fā)處理和大數(shù)據(jù)操作已成為主流,為了處理更加復(fù)雜的程序行為和規(guī)模愈發(fā)龐大的數(shù)據(jù)量,緩存系統(tǒng)的效率也正面臨著嚴(yán)峻的挑戰(zhàn)。如何在復(fù)雜的多核環(huán)境中基于深度學(xué)習(xí)來(lái)更高效地使用預(yù)取技術(shù),從而提高系統(tǒng)響應(yīng)速度和數(shù)據(jù)命中率,目前還處于剛剛起步階段,也無(wú)法滿(mǎn)足當(dāng)前多核環(huán)境提高緩存效率的需要。可以預(yù)見(jiàn),隨著技術(shù)的不斷進(jìn)步,深度學(xué)習(xí)和預(yù)取技術(shù)的創(chuàng)新與發(fā)展能夠更加保證處理器的高性能工作,同時(shí)也為多核技術(shù)的進(jìn)一步成熟發(fā)展提供強(qiáng)有力支持。
當(dāng)前深度學(xué)習(xí)應(yīng)用于多核架構(gòu)的數(shù)據(jù)預(yù)取研究已經(jīng)成為國(guó)內(nèi)外的研究熱點(diǎn)。本文通過(guò)梳理當(dāng)前常見(jiàn)的多核緩存架構(gòu)和預(yù)取技術(shù),對(duì)基于深度學(xué)習(xí)的預(yù)取的主流技術(shù)進(jìn)行了分類(lèi)分析,比較了不同神經(jīng)網(wǎng)絡(luò)預(yù)取技術(shù)之間的優(yōu)劣,以期對(duì)未來(lái)基于深度學(xué)習(xí)的多核緩存預(yù)取技術(shù)研究提供借鑒參考。
參考文獻(xiàn):
[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的語(yǔ)義關(guān)系分類(lèi)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.(Hu Xinchen.Research on semantic relation classification based on LSTM[D].Harbin:Harbin Institute of Technology,2015.)
[3]葉紅偉.片上網(wǎng)絡(luò)多級(jí)緩存技術(shù)研究及系統(tǒng)互聯(lián)方案實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),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]袁馳坤.面向緩存一致性?xún)?yōu)化的高性能片上網(wǎng)絡(luò)[D].成都:電子科技大學(xué),2019.(Yuan Chikun.High-performance on-chip network for cache coherency optimization[D].Chengdu:University of Electronic Science and Technology of China,2019.)
[5]閔慶豪,張為華.多核緩存優(yōu)化技術(shù)研究綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,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]劉鵬.三維多核處理器片上緩存功耗管理機(jī)制研究[D].南京:南京航空航天大學(xué),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]張建勛,古志民.基于交織預(yù)取率的幫助線(xiàn)程預(yù)取質(zhì)量調(diào)節(jié)算法[J].計(jì)算機(jī)應(yīng)用研究,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]張建勛,古志民.幫助線(xiàn)程預(yù)取質(zhì)量的實(shí)時(shí)在線(xiàn)評(píng)價(jià)方法[J].計(jì)算機(jī)應(yīng)用,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]張建勛,古志民,胡瀟涵,等.面向非規(guī)則大數(shù)據(jù)分析應(yīng)用的多核幫助線(xiàn)程預(yù)取方法[J].通信學(xué)報(bào),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]張建勛,古志民.幫助線(xiàn)程預(yù)取技術(shù)研究綜述[J].計(jì)算機(jī)科學(xué),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]陳劍南,杜軍平,薛哲,等.基于多重注意力的金融事件大數(shù)據(jù)精準(zhǔn)畫(huà)像[J].計(jì)算機(jī)科學(xué)與探索,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]黨思航.目標(biāo)識(shí)別中的增量學(xué)習(xí)方法研究[D].成都:電子科技大學(xué),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]劉全,翟建偉,章宗長(zhǎng),等.深度強(qiáng)化學(xué)習(xí)綜述[J].計(jì)算機(jī)學(xué)報(bào),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]張友志,胡國(guó)勝,程玉勝.一種改進(jìn)的Markov預(yù)測(cè)模型方法[J].計(jì)算機(jī)技術(shù)與發(fā)展,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]陳愛(ài)斌,蔡自興,文志強(qiáng),等.一種基于預(yù)測(cè)模型的均值偏移加速算法[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]石星.基于深度學(xué)習(xí)的塊級(jí)緩存預(yù)取優(yōu)化研究[D].武漢:華中科技大學(xué),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īng)網(wǎng)絡(luò)有監(jiān)督學(xué)習(xí)算法[J].模糊系統(tǒng)與數(shù)學(xué),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.