本發(fā)明涉及并行仿真領(lǐng)域,尤其涉及一種多芯粒并行仿真同步的方法。
背景技術(shù):
1、目前主流的cpu并行仿真器有g(shù)em5(binkert,?n.,?beckmann,?b.,?black,?g.,reinhardt,?s.k.,?saidi,?a.,?basu,?a.,?et?al.:the?gem5?simulator.?sigarchcomput.?archit.?news?39(2),?1–7?(aug?2011))和sniper(trevor?e.?carlson,?wimheirman,?and?lieven?eeckhout.?2011.?sniper:?exploring?the?level?ofabstraction?for?scalable?and?accurate?parallel?multi-core?simulation.?inproceedings?of?2011?international?conference?for?high?performance?computing,networking,?storage?and?analysis?(sc?'11).?association?for?computingmachinery,?new?york,?ny,?usa,?article?52,?1–12)。gem5主要面臨的問題是由于采用單線程des內(nèi)核,限制了其對多核系統(tǒng)仿真的性能以及可拓展性。sniper在多核并行仿真上有較大優(yōu)勢,但由于其基于trace仿真,模擬的精確度相對較低。目前主流的gpu仿真器是gpgpu-sim(ali?bakhoda,?george?l?yuan,?wilson?wl?fung,?henry?wong,?and?tor?maamodt.?2009.?analyzing?cuda?workloads?using?a?detailed?gpu?simulator.?inperformance?analysis?of?systems?and?software,?2009.?ispass?2009.?ieeeinternational?symposium?on.?ieee,?163–174.)。
2、除了這幾個基本的仿真器,許多研究提出了一些面向多核并行的仿真器,相比原來的仿真器提高了其并行仿真的能力以及可擴(kuò)展性。daniel?sanchez?和?christoskozyrakis提出了zsim仿真器(daniel?sanchez?and?christos?kozyrakis.?2013.?zsim:fast?and?accurate?microarchitectural?simulation?of?thousand-core?systems.sigarch?comput.?archit.?news?41,?3?(june?2013),?475–486.),該仿真器通過綁定-編織并行化,提高了其在多核主機(jī)上并行模擬的可擴(kuò)展性,但由于其采用了分階段時鐘同步,即盡管各核的模擬是并行的,但所有核的模擬都會在達(dá)到預(yù)定的周期數(shù)時通過一個同步屏障進(jìn)行同步。這種同步方式會導(dǎo)致提前完成的核需要等待其他所有核完成該階段的任務(wù)才會進(jìn)入到下一階段中,提高了仿真的時間開銷。j.?e.?miller等人提出了graphite仿真器(j.?e.?miller?et?al.,?"graphite:?a?distributed?parallel?simulator?formulticores,"?hpca?-?16?2010?the?sixteenth?international?symposium?on?high-performance?computer?architecture,?bangalore,?india,?2010,?pp.),該仿真器采用的是寬松同步的時鐘同步策略。該策略的特點(diǎn)在于各個芯粒上的時鐘彼此獨(dú)立運(yùn)行,只在特定的時候進(jìn)行同步。該仿真器同步策略的不足在于在處理事件時,graphite?不嚴(yán)格執(zhí)行所有事件的順序。在某些情況下,它會忽略時間戳,根據(jù)事件在本地執(zhí)行的順序來決定操作的延遲,而不是它們在模擬系統(tǒng)中應(yīng)有的精確順序。rafael?ubal等人提出了multi2sim仿真器(rafael?ubal,?byunghyun?jang,?perhaad?mistry,?dana?schaa,?and?davidkaeli.?2012.?multi2sim:?a?simulation?framework?for?cpu-gpu?computing.?inproceedings?of?the?21st?international?conference?on?parallel?architecturesand?compilation?techniques?(pact?'12).?association?for?computing?machinery,new?york,?ny,?usa,?335–344.),該仿真器通過一種詳盡的同步策略來模擬cpu和gpu的交互。由于該策略使用了指令級同步,雖然提高了仿真精度,但大大增加了仿真開銷。
3、準(zhǔn)確且快速地對多進(jìn)程或多線程進(jìn)行同步時并行仿真面臨的主要問題。quantum-based?barrier?synchronization(mohammad,?a.?darbaz,?u.?dozsa,?g.?diestelhorst,s,?kim,?d.?and?kim,?n.?s.?dist-gem5:?distributed?simulation?of?computerclusters.?in?2017?ieee?international?symposium?on?performance?analysis?ofsystems?and?software?(ispass)?(pp.?153-162).?2017,?april)是一種全局同步算法。相比逐周期同步,該同步方式減少了同步開銷。相比完全不同步,該同步方式在準(zhǔn)確率上更有優(yōu)勢。但是其依然要設(shè)置屏障對所有芯粒進(jìn)行同步。
4、并行仿真的時鐘同步算法有l(wèi)bts和fnm這兩個典型的算法。lbts算法(r.?m.fujimoto,?"parallel?and?distributed?simulation?systems,"?proceeding?of?the2001?winter?simulation?conference?(cat.?no.01ch37304),?arlington,?va,?usa,2001,?pp.?147-157?vol.1,?doi:?10.1109/wsc.2001.977259.)在并行和分布式仿真中用于管理和控制仿真時間的推進(jìn)。它確保事件按照因果關(guān)系一致的順序處理,即按照時間戳非遞減的順序處理事件,這對于保持仿真的完整性和正確性至關(guān)重要。forecast?null-message?(fnm)?算法(jun?wang,?zhenjiang?dong,?sudhakar?yalamanchili,?andgeorge?riley.?2013.?optimizing?parallel?simulation?of?multicore?systems?usingdomain-specific?knowledge.?in?proceedings?of?the?1st?acm?sigsim?conference?onprinciples?of?advanced?discrete?simulation?(sigsim?pads?'13).?association?forcomputing?machinery,?new?york,?ny,?usa,?127–136.)是一種用于并行離散事件仿真中的事件調(diào)度和時間管理算法。它通過發(fā)送空消息來避免不同處理器之間的時間戳反轉(zhuǎn)和不一致問題,從而保證仿真的正確性。該方法的不足在于需要對片間網(wǎng)絡(luò)傳輸延遲進(jìn)行預(yù)測,時序模型有一定的誤差。
5、本方法的優(yōu)勢在于既確保了功能與時序模型的準(zhǔn)確性,也減少了仿真同步開銷。由于本方法只有在有信息交互的芯粒之間進(jìn)行時鐘同步,大幅縮短了仿真時間。通過功能仿真,保證事件因果關(guān)系的正確,通過網(wǎng)絡(luò)仿真,計(jì)算網(wǎng)絡(luò)傳輸延遲;通過時序仿真,實(shí)現(xiàn)對時鐘的準(zhǔn)確同步,確保了并行仿真的在功能模型以及時序模型的準(zhǔn)確。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種多芯粒并行仿真同步的方法。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種多芯粒并行仿真同步的方法,包括如下步驟:
3、(1)功能仿真:通過芯粒與全局管理器的讀寫匹配,確保讀寫事件的因果關(guān)系正確,實(shí)現(xiàn)準(zhǔn)確的功能模型仿真;同時記錄對共享內(nèi)存訪問的時間,以及仿真過程中產(chǎn)生的通信流量;所述全局管理器用于記錄每個從芯粒發(fā)出事件的時序;
4、(2)網(wǎng)絡(luò)仿真:根據(jù)步驟(1)仿真過程中產(chǎn)生的通信流量,片間網(wǎng)絡(luò)仿真器對讀寫事件進(jìn)行仿真,計(jì)算出每個讀寫事件在片間網(wǎng)絡(luò)中的傳輸延遲,得到傳輸延遲數(shù)據(jù);
5、(3)時序仿真:將步驟(2)得到的傳輸延遲數(shù)據(jù)與步驟(1)仿真后的功能模型相結(jié)合,得到片間網(wǎng)絡(luò)延遲;再重新進(jìn)行完整的仿真,實(shí)現(xiàn)對時序模型的準(zhǔn)確構(gòu)建;
6、(4)重復(fù)執(zhí)行步驟(2)和步驟(3),直至?xí)r序仿真結(jié)果收斂,實(shí)現(xiàn)各個芯粒間時鐘的同步。
7、進(jìn)一步地,所述步驟(1)的功能仿真中,包括遠(yuǎn)程讀操作和遠(yuǎn)程寫操作;
8、遠(yuǎn)程讀操作:當(dāng)應(yīng)用程序調(diào)用對應(yīng)的芯粒讀操作時,通過芯粒仿真器執(zhí)行其功能模型和時序模型來執(zhí)行所請求的指令;芯粒仿真器向功能模型的全局控制器發(fā)送讀請求;全局控制器匹配兩個芯粒的讀寫請求后,向發(fā)送讀請求的芯粒仿真器發(fā)送批準(zhǔn)信息,允許該芯粒仿真器從共享內(nèi)存中讀取數(shù)據(jù);當(dāng)芯粒仿真器接收到讀許可后,功能模型從共享內(nèi)存中讀取數(shù)據(jù)到對應(yīng)芯粒的網(wǎng)絡(luò)接口模塊;芯粒仿真器再將數(shù)據(jù)從網(wǎng)絡(luò)接口模塊傳輸?shù)奖镜卮鎯δK;同時,通過全局管理器將時鐘周期調(diào)整到發(fā)送方發(fā)送數(shù)據(jù)時的時鐘周期;
9、遠(yuǎn)程寫操作:?當(dāng)應(yīng)用程序調(diào)用對應(yīng)芯粒寫操作時,通過芯粒仿真器執(zhí)行其功能模型和時序模型來執(zhí)行所請求的指令;芯粒仿真器向功能模型的全局控制器發(fā)送寫請求;全局控制器匹配兩個芯粒的讀寫請求后,向發(fā)送寫請求的芯粒仿真器發(fā)送批準(zhǔn)信息,允許該芯粒仿真器向共享存儲器中寫數(shù)據(jù);當(dāng)芯粒仿真器接收到寫許可后,功能模型將數(shù)據(jù)傳輸?shù)綄?yīng)芯粒的網(wǎng)絡(luò)接口模塊,芯粒仿真器再將數(shù)據(jù)從網(wǎng)絡(luò)接口模塊傳輸?shù)焦蚕泶鎯ζ髦小?/p>
10、進(jìn)一步地,所述步驟(2)具體為:根據(jù)步驟(1)仿真過程中片間信息傳輸?shù)牧髁?,以及設(shè)定的片間網(wǎng)絡(luò)拓?fù)洌ㄟ^片間網(wǎng)絡(luò)仿真器對片間網(wǎng)絡(luò)信息傳遞進(jìn)行仿真,計(jì)算出每個讀寫事件在片間網(wǎng)絡(luò)中的傳輸延遲,獲取傳輸延遲數(shù)據(jù)。
11、進(jìn)一步地,所述步驟(3)中,時序仿真在功能仿真的讀寫操作上增加了時序模型的同步,具體為:芯粒仿真器向時序模型的全局控制器發(fā)送時間請求,以獲取數(shù)據(jù)到達(dá)時的時鐘周期;全局管理器的時序模型根據(jù)時序仿真得到的片間網(wǎng)絡(luò)延遲,計(jì)算出數(shù)據(jù)到達(dá)時的時鐘周期;在時序同步過程中,將時鐘周期傳遞給芯粒仿真器,并據(jù)此修改芯粒仿真器的時鐘周期。
12、為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種多芯粒并行仿真同步的裝置,包括一個或多個處理器,用于實(shí)現(xiàn)上述的多芯粒并行仿真同步的方法。
13、為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種電子設(shè)備,包括存儲器和處理器,所述存儲器與所述處理器耦接;其中,所述存儲器用于存儲程序數(shù)據(jù),所述處理器用于執(zhí)行所述程序數(shù)據(jù)以實(shí)現(xiàn)上述的多芯粒并行仿真同步的方法。
14、為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時實(shí)現(xiàn)上述的多芯粒并行仿真同步的方法。
15、本發(fā)明的有益效果是,本發(fā)明通過多輪并行仿真,既保證了功能模型對于事件因果關(guān)系的準(zhǔn)確構(gòu)建,同時保證了各個芯粒間時鐘的同步;并且保證了并行仿真的準(zhǔn)確性。由于只用在有信息交互的時候,參與交互的芯粒進(jìn)行同步,不需要進(jìn)行全局同步;大大提高了仿真的速度。