本發(fā)明涉及數(shù)字電路,特別是涉及一種基于依賴感知的數(shù)字電路高層次綜合調(diào)度方法及裝置。
背景技術(shù):
1、數(shù)字電路高層次綜合(hls)是將數(shù)字系統(tǒng)從算法級(jí)行為描述自動(dòng)綜合為寄存器傳輸級(jí)(rtl)結(jié)構(gòu)描述的方法。這個(gè)綜合過(guò)程要求得到的電路rtl描述滿足資源和時(shí)延等約束,且具備較低的時(shí)延、面積和功耗開(kāi)銷(xiāo)。hls設(shè)計(jì)具有更低的門(mén)檻、更加快速、且當(dāng)設(shè)計(jì)需求發(fā)生變化時(shí),只需要改變輸入的源代碼,而無(wú)需對(duì)寄存器的安排等重新進(jìn)行設(shè)計(jì),因此可以靈活地應(yīng)對(duì)軟件更新或需求變化。調(diào)度是hls流程中最關(guān)鍵的步驟之一。它決定了數(shù)據(jù)流圖(dfg)中操作的執(zhí)行順序和時(shí)間。它的目標(biāo)是在滿足延遲、資源和依賴性約束的前提下,最大限度地減少資源使用和延遲。執(zhí)行順序和時(shí)間受依賴關(guān)系的影響。如果存在從操作i到j(luò)的依賴關(guān)系,則在操作i完成之后才能開(kāi)始執(zhí)行操作j。數(shù)據(jù)依賴在dfg中以邊的形式顯示,可以從數(shù)據(jù)流中提取。資源依賴是由調(diào)度方法根據(jù)資源約束來(lái)確定的。資源約束可能導(dǎo)致同時(shí)執(zhí)行的操作爭(zhēng)用同一個(gè)功能單元(fu),并因此導(dǎo)致資源沖突。調(diào)度方法通過(guò)添加資源依賴來(lái)解決這種沖突。添加資源依賴是一個(gè)組合優(yōu)化問(wèn)題,它的可能性與操作數(shù)量呈階乘關(guān)系。因此,構(gòu)建一個(gè)準(zhǔn)確完整的資源依賴圖非常困難。
2、然而,目前的調(diào)度方法存在不足,其中,1.現(xiàn)有的啟發(fā)式方法采用人工定制的策略來(lái)構(gòu)建資源依賴圖。盡可能快/盡可能晚(asap/alap)方法,按順序?qū)⒉僮髡{(diào)度到其最早/最晚的可用時(shí)鐘周期(時(shí)鐘周期)。列表調(diào)度(ls)在asap方法的基礎(chǔ)上,按照拓?fù)渑判蛱砑硬僮鞯馁Y源依賴。受列表調(diào)度的啟發(fā),熵定向調(diào)度順序地添加資源依賴并調(diào)度操作以獲得最大熵。這些啟發(fā)式方法忽略或簡(jiǎn)化了資源依賴圖的構(gòu)造。這些簡(jiǎn)化可以加速求解,但是會(huì)導(dǎo)致性能受損。2.現(xiàn)有基于線性規(guī)劃(lp)的方法將調(diào)度問(wèn)題形式化為lp問(wèn)題,以構(gòu)建完整的資源依賴圖。整數(shù)lp(ilp)調(diào)度采用分枝定界法在整個(gè)可行空間內(nèi)搜索資源依賴。這種搜索采用了試錯(cuò)的方法,沒(méi)有利用程序的依賴信息。因此,當(dāng)面對(duì)不同結(jié)構(gòu)的dfg和爆炸式增長(zhǎng)的分支時(shí),它會(huì)遇到可擴(kuò)展性問(wèn)題。差分約束系統(tǒng)(sdc)調(diào)度通過(guò)啟發(fā)式地將資源約束轉(zhuǎn)換為資源依賴并將目標(biāo)修改為最小化時(shí)延來(lái)解決可擴(kuò)展問(wèn)題。這種轉(zhuǎn)換將ilp問(wèn)題簡(jiǎn)化為具有多項(xiàng)式時(shí)間復(fù)雜度的lp問(wèn)題。然而,它引入了無(wú)效的資源依賴,從而導(dǎo)致較差的調(diào)度質(zhì)量。3.現(xiàn)有基于機(jī)器學(xué)習(xí)(ml)的方法利用其高表達(dá)能力來(lái)學(xué)習(xí)復(fù)雜的調(diào)度策略。但是他們忽視了資源依賴圖的構(gòu)建。neuroschedule利用圖神經(jīng)網(wǎng)絡(luò)(圖神經(jīng)網(wǎng)絡(luò))來(lái)學(xué)習(xí)調(diào)度優(yōu)先級(jí)。它為每個(gè)dfg定制生成調(diào)度優(yōu)先級(jí),替換掉ls中統(tǒng)一的拓?fù)渑判蚝罂梢缘玫奖萳s更低的時(shí)延。但它忽略了對(duì)操作執(zhí)行優(yōu)先級(jí),即資源依賴的感知,導(dǎo)致調(diào)度質(zhì)量較差。deeprl將調(diào)度問(wèn)題轉(zhuǎn)化為馬爾可夫決策過(guò)程(mdp),并使用具有離散動(dòng)作空間的強(qiáng)化學(xué)習(xí)(rl)進(jìn)行求解。它采用卷積神經(jīng)網(wǎng)絡(luò)(cnn)來(lái)學(xué)習(xí)調(diào)度的時(shí)序特征。然而,時(shí)序特征很難表達(dá)操作關(guān)系,即依賴關(guān)系。此外,deeprl采用分解方法來(lái)容納可變大小的dfg。這種方法使得視野之外的數(shù)據(jù)依賴性和fu分配不可見(jiàn),從而對(duì)代理產(chǎn)生誤導(dǎo)。此外,它不存在回滾機(jī)制,因此無(wú)法彌補(bǔ)上述缺點(diǎn)引入的錯(cuò)誤修改。因此,deeprl的性能有待改善。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種基于依賴感知的數(shù)字電路高層次綜合調(diào)度方法及裝置,能夠快速收斂到高質(zhì)量的調(diào)度結(jié)果,提高系統(tǒng)性能,降低了調(diào)度結(jié)果的時(shí)延和資源使用率,增強(qiáng)了調(diào)度方法的可遷移性。
2、為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于依賴感知的數(shù)字電路高層次綜合調(diào)度方法,包括:
3、根據(jù)設(shè)備信息、數(shù)據(jù)流圖和預(yù)設(shè)約束,對(duì)數(shù)字電路進(jìn)行初始化調(diào)度,生成初始調(diào)度結(jié)果;其中,所述初始化調(diào)度包括若干個(gè)操作;
4、分析所述設(shè)備信息、所述數(shù)據(jù)流圖、所述預(yù)設(shè)約束和所述初始調(diào)度結(jié)果,得出各所述操作的若干項(xiàng)屬性,并生成各操作的初始節(jié)點(diǎn)嵌入;
5、通過(guò)將各操作的初始節(jié)點(diǎn)嵌入拼接為節(jié)點(diǎn)嵌入矩陣生成強(qiáng)化學(xué)習(xí)狀態(tài);
6、將所述強(qiáng)化學(xué)習(xí)狀態(tài)輸入至預(yù)設(shè)的策略網(wǎng)絡(luò),更新各操作的初始節(jié)點(diǎn)嵌入,并根據(jù)各操作的更新節(jié)點(diǎn)嵌入生成高斯分布;其中,所述各操作的更新節(jié)點(diǎn)嵌入融合有操作依賴信息;
7、根據(jù)所述預(yù)設(shè)約束篩選各所述操作,構(gòu)建合法動(dòng)作空間;
8、將所述高斯分布映射到所述合法動(dòng)作空間,在所述合法動(dòng)作空間采樣并計(jì)算當(dāng)前時(shí)間步的第一合法動(dòng)作;
9、執(zhí)行所述第一合法動(dòng)作,以重新調(diào)度所述第一合法動(dòng)作對(duì)應(yīng)的操作,生成重調(diào)度結(jié)果。
10、進(jìn)一步地,所述分析所述設(shè)備信息、所述數(shù)據(jù)流圖、所述預(yù)設(shè)約束和所述初始調(diào)度結(jié)果,得出各所述操作的若干項(xiàng)屬性,并生成各操作的初始節(jié)點(diǎn)嵌入,具體為:
11、通過(guò)分析所述設(shè)備信息得出各操作的功能單元延遲;
12、通過(guò)分析所述數(shù)據(jù)流圖得出各操作的前驅(qū)數(shù)量和后繼數(shù)量;
13、通過(guò)分析所述初始調(diào)度結(jié)果得出各操作的最早可能起始時(shí)鐘周期、最晚可能起始時(shí)鐘周期和當(dāng)前調(diào)度起始時(shí)鐘周期;
14、獲取各操作上一狀態(tài)的累積失敗次數(shù),結(jié)合所述數(shù)據(jù)流圖、所述預(yù)設(shè)約束和所述初始調(diào)度結(jié)果,分析得出各操作的重調(diào)度失敗次數(shù);
15、根據(jù)各操作的功能單元延遲、前驅(qū)數(shù)量、后繼數(shù)量、最早可能起始時(shí)鐘周期、最晚可能起始時(shí)鐘周期、當(dāng)前調(diào)度起始時(shí)鐘周期和重調(diào)度失敗次數(shù),生成各操作的初始節(jié)點(diǎn)嵌入。
16、進(jìn)一步地,所述將所述強(qiáng)化學(xué)習(xí)狀態(tài)輸入至預(yù)設(shè)的策略網(wǎng)絡(luò),更新各操作的初始節(jié)點(diǎn)嵌入,并根據(jù)各操作的更新節(jié)點(diǎn)嵌入生成高斯分布,具體為:
17、利用四個(gè)雙向圖神經(jīng)網(wǎng)絡(luò)模塊,對(duì)各操作的初始節(jié)點(diǎn)嵌入進(jìn)行更新,得出各操作的更新節(jié)點(diǎn)嵌入;其中,各所述雙向圖神經(jīng)網(wǎng)絡(luò)模塊包括前向聚合模塊、后向聚合模塊和全連接層;第一雙向圖神經(jīng)網(wǎng)絡(luò)模塊、第二雙向圖神經(jīng)網(wǎng)絡(luò)模塊和第三雙向圖神經(jīng)網(wǎng)絡(luò)模塊通過(guò)多精度聚合模塊連接第四雙向圖神經(jīng)網(wǎng)絡(luò)模塊;
18、利用全局消息聚合模塊,對(duì)各操作的更新節(jié)點(diǎn)嵌入進(jìn)行加權(quán)求和,生成圖嵌入;
19、利用均值多層感知機(jī)和tanh激活函數(shù),將所述圖嵌入轉(zhuǎn)換成高斯分布均值;
20、利用方差多層感知機(jī)和softplus激活函數(shù),將所述圖嵌入轉(zhuǎn)換成高斯分布方差;
21、結(jié)合所述高斯分布均值和所述高斯分布方差,形成高斯分布。
22、進(jìn)一步地,所述利用四個(gè)雙向圖神經(jīng)網(wǎng)絡(luò)模塊,對(duì)各操作的初始節(jié)點(diǎn)嵌入進(jìn)行更新,得出各操作的更新節(jié)點(diǎn)嵌入,具體為:
23、利用第一雙向圖神經(jīng)網(wǎng)絡(luò)模塊對(duì)各操作的初始節(jié)點(diǎn)嵌入進(jìn)行更新,生成各操作的第一中間節(jié)點(diǎn)嵌入和待重調(diào)度操作依賴信息;
24、利用第二雙向圖神經(jīng)網(wǎng)絡(luò)模塊對(duì)各操作的第一中間節(jié)點(diǎn)嵌入進(jìn)行更新,生成各操作的第二中間節(jié)點(diǎn)嵌入和第二操作依賴信息;
25、利用第三雙向圖神經(jīng)網(wǎng)絡(luò)模塊對(duì)各操作的第二中間節(jié)點(diǎn)嵌入進(jìn)行更新,生成各操作的第三中間節(jié)點(diǎn)嵌入和第三操作依賴信息;
26、結(jié)合各操作的初始節(jié)點(diǎn)嵌入、第一中間節(jié)點(diǎn)嵌入、第二中間節(jié)點(diǎn)嵌入和第三中間節(jié)點(diǎn)嵌入,以及待重調(diào)度操作依賴信息、第二操作依賴信息和第三操作依賴信息,利用第四雙向圖神經(jīng)網(wǎng)絡(luò)模塊生成各操作的更新節(jié)點(diǎn)嵌入。
27、進(jìn)一步地,所述利用全局消息聚合模塊,對(duì)各操作的更新節(jié)點(diǎn)嵌入進(jìn)行加權(quán)求和,生成圖嵌入,具體為:
28、對(duì)各操作的更新節(jié)點(diǎn)嵌入進(jìn)行注意力計(jì)算;
29、將各操作的注意力確定為各操作的權(quán)重,對(duì)各操作的更新節(jié)點(diǎn)嵌入進(jìn)行加權(quán)求和,生成圖嵌入;其中,所述圖嵌入包括依賴關(guān)系圖。
30、進(jìn)一步地,所述根據(jù)所述預(yù)設(shè)約束篩選各所述操作,構(gòu)建合法動(dòng)作空間,具體為:
31、通過(guò)分析所述依賴關(guān)系圖,依次將各操作調(diào)度到前一個(gè)時(shí)鐘周期和后一個(gè)時(shí)鐘周期,對(duì)各操作進(jìn)行合法判斷;
32、將調(diào)度到前一個(gè)時(shí)鐘周期或者調(diào)度到后一個(gè)時(shí)鐘周期時(shí)滿足所述預(yù)設(shè)約束的操作確定為合法操作;
33、基于所有合法操作,構(gòu)建合法動(dòng)作空間。
34、進(jìn)一步地,所述將所述高斯分布映射到所述合法動(dòng)作空間,在所述合法動(dòng)作空間采樣并計(jì)算當(dāng)前時(shí)間步的第一合法動(dòng)作,具體為:
35、根據(jù)合法動(dòng)作空間中的合法操作個(gè)數(shù)確定所述合法動(dòng)作空間的大小;
36、根據(jù)合法動(dòng)作空間的大小對(duì)高斯分布進(jìn)行縮放調(diào)整;
37、采樣調(diào)整后的高斯分布得到樣本值,根據(jù)所述樣本值計(jì)算合法動(dòng)作空間索引;
38、在合法動(dòng)作空間中根據(jù)所述合法動(dòng)作空間索引確定第一合法動(dòng)作對(duì)應(yīng)的操作。
39、進(jìn)一步地,所述執(zhí)行所述第一合法動(dòng)作,以重新調(diào)度所述第一合法動(dòng)作對(duì)應(yīng)的操作,生成重調(diào)度結(jié)果,具體為:
40、根據(jù)所述合法動(dòng)作空間索引的正負(fù)性,執(zhí)行所述第一合法動(dòng)作,以重新調(diào)度所述第一合法動(dòng)作對(duì)應(yīng)的操作,生成重調(diào)度結(jié)果;
41、通過(guò)分析重調(diào)度結(jié)果,獲取變化的操作屬性;其中,所述變化的操作屬性包括第一合法動(dòng)作對(duì)應(yīng)的操作的當(dāng)前調(diào)度起始時(shí)鐘周期、所述第一合法動(dòng)作對(duì)應(yīng)的操作的前驅(qū)操作的最晚可能起始時(shí)鐘周期和所述第一合法動(dòng)作對(duì)應(yīng)的操作的后繼操作的最早可能起始時(shí)鐘周期;
42、根據(jù)所述變化的操作屬性,更新所述強(qiáng)化學(xué)習(xí)狀態(tài)。
43、進(jìn)一步地,在所述執(zhí)行所述第一合法動(dòng)作,以重新調(diào)度所述第一合法動(dòng)作對(duì)應(yīng)的操作,生成重調(diào)度結(jié)果后,還包括:
44、采用高斯分布的概率密度函數(shù)計(jì)算條件轉(zhuǎn)移概率;
45、通過(guò)對(duì)比所述初始調(diào)度結(jié)果和重調(diào)度結(jié)果,生成獎(jiǎng)勵(lì);
46、根據(jù)所述條件轉(zhuǎn)移概率和所述獎(jiǎng)勵(lì),更新所述策略網(wǎng)絡(luò)的參數(shù)。
47、本發(fā)明提供了一種基于依賴感知的數(shù)字電路高層次綜合調(diào)度方法,根據(jù)設(shè)備信息、數(shù)據(jù)流圖和預(yù)設(shè)約束,對(duì)數(shù)字電路進(jìn)行初始化調(diào)度,生成初始調(diào)度結(jié)果;通過(guò)分析初始化調(diào)度的信息,得出各操作的若干項(xiàng)屬性,生成各操作的初始節(jié)點(diǎn)嵌入,進(jìn)而生成強(qiáng)化學(xué)習(xí)狀態(tài);利用預(yù)設(shè)的策略網(wǎng)絡(luò),更新各操作的初始節(jié)點(diǎn)嵌入,并生成高斯分布;根據(jù)預(yù)設(shè)約束篩選各操作,構(gòu)建合法動(dòng)作空間;將高斯分布映射到合法動(dòng)作空間,在合法動(dòng)作空間采樣并計(jì)算當(dāng)前時(shí)間步的第一合法動(dòng)作;執(zhí)行第一合法動(dòng)作,以重新調(diào)度第一合法動(dòng)作對(duì)應(yīng)的操作,生成重調(diào)度結(jié)果。本發(fā)明利用雙向消息傳遞和全局消息聚合來(lái)獲得操作關(guān)系并學(xué)習(xí)程序行為,并構(gòu)建精確完整的數(shù)據(jù)依賴圖來(lái)指導(dǎo)搜索;通過(guò)連續(xù)動(dòng)作空間和動(dòng)作合法化來(lái)容納不同大小和結(jié)構(gòu)的dfg并減少約束違反,此外還通過(guò)學(xué)習(xí)這些dfg之間公共的依賴特征,針對(duì)不同結(jié)構(gòu)電路具有較強(qiáng)的可遷移性;通過(guò)迭代地修改資源依賴和調(diào)度快速收斂到高質(zhì)量的調(diào)度結(jié)果,提高系統(tǒng)性能,降低延遲和資源使用率。
48、相應(yīng)的,本發(fā)明提供了一種基于依賴感知的數(shù)字電路高層次綜合調(diào)度裝置,包括:初始調(diào)度模塊、屬性生成模塊、狀態(tài)生成模塊、依賴信息融合模塊、動(dòng)作空間構(gòu)建模塊、動(dòng)作采樣模塊和重調(diào)度模塊;
49、所述初始調(diào)度模塊用于根據(jù)設(shè)備信息、數(shù)據(jù)流圖和預(yù)設(shè)約束,對(duì)數(shù)字電路進(jìn)行初始化調(diào)度,生成初始調(diào)度結(jié)果;其中,所述初始化調(diào)度包括若干個(gè)操作;
50、所述屬性生成模塊用于分析所述設(shè)備信息、所述數(shù)據(jù)流圖、所述預(yù)設(shè)約束和所述初始調(diào)度結(jié)果,得出各所述操作的若干項(xiàng)屬性,并生成各操作的初始節(jié)點(diǎn)嵌入;
51、所述狀態(tài)生成模塊用于通過(guò)將各操作的初始節(jié)點(diǎn)嵌入拼接為節(jié)點(diǎn)嵌入矩陣生成強(qiáng)化學(xué)習(xí)狀態(tài);
52、所述依賴信息融合模塊用于將所述強(qiáng)化學(xué)習(xí)狀態(tài)輸入至預(yù)設(shè)的策略網(wǎng)絡(luò),更新各操作的初始節(jié)點(diǎn)嵌入,并根據(jù)各操作的更新節(jié)點(diǎn)嵌入生成高斯分布;其中,所述各操作的更新節(jié)點(diǎn)嵌入融合有操作依賴信息;
53、所述動(dòng)作空間構(gòu)建模塊用于根據(jù)所述預(yù)設(shè)約束篩選各所述操作,構(gòu)建合法動(dòng)作空間;
54、所述動(dòng)作采樣模塊用于將所述高斯分布映射到所述合法動(dòng)作空間,在所述合法動(dòng)作空間采樣并計(jì)算當(dāng)前時(shí)間步的第一合法動(dòng)作;
55、所述重調(diào)度模塊用于執(zhí)行所述第一合法動(dòng)作,以重新調(diào)度所述第一合法動(dòng)作對(duì)應(yīng)的操作,生成重調(diào)度結(jié)果。
56、本發(fā)明提供了一種基于依賴感知的數(shù)字電路高層次綜合調(diào)度裝置,以模塊間的有機(jī)結(jié)合為基礎(chǔ),根據(jù)設(shè)備信息、數(shù)據(jù)流圖和預(yù)設(shè)約束,對(duì)數(shù)字電路進(jìn)行初始化調(diào)度,生成初始調(diào)度結(jié)果;通過(guò)分析初始化調(diào)度的信息,得出各操作的若干項(xiàng)屬性,生成各操作的初始節(jié)點(diǎn)嵌入,進(jìn)而生成強(qiáng)化學(xué)習(xí)狀態(tài);利用預(yù)設(shè)的策略網(wǎng)絡(luò),更新各操作的初始節(jié)點(diǎn)嵌入,并生成高斯分布;根據(jù)預(yù)設(shè)約束篩選各操作,構(gòu)建合法動(dòng)作空間;將高斯分布映射到合法動(dòng)作空間,在合法動(dòng)作空間采樣并計(jì)算當(dāng)前時(shí)間步的第一合法動(dòng)作;執(zhí)行第一合法動(dòng)作,以重新調(diào)度第一合法動(dòng)作對(duì)應(yīng)的操作,生成重調(diào)度結(jié)果。本發(fā)明利用雙向消息傳遞和全局消息聚合來(lái)獲得操作關(guān)系并學(xué)習(xí)程序行為,并構(gòu)建精確完整的數(shù)據(jù)依賴圖來(lái)指導(dǎo)搜索;通過(guò)連續(xù)動(dòng)作空間和動(dòng)作合法化來(lái)容納不同大小和結(jié)構(gòu)的dfg并減少約束違反,此外還通過(guò)學(xué)習(xí)這些dfg之間公共的依賴特征,針對(duì)不同結(jié)構(gòu)電路具有較強(qiáng)的可遷移性;通過(guò)迭代地修改資源依賴和調(diào)度快速收斂到高質(zhì)量的調(diào)度結(jié)果,提高系統(tǒng)性能,降低延遲和資源使用率。