本發(fā)明涉及敏捷開發(fā),尤其涉及一種軟件定義芯片的敏捷開發(fā)方法及系統(tǒng)。
背景技術(shù):
1、本部分旨在為權(quán)利要求書中陳述的本發(fā)明實施例提供背景或上下文。此處的描述不因為包括在本部分中就承認(rèn)是現(xiàn)有技術(shù)。
2、當(dāng)今,人工智能、機器人技術(shù)、數(shù)字信號處理、生物信息學(xué)和航天航空系統(tǒng)的快速發(fā)展受到技術(shù)縮放減緩的制約,迫切需要具有足夠計算能力的超低功耗(ulp)處理器。軟件定義芯片(sdc),以粗粒度可重構(gòu)架構(gòu)(cgra)為代表,在高能效、制造后的靈活性和低非重復(fù)性工程(nre)成本方面具有堅實的競爭優(yōu)勢。sdc架構(gòu)有望實現(xiàn)類似asic的各種功能,同時仍保持相對于通用處理器的高效率。在上述領(lǐng)域中,ulp傳感和邊緣設(shè)備的普及將進一步放大sdc的競爭優(yōu)勢。
3、在這些領(lǐng)域中,機器學(xué)習(xí)應(yīng)用展現(xiàn)了顯著的并行性;動態(tài)規(guī)劃和數(shù)學(xué)優(yōu)化問題通常涉及大量分支等控制語句;諸如cholesky分解和快速傅里葉變換(fft)等數(shù)字信號處理應(yīng)用則表現(xiàn)出顯著的歸納(inductive)數(shù)據(jù)依賴性。在不同場景下,應(yīng)用程序會展現(xiàn)出截然不同的計算和內(nèi)存訪問模式。因此不同領(lǐng)域通常需要采用不同的領(lǐng)域?qū)S眉軜?gòu)以實現(xiàn)高能效。
4、但是,即使是能夠支持廣泛計算操作的sdc架構(gòu),也無法滿足所有領(lǐng)域的多樣化需求。sdc的計算陣列、內(nèi)存接口和互連拓?fù)浣Y(jié)構(gòu)都是多變的,在為每個應(yīng)用領(lǐng)域設(shè)計領(lǐng)域定制sdc加速器時往往需要領(lǐng)域?qū)I(yè)知識,且通過手工設(shè)計最理想的硬件結(jié)構(gòu)需要消耗大量的時間和人力,手工設(shè)計所有領(lǐng)域是不現(xiàn)實的。因此有研究者提出了設(shè)計空間探索(dse)框架,用于自動搜索具有不同性能或面積目標(biāo)下的最佳軟件調(diào)度和電路硬件結(jié)構(gòu)設(shè)計。
5、然而,現(xiàn)有的dse框架在低功耗、高能效方面的設(shè)計效果都有提升空間,不論是在架構(gòu)層面還是軟件優(yōu)化層面。此外,編譯器的效率和質(zhì)量也是限制現(xiàn)有dse框架探索能力的瓶頸。因此,目前缺乏一種超低功耗軟件定義芯片的敏捷開發(fā)方案,以追求低功耗、高能效的目標(biāo),且讓sdc能靈活支持各種復(fù)雜的計算模式。
技術(shù)實現(xiàn)思路
1、本發(fā)明實施例提供一種軟件定義芯片的敏捷開發(fā)方法,可實現(xiàn)低功耗、高能效,能靈活支持各種復(fù)雜的計算模式,該方法包括:
2、獲得預(yù)定義的設(shè)計空間,所述預(yù)定義的設(shè)計空間包括預(yù)定義的硬件設(shè)計空間和預(yù)定義的軟件設(shè)計空間,所述硬件設(shè)計空間包括計算單元的設(shè)計空間,所有計算單元均使用有序數(shù)據(jù)流方案和異步數(shù)據(jù)流發(fā)射,所述計算單元包括專用于支持循環(huán)變量控制和生成的計算單元和通用計算單元;
3、獲得用戶輸入的目標(biāo)領(lǐng)域的目標(biāo)應(yīng)用程序,以及所述目標(biāo)應(yīng)用程序的軟件設(shè)計需求和硬件設(shè)計需求;
4、對所述目標(biāo)應(yīng)用程序的軟件設(shè)計需求和硬件設(shè)計需求進行分析,從預(yù)定義的設(shè)計空間中確定目標(biāo)應(yīng)用程序?qū)?yīng)的實際設(shè)計空間參數(shù);
5、在實際設(shè)計空間參數(shù)中,進行設(shè)計空間探索,獲得最優(yōu)的實際設(shè)計空間參數(shù);
6、基于最優(yōu)的實際設(shè)計空間參數(shù),生成目標(biāo)應(yīng)用程序的軟件代碼和硬件代碼。
7、本發(fā)明實施例還提供一種軟件定義芯片的敏捷開發(fā)系統(tǒng),可實現(xiàn)低功耗、高能效,能靈活支持各種復(fù)雜的計算模式,該系統(tǒng)包括:
8、預(yù)定義設(shè)計空間,用于獲得預(yù)定義的設(shè)計空間,所述預(yù)定義的設(shè)計空間包括預(yù)定義的硬件設(shè)計空間和預(yù)定義的軟件設(shè)計空間,所述硬件設(shè)計空間包括計算單元的設(shè)計空間,所有計算單元均使用有序數(shù)據(jù)流方案和異步數(shù)據(jù)流發(fā)射,所述計算單元包括專用于支持循環(huán)變量控制和生成的計算單元和通用計算單元;
9、用戶輸入模塊,用于獲得用戶輸入的目標(biāo)領(lǐng)域的目標(biāo)應(yīng)用程序,以及所述目標(biāo)應(yīng)用程序的軟件設(shè)計需求和硬件設(shè)計需求;
10、實際設(shè)計空間確定模塊,用于對所述目標(biāo)應(yīng)用程序的軟件設(shè)計需求和硬件設(shè)計需求進行分析,從預(yù)定義的設(shè)計空間中確定目標(biāo)應(yīng)用程序?qū)?yīng)的實際設(shè)計空間參數(shù);
11、設(shè)計空間探索模塊,用于在實際設(shè)計空間參數(shù)中,進行設(shè)計空間探索,獲得最優(yōu)的實際設(shè)計空間參數(shù);
12、軟硬件代碼生成模塊,用于基于最優(yōu)的實際設(shè)計空間參數(shù),生成目標(biāo)應(yīng)用程序的軟件代碼和硬件代碼。
13、本發(fā)明實施例還提供一種計算機設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述軟件定義芯片的敏捷開發(fā)方法。
14、本發(fā)明實施例還提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述軟件定義芯片的敏捷開發(fā)方法。
15、本發(fā)明實施例還提供一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述軟件定義芯片的敏捷開發(fā)方法。
16、本發(fā)明實施例中,獲得預(yù)定義的設(shè)計空間,所述預(yù)定義的設(shè)計空間包括預(yù)定義的硬件設(shè)計空間和預(yù)定義的軟件設(shè)計空間,所述硬件設(shè)計空間包括計算單元的設(shè)計空間,所有計算單元均使用有序數(shù)據(jù)流方案和異步數(shù)據(jù)流發(fā)射,所述計算單元包括專用于支持循環(huán)變量控制和生成的計算單元和通用計算單元;獲得用戶輸入的目標(biāo)領(lǐng)域的目標(biāo)應(yīng)用程序,以及所述目標(biāo)應(yīng)用程序的軟件設(shè)計需求和硬件設(shè)計需求;對所述目標(biāo)應(yīng)用程序的軟件設(shè)計需求和硬件設(shè)計需求進行分析,從預(yù)定義的設(shè)計空間中確定目標(biāo)應(yīng)用程序?qū)?yīng)的實際設(shè)計空間參數(shù);在實際設(shè)計空間參數(shù)中,進行設(shè)計空間探索,獲得最優(yōu)的實際設(shè)計空間參數(shù);基于最優(yōu)的實際設(shè)計空間參數(shù),生成目標(biāo)應(yīng)用程序的軟件代碼和硬件代碼。上述實施例中,所有計算單元均使用有序數(shù)據(jù)流方案和異步數(shù)據(jù)流發(fā)射,使得每個計算單元在數(shù)據(jù)來臨時即開始計算,且數(shù)據(jù)不必依賴和等到全局時鐘傳輸,提高了效率,同時降低能耗;所述計算單元包括專用于支持循環(huán)變量控制和生成的計算單元和通用計算單元,這使得可將目標(biāo)應(yīng)用程序的更多部分同時映射到軟件定義芯片架構(gòu)上,減少和主機的通信開銷;且能通過多個專用于支持循環(huán)變量控制和生成的計算單元提高不規(guī)則循環(huán)的并發(fā)性,使得最后得到的目標(biāo)應(yīng)用程序的軟件代碼和硬件代碼能靈活支持各種復(fù)雜的計算模式。
1.一種軟件定義芯片的敏捷開發(fā)方法,其特征在于,包括:
2.如權(quán)利要求1所述的方法,其特征在于,計算單元的設(shè)計空間包括精度參數(shù)、支持的計算功能參數(shù)、是否支持時域擴展映射參數(shù)、是否支持simd及計算單元內(nèi)部的功能單元數(shù)量參數(shù)、是否支持循環(huán)變量控制和生成參數(shù),是否支持謂詞參數(shù)和輸入輸出大小參數(shù);
3.如權(quán)利要求1所述的方法,其特征在于,所述硬件設(shè)計空間還包括訪存單元的設(shè)計空間;
4.如權(quán)利要求1所述的方法,其特征在于,所述硬件設(shè)計空間還包括片上存儲便簽式緩存的設(shè)計空間;
5.如權(quán)利要求1所述的方法,其特征在于,所述硬件設(shè)計空間還包括互聯(lián)單元的設(shè)計空間;
6.如權(quán)利要求1所述的方法,其特征在于,軟件設(shè)計空間包括循環(huán)的設(shè)計空間;
7.如權(quán)利要求1所述的方法,其特征在于,對所述目標(biāo)應(yīng)用程序的軟件設(shè)計需求和硬件設(shè)計需求進行分析,從預(yù)定義的設(shè)計空間中確定目標(biāo)應(yīng)用程序?qū)?yīng)的實際設(shè)計空間參數(shù),包括:
8.如權(quán)利要求7所述的方法,其特征在于,在實際設(shè)計空間參數(shù)中,進行設(shè)計空間探索,獲得最優(yōu)的實際設(shè)計空間參數(shù),包括:
9.如權(quán)利要求8所述的方法,其特征在于,基于最優(yōu)的實際設(shè)計空間參數(shù),生成目標(biāo)應(yīng)用程序的軟件代碼和硬件代碼,包括:
10.一種軟件定義芯片的敏捷開發(fā)系統(tǒng),其特征在于,包括:
11.一種計算機設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)權(quán)利要求1至9任一項所述方法。
12.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至9任一項所述方法。
13.一種計算機程序產(chǎn)品,其特征在于,所述計算機程序產(chǎn)品包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至9任一項所述方法。