本申請屬于一種模擬評(píng)估方法,具體涉及一種計(jì)算和訪存總延遲模擬方法及相關(guān)裝置。
背景技術(shù):
1、在計(jì)算機(jī)和信息系統(tǒng)領(lǐng)域,對(duì)計(jì)算和訪存總延遲的準(zhǔn)確模擬是評(píng)估系統(tǒng)性能、優(yōu)化算法設(shè)計(jì)以及進(jìn)行硬件架構(gòu)設(shè)計(jì)的重要基礎(chǔ)。然而,現(xiàn)有的計(jì)算和訪存總延遲模擬方法在實(shí)際應(yīng)用中暴露出了一些顯著的問題,這些問題限制了模擬的效率和準(zhǔn)確性,特別是在復(fù)雜多變的應(yīng)用場景下。
2、首先,現(xiàn)有方法缺少自由的加載/存儲(chǔ)階段。在計(jì)算和訪存過程中,數(shù)據(jù)的加載和存儲(chǔ)是頻繁發(fā)生的操作,而這些操作往往具有一定的靈活性和時(shí)序上的非嚴(yán)格依賴性。然而,現(xiàn)有的模擬方法通常未能充分考慮到這種靈活性,而是進(jìn)行了大量不必要的依賴檢查。這些依賴檢查不僅增加了模擬的計(jì)算開銷,還可能導(dǎo)致模擬結(jié)果與實(shí)際系統(tǒng)的行為存在偏差。
3、其次,現(xiàn)有的計(jì)算和訪存總延遲模擬方法在需要對(duì)大量不同輸入進(jìn)行模擬的場景下,如搜索器、優(yōu)化算法等,每次輸入變化都可能需要對(duì)整個(gè)系統(tǒng)進(jìn)行重新模擬以評(píng)估其性能,不僅效率低下,還可能導(dǎo)致模擬速度顯著下降,特別是在處理大量不同輸入或進(jìn)行長時(shí)間模擬時(shí)。
技術(shù)實(shí)現(xiàn)思路
1、本申請針對(duì)現(xiàn)有計(jì)算和訪存總延遲的模擬方法進(jìn)行大量不必要的依賴檢查,以及輸入不同時(shí)模擬效率和模擬速度低的技術(shù)問題,提供一種計(jì)算和訪存總延遲模擬方法及相關(guān)裝置。
2、為了實(shí)現(xiàn)上述目的,本申請采用以下技術(shù)方案予以實(shí)現(xiàn):
3、第一方面,本申請?zhí)岢鲆环N計(jì)算和訪存總延遲模擬方法,包括:
4、根據(jù)待運(yùn)行神經(jīng)網(wǎng)絡(luò),確定dram上每個(gè)張量的訪存時(shí)間和訪存順序,以及每個(gè)計(jì)算片的時(shí)間;
5、使dram訪存在每個(gè)計(jì)算片上依次按照自由加載/存儲(chǔ)階段和依賴性檢查階段執(zhí)行;所述依賴性檢查階段包括檢查加載和存儲(chǔ)操作之間的數(shù)據(jù)依賴性;
6、依據(jù)自由加載/存儲(chǔ)階段和依賴性檢查階段模擬dram?fifo行為,并記錄對(duì)應(yīng)的存儲(chǔ)占用;
7、根據(jù)記錄的存儲(chǔ)占用,得到計(jì)算和訪存總延遲。
8、進(jìn)一步地,所述依據(jù)自由加載/存儲(chǔ)階段和依賴性檢查階段模擬dram?fifo行為,還包括,按照張量處理、dram操作和計(jì)算時(shí)間平衡的規(guī)則模擬dram?fifo行為。
9、進(jìn)一步地,所述張量處理、dram操作和計(jì)算時(shí)間平衡的規(guī)則,包括:
10、(1)張量的起始位置小于或等于當(dāng)前處理位置時(shí),該張量能夠被處理;
11、(2)如果當(dāng)前處理的張量是當(dāng)前計(jì)算片的輸出特征圖,則在該輸出特征圖計(jì)算完成后,再進(jìn)行dram操作;
12、(3)若不滿足規(guī)則(1)和(2),且dram時(shí)間將超過計(jì)算時(shí)間,則停止自由加載/存儲(chǔ)階段,進(jìn)入下一個(gè)計(jì)算片的依賴性檢查階段;
13、(4)若下一個(gè)計(jì)算片存在依賴性,且處理完依賴后dram操作時(shí)間已經(jīng)超出計(jì)算時(shí)間,則暫停當(dāng)前計(jì)算。
14、進(jìn)一步地,還包括,進(jìn)行至少兩次模擬時(shí),采用粗粒度局部更新和/或細(xì)粒度局部更新的方法對(duì)變化部分進(jìn)行更新。
15、進(jìn)一步地,所述粗粒度局部更新的方法,包括:
16、當(dāng)待運(yùn)行神經(jīng)網(wǎng)絡(luò)局部變化時(shí),更新局部變化處的相對(duì)時(shí)間,通過加和所有局部變化處的相對(duì)時(shí)間,得到局部變化后的總延遲時(shí)間。
17、進(jìn)一步地,所述細(xì)粒度局部更新的方法,包括:
18、當(dāng)待運(yùn)行神經(jīng)網(wǎng)絡(luò)中存在依賴性關(guān)系關(guān)系變化,記錄對(duì)應(yīng)的dram標(biāo)識(shí)符和計(jì)算標(biāo)識(shí)符,下一次評(píng)估時(shí),當(dāng)遇到和前一次評(píng)估相同的dram標(biāo)識(shí)符和計(jì)算標(biāo)識(shí)符時(shí),停止更新,根據(jù)變化的計(jì)算時(shí)間,得到依賴性關(guān)系變化后的總延遲時(shí)間。
19、進(jìn)一步地,所述模擬dram?fifo行為的方法,包括:
20、結(jié)合計(jì)算片的計(jì)算時(shí)間,在buffer中為所有起始位置等于當(dāng)前位置pos的張量預(yù)留空間;
21、經(jīng)歷自由加載/存儲(chǔ)階段和依賴性檢查階段;
22、將所有結(jié)束位置等于pos+1的張量從buffer中刪除。
23、第二方面,本申請?zhí)岢鲆环N計(jì)算和訪存總延遲模擬系統(tǒng),包括:
24、基礎(chǔ)條件確定模塊,用于根據(jù)待運(yùn)行神經(jīng)網(wǎng)絡(luò),確定dram上每個(gè)張量的訪存時(shí)間和訪存順序,以及每個(gè)計(jì)算片的時(shí)間;
25、階段劃分模塊,用于使dram訪存在每個(gè)計(jì)算片上依次按照自由加載/存儲(chǔ)階段和依賴性檢查階段執(zhí)行;所述依賴性檢查階段包括檢查加載和存儲(chǔ)操作之間的數(shù)據(jù)依賴性;
26、模擬模塊,用于依據(jù)自由加載/存儲(chǔ)階段和依賴性檢查階段模擬dram?fifo行為,并記錄對(duì)應(yīng)的存儲(chǔ)占用;
27、計(jì)算模塊,用于根據(jù)記錄的存儲(chǔ)占用繪制待運(yùn)行神經(jīng)網(wǎng)絡(luò)運(yùn)行圖,得到計(jì)算和訪存總延遲。
28、第三方面,本申請?zhí)岢鲆环N電子設(shè)備,包括:存儲(chǔ)器、一個(gè)或多個(gè)處理器;所述存儲(chǔ)器與所述處理器耦合;其中,所述存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)程序代碼,所述計(jì)算機(jī)程序代碼包括計(jì)算機(jī)指令,當(dāng)所述計(jì)算機(jī)指令被所述處理器執(zhí)行時(shí),所述電子設(shè)備執(zhí)行上述計(jì)算和訪存總延遲模擬方法的步驟。
29、第四方面,本申請?zhí)岢鲆环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述計(jì)算和訪存總延遲模擬方法的步驟。
30、與現(xiàn)有技術(shù)相比,本申請具有以下有益效果:
31、本申請?zhí)岢鲆环N計(jì)算和訪存總延遲模擬方法,在每個(gè)張量的訪存時(shí)間和訪存順序,以及每個(gè)計(jì)算片的時(shí)間已知的情況下,將dram訪存在每個(gè)計(jì)算片上分為自由加載/存儲(chǔ)階段和依賴性檢查階段兩個(gè)階段執(zhí)行,然后依據(jù)自由加載/存儲(chǔ)階段和依賴性檢查階段模擬dram?fifo行為,并記錄對(duì)應(yīng)的存儲(chǔ)占用,用以進(jìn)行計(jì)算和訪存總延遲快速評(píng)估。通過將dram訪存分為兩個(gè)階段,能夠更細(xì)致地模擬實(shí)際的訪存過程,有助于捕捉訪存過程中的復(fù)雜行為,如數(shù)據(jù)依賴性和訪存沖突。模擬dram?fifo行為能夠準(zhǔn)確評(píng)估訪存過程對(duì)dram帶寬和存儲(chǔ)資源的影響。通過本申請的模擬方法,能夠?qū)崿F(xiàn)快速模擬,通過模擬得到更優(yōu)的計(jì)算和訪存方案,為優(yōu)化神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)和執(zhí)行提供了重要的性能指標(biāo),有助于了解實(shí)際的硬件設(shè)計(jì)和算法優(yōu)化。
32、本申請還提出一種計(jì)算和訪存總延遲模擬系統(tǒng),一種電子設(shè)備和一種計(jì)算機(jī)存儲(chǔ)介質(zhì),具備上述計(jì)算和訪存總延遲模擬方法的全部優(yōu)勢。
1.一種計(jì)算和訪存總延遲模擬方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述計(jì)算和訪存總延遲模擬方法,其特征在于,所述依據(jù)自由加載/存儲(chǔ)階段和依賴性檢查階段模擬dram?fifo行為,還包括,按照張量處理、dram操作和計(jì)算時(shí)間平衡的規(guī)則模擬dram?fifo行為。
3.根據(jù)權(quán)利要求2所述計(jì)算和訪存總延遲模擬方法,其特征在于,所述張量處理、dram操作和計(jì)算時(shí)間平衡的規(guī)則,包括:
4.根據(jù)權(quán)利要求1所述計(jì)算和訪存總延遲模擬方法,其特征在于,還包括,進(jìn)行至少兩次模擬時(shí),采用粗粒度局部更新和/或細(xì)粒度局部更新的方法對(duì)變化部分進(jìn)行更新。
5.根據(jù)權(quán)利要求4所述計(jì)算和訪存總延遲模擬方法,其特征在于,所述粗粒度局部更新的方法,包括:
6.根據(jù)權(quán)利要求5所述計(jì)算和訪存總延遲模擬方法,其特征在于,所述細(xì)粒度局部更新的方法,包括:
7.根據(jù)權(quán)利要求1所述計(jì)算和訪存總延遲模擬方法,其特征在于,所述模擬dram?fifo行為的方法,包括:
8.一種計(jì)算和訪存總延遲模擬系統(tǒng),其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:存儲(chǔ)器、一個(gè)或多個(gè)處理器;所述存儲(chǔ)器與所述處理器耦合;其中,所述存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)程序代碼,所述計(jì)算機(jī)程序代碼包括計(jì)算機(jī)指令,當(dāng)所述計(jì)算機(jī)指令被所述處理器執(zhí)行時(shí),所述電子設(shè)備執(zhí)行如權(quán)利要求1-7中任一項(xiàng)所述計(jì)算和訪存總延遲模擬方法的步驟。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一項(xiàng)所述計(jì)算和訪存總延遲模擬方法的步驟。