[發(fā)明專利]編譯方法、編譯裝置、電子設(shè)備、存儲(chǔ)介質(zhì)和程序產(chǎn)品有效
| 申請(qǐng)?zhí)枺?/td> | 202110309347.4 | 申請(qǐng)日: | 2021-03-23 |
| 公開(公告)號(hào): | CN113031962B | 公開(公告)日: | 2022-04-15 |
| 發(fā)明(設(shè)計(jì))人: | 武桓州;王歡;周威;駱濤;藍(lán)翔 | 申請(qǐng)(專利權(quán))人: | 北京百度網(wǎng)訊科技有限公司 |
| 主分類號(hào): | G06F8/41 | 分類號(hào): | G06F8/41;G06N20/00 |
| 代理公司: | 北京市金杜律師事務(wù)所 11256 | 代理人: | 趙林琳;辛鳴 |
| 地址: | 100094 北京市*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 編譯 方法 裝置 電子設(shè)備 存儲(chǔ) 介質(zhì) 程序 產(chǎn)品 | ||
本公開提供了一種編譯方法、編譯裝置、電子設(shè)備、存儲(chǔ)介質(zhì)和程序產(chǎn)品,可以用于源文件編譯領(lǐng)域和深度學(xué)習(xí)領(lǐng)域等領(lǐng)域中。該方法包括:獲取源文件集合,源文件集合包括至少一種類型的源文件;獲取與源文件集合相關(guān)聯(lián)的對(duì)象集合的目錄集合;針對(duì)目錄集合中的第一目錄,基于第一目錄包括與第一類型的源文件相關(guān)聯(lián)的第一對(duì)象集合,將與第一對(duì)象集合相關(guān)聯(lián)的源文件組合成第一源文件子集;以及對(duì)第一源文件子集作為整體進(jìn)行編譯。利用上述方法,可以通過(guò)減少針對(duì)源文件編譯次數(shù)來(lái)有效提高編譯效率和降低編譯耗時(shí),從而能夠提升用戶體驗(yàn)。
技術(shù)領(lǐng)域
本公開涉及計(jì)算機(jī)技術(shù),并且更具體地,涉及編譯方法、編譯裝置、電子設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,可以用于源文件編譯領(lǐng)域和深度學(xué)習(xí)領(lǐng)域等領(lǐng)域中。
背景技術(shù)
深度學(xué)習(xí)是人工智能領(lǐng)域中的關(guān)鍵技術(shù),研發(fā)人員通常基于深度學(xué)習(xí)框架來(lái)開展相關(guān)工作。深度學(xué)習(xí)的基礎(chǔ)是人工神經(jīng)網(wǎng)絡(luò),而人工神經(jīng)網(wǎng)絡(luò)的核心則是矩陣運(yùn)算,因此一個(gè)深度學(xué)習(xí)框架的核心也就是矩陣運(yùn)算。深度學(xué)習(xí)系統(tǒng)是計(jì)算密集型系統(tǒng),在其內(nèi)部往往涉及大量高度復(fù)雜的矩陣計(jì)算,系統(tǒng)的流暢運(yùn)行對(duì)處理速度往往要求很高,中央處理單元甚至都無(wú)法滿足矩陣計(jì)算的需求了,要求諸于其他的計(jì)算設(shè)備來(lái)實(shí)現(xiàn)快速的矩陣運(yùn)算,通常廣泛采用例如GPU設(shè)備的專用處理單元。
常見的深度學(xué)習(xí)框架均使用專用處理單元來(lái)加速計(jì)算。CUDA是一種并行計(jì)算架構(gòu),該架構(gòu)使專用處理單元能夠解決復(fù)雜的計(jì)算問題,開發(fā)人員可以使用C/C++語(yǔ)言來(lái)編寫CUDA程序并且用nvcc來(lái)編譯。在常見的深度學(xué)習(xí)框架中CUDA程序占比都較高。然而,由于CUDA的編譯過(guò)程復(fù)雜,因此大型項(xiàng)目中的CUDA編譯往往耗時(shí)較高,從而影響研發(fā)效率。
然而,傳統(tǒng)的用于源文件編譯的技術(shù)要么需要針對(duì)每個(gè)源文件分別進(jìn)行編譯,要么僅能非常粗糙地將部分源文件合并而后進(jìn)行編譯,并且基本上不能處理CUDA源文件。因此,針對(duì)使用CUDA源文件的項(xiàng)目所需的編譯次數(shù)較大,無(wú)法適用于源文件較多的大型項(xiàng)目。
發(fā)明內(nèi)容
根據(jù)本公開的實(shí)施例,提供了一種編譯方法、編譯裝置、電子設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
在本公開的第一方面中,提供了一種編譯方法,包括:獲取源文件集合,源文件集合包括至少一種類型的源文件;獲取與源文件集合相關(guān)聯(lián)的對(duì)象集合的目錄集合;針對(duì)目錄集合中的第一目錄,基于第一目錄包括與第一類型的源文件相關(guān)聯(lián)的第一對(duì)象集合,將與第一對(duì)象集合相關(guān)聯(lián)的源文件組合成第一源文件子集;以及對(duì)第一源文件子集作為整體進(jìn)行編譯。
在本公開的第二方面中,提供了一種編譯裝置,包括:源文件獲取模塊,被配置為獲取源文件集合,所述源文件集合包括至少一種類型的源文件;第一目錄集合獲取模塊,被配置為與所述源文件集合相關(guān)聯(lián)的對(duì)象集合的目錄集合;第一組合模塊,被配置為針對(duì)所述目錄集合中的第一目錄,基于所述第一目錄包括與第一類型的源文件相關(guān)聯(lián)的第一對(duì)象集合,將與所述第一對(duì)象集合相關(guān)聯(lián)的源文件組合成第一源文件子集;以及第一編譯模塊,被配置為對(duì)所述第一源文件子集作為整體進(jìn)行編譯。
在本公開的第三方面中,提供了一種電子設(shè)備,包括至少一個(gè)處理器;以及與至少一個(gè)處理器通信連接的存儲(chǔ)器;其中存儲(chǔ)器存儲(chǔ)有可被至少一個(gè)處理器執(zhí)行的指令,該指令被至少一個(gè)處理器執(zhí)行,以使至少一個(gè)處理器能夠?qū)崿F(xiàn)根據(jù)本公開的第一方面的方法。
在本公開的第四方面中,提供了一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)指令用于使計(jì)算機(jī)實(shí)現(xiàn)根據(jù)本公開的第一方面的方法。
在本公開的第五方面中,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,計(jì)算機(jī)程序在被處理器執(zhí)行時(shí),執(zhí)行根據(jù)本公開的第一方面的方法。
利用根據(jù)本申請(qǐng)的技術(shù),提供了一種編譯方法,利用該方法的技術(shù)方案,可以按照與將用于編譯的源文件的例如目標(biāo)(target)的對(duì)象相關(guān)聯(lián)的目錄,按照目錄級(jí)別將與每個(gè)目錄中的對(duì)象對(duì)應(yīng)的源文件例如使用include方式組合,以生成源文件集合,而后進(jìn)行編譯,從而可以通過(guò)減少編譯次數(shù)來(lái)有效提高編譯效率,降低編譯耗時(shí)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京百度網(wǎng)訊科技有限公司,未經(jīng)北京百度網(wǎng)訊科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110309347.4/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種軟件開發(fā)中的自動(dòng)化編譯方法及系統(tǒng)
- 一種動(dòng)態(tài)分配編譯機(jī)的系統(tǒng)及其方法
- 一種實(shí)現(xiàn)安卓編譯隔離的方法和系統(tǒng)
- 調(diào)度服務(wù)器、編譯服務(wù)器及分布式編譯方法
- 代碼編譯方法、編譯設(shè)備、存儲(chǔ)介質(zhì)及裝置
- 文件編譯方法、裝置、編譯設(shè)備及存儲(chǔ)介質(zhì)
- 一種編譯方法、裝置及系統(tǒng)
- 一種編譯方法和相關(guān)裝置
- 一種編譯方法、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種代碼編譯方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





