欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種NPU異構(gòu)平臺(tái)的內(nèi)存分配方法及裝置與流程

文檔序號(hào):40598872發(fā)布日期:2025-01-07 20:39閱讀:10來(lái)源:國(guó)知局
一種NPU異構(gòu)平臺(tái)的內(nèi)存分配方法及裝置與流程

本發(fā)明涉及神經(jīng)網(wǎng)絡(luò),尤其涉及一種npu異構(gòu)平臺(tái)的內(nèi)存分配方法及裝置。


背景技術(shù):

1、npu(neural?network?processor?unit,神經(jīng)網(wǎng)絡(luò)處理器)是一種特殊的處理器,npu利用電路模擬人類的神經(jīng)元和突觸結(jié)構(gòu),來(lái)處理特定的任務(wù)。

2、隨著神經(jīng)網(wǎng)絡(luò)模型規(guī)模的增大,神經(jīng)網(wǎng)絡(luò)模型執(zhí)行深度學(xué)習(xí)計(jì)算時(shí)所需npu的內(nèi)存也越來(lái)越多。npu可能會(huì)為神經(jīng)網(wǎng)絡(luò)模型的深度學(xué)習(xí)運(yùn)算任務(wù)分配內(nèi)存存儲(chǔ)各運(yùn)算時(shí)的各種數(shù)據(jù),例如,每一模型分配到的內(nèi)存包括:為輸入數(shù)據(jù)分配輸入內(nèi)存,為權(quán)重?cái)?shù)據(jù)分配權(quán)重內(nèi)存,為指令數(shù)據(jù)分配指令內(nèi)存,為各網(wǎng)絡(luò)層輸出數(shù)據(jù)分配臨時(shí)內(nèi)存,以及為各模型的整體輸出分配輸出內(nèi)存。

3、在實(shí)際的模型推理中,npu執(zhí)行神經(jīng)網(wǎng)絡(luò)模型的深度學(xué)習(xí)運(yùn)算任務(wù)時(shí)所分配的整體內(nèi)存較大,而內(nèi)存資源是有限的。


技術(shù)實(shí)現(xiàn)思路

1、有鑒于此,本發(fā)明提供一種npu異構(gòu)平臺(tái)的內(nèi)存分配方法及裝置,用于解決目前npu執(zhí)行神經(jīng)網(wǎng)絡(luò)模型的深度學(xué)習(xí)運(yùn)算任務(wù)時(shí)占用的內(nèi)存較大,處理效率較低的問(wèn)題。

2、為解決上述技術(shù)問(wèn)題,第一方面,本發(fā)明提供一種npu異構(gòu)平臺(tái)的內(nèi)存分配方法,該方法包括:

3、獲取所述npu異構(gòu)平臺(tái)中的第一目標(biāo)算子,對(duì)所述第一目標(biāo)算子的輸入張量和輸出張量、以及第一目標(biāo)張量進(jìn)行內(nèi)存分配,所述第一目標(biāo)算子為支持運(yùn)行推理加速的算子,所述第一目標(biāo)張量為被支持運(yùn)行推理加速的算子所使用的張量;

4、獲取所述npu異構(gòu)平臺(tái)中的第二目標(biāo)算子,將所述第二目標(biāo)算子的輸出張量的內(nèi)存復(fù)用所述第二目標(biāo)算子的輸入張量的內(nèi)存,所述第二目標(biāo)算子為支持原地操作的算子;

5、按照所述npu異構(gòu)平臺(tái)中的第三目標(biāo)算子的算子配置信息中的算子寬度由大到小的順序,逐一對(duì)各所述第三目標(biāo)算子的各個(gè)張量進(jìn)行內(nèi)存分配,所述第三目標(biāo)算子為除所述第一目標(biāo)算子、所述第二目標(biāo)算子以外的其他算子,所述算子配置信息包括算子寬度,所述算子寬度為運(yùn)行所述第三目標(biāo)算子時(shí)所需占用的最小內(nèi)存量。

6、可選的,所述按照所述npu異構(gòu)平臺(tái)中的第三目標(biāo)算子的算子配置信息中的算子寬度由大到小的順序,逐一對(duì)各所述第三目標(biāo)算子的各個(gè)張量進(jìn)行內(nèi)存分配的步驟包括:

7、獲取所述算子配置信息中記錄的所述第三目標(biāo)算子運(yùn)行時(shí)內(nèi)存中存在的所有第二目標(biāo)張量;

8、針對(duì)每一所述第二目標(biāo)張量,在已有的緩存池中查找是否存在與所述第二目標(biāo)張量相匹配的目標(biāo)緩存,若存在所述目標(biāo)緩存,則將所述目標(biāo)緩存分配給所述第二目標(biāo)張量復(fù)用,若不存在所述目標(biāo)緩存,則重新申請(qǐng)新緩存分配給所述第二目標(biāo)張量,并將重新申請(qǐng)的新緩存存放入緩存池中。

9、可選的,所述針對(duì)每一所述第二目標(biāo)張量,在已有的緩存池中查找是否存在與所述第二目標(biāo)張量相匹配的目標(biāo)緩存的步驟包括:

10、在已有的緩存池中查找是否存在大于或等于所述第二目標(biāo)張量尺寸的第一緩存;

11、若存在,則將與所述第二目標(biāo)張量尺寸相差最小的第一緩存確定為與所述第二目標(biāo)張量相匹配的目標(biāo)緩存。

12、可選的,所述針對(duì)每一所述第二目標(biāo)張量,在已有的緩存池中查找是否存在與所述第二目標(biāo)張量相匹配的目標(biāo)緩存的步驟包括:

13、在已有的緩存池中查找是否存在與所述第二目標(biāo)張量的使用周期不沖突的第二緩存;

14、若存在,則將與所述第二目標(biāo)張量使用周期相差最短的第二緩存確定為與所述第二目標(biāo)張量相匹配的目標(biāo)緩存。

15、可選的,所述按照所述npu異構(gòu)平臺(tái)中的第三目標(biāo)算子的算子配置信息中的算子寬度由大到小的順序,逐一對(duì)各所述第三目標(biāo)算子的各個(gè)張量進(jìn)行內(nèi)存分配的步驟之前,所述方法還包括:

16、根據(jù)所述npu異構(gòu)平臺(tái)中的網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu),確定所述拓?fù)浣Y(jié)構(gòu)中各算子運(yùn)行時(shí)內(nèi)存中存在的張量;

17、根據(jù)各所述算子運(yùn)行時(shí)內(nèi)存中存在的張量,確定各所述算子的算子寬度以及使用周期;

18、根據(jù)各所述算子的算子寬度以及使用周期,生成各所述算子的算子配置信息。

19、第二方面,本發(fā)明還提供一種npu異構(gòu)平臺(tái)的內(nèi)存分配裝置,該裝置包括:

20、第一內(nèi)存分配模塊,用于獲取所述npu異構(gòu)平臺(tái)中的第一目標(biāo)算子,對(duì)所述第一目標(biāo)算子的輸入張量和輸出張量、以及第一目標(biāo)張量進(jìn)行內(nèi)存分配,所述第一目標(biāo)算子為支持運(yùn)行推理加速的算子,所述第一目標(biāo)張量為被支持運(yùn)行推理加速的算子所使用的張量;

21、第二內(nèi)存分配模塊,用于獲取所述npu異構(gòu)平臺(tái)中的第二目標(biāo)算子,將所述第二目標(biāo)算子的輸出張量的內(nèi)存復(fù)用所述第二目標(biāo)算子的輸入張量的內(nèi)存,所述第二目標(biāo)算子為支持原地操作的算子;

22、第三內(nèi)存分配模塊,用于按照所述npu異構(gòu)平臺(tái)中的第三目標(biāo)算子的算子配置信息中的算子寬度由大到小的順序,逐一對(duì)各所述第三目標(biāo)算子的各個(gè)張量進(jìn)行內(nèi)存分配,所述第三目標(biāo)算子為除所述第一目標(biāo)算子、所述第二目標(biāo)算子以外的其他算子,所述算子配置信息包括算子寬度,所述算子寬度為運(yùn)行所述第三目標(biāo)算子時(shí)所需占用的最小內(nèi)存量。

23、可選的,所述第三內(nèi)存分配模塊包括:

24、第一獲取單元,用于獲取所述算子配置信息中記錄的所述第三目標(biāo)算子運(yùn)行時(shí)內(nèi)存中存在的所有第二目標(biāo)張量;

25、分配單元,用于針對(duì)每一所述第二目標(biāo)張量,在已有的緩存池中查找是否存在與所述第二目標(biāo)張量相匹配的目標(biāo)緩存,若存在所述目標(biāo)緩存,則將所述目標(biāo)緩存分配給所述第二目標(biāo)張量復(fù)用,若不存在所述目標(biāo)緩存,則重新申請(qǐng)新緩存分配給所述第二目標(biāo)張量,并將重新申請(qǐng)的新緩存存放入緩存池中。

26、可選的,所述分配單元包括:

27、第一查找子單元,用于在已有的緩存池中查找是否存在大于或等于所述第二目標(biāo)張量尺寸的第一緩存;

28、第一確定子單元,用于若存在,則將與所述第二目標(biāo)張量尺寸相差最小的第一緩存確定為與所述第二目標(biāo)張量相匹配的目標(biāo)緩存。

29、可選的,所述分配單元包括:

30、第二查找子單元,用于在已有的緩存池中查找是否存在與所述第二目標(biāo)張量的使用周期不沖突的第二緩存;

31、第二確定子單元,用于若存在,則將與所述第二目標(biāo)張量使用周期相差最短的第二緩存確定為與所述第二目標(biāo)張量相匹配的目標(biāo)緩存。

32、可選的,所述裝置還包括

33、第一確定模塊,用于根據(jù)所述npu異構(gòu)平臺(tái)中的網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu),確定所述拓?fù)浣Y(jié)構(gòu)中各算子運(yùn)行時(shí)內(nèi)存中存在的張量;

34、第二確定模塊,用于根據(jù)各所述算子運(yùn)行時(shí)內(nèi)存中存在的張量,確定各所述算子的算子寬度以及使用周期;

35、生成模塊,用于根據(jù)各所述算子的算子寬度以及使用周期,生成各所述算子的算子配置信息。

36、本發(fā)明的上述技術(shù)方案的有益效果如下:

37、本發(fā)明實(shí)施例中,基于npu異構(gòu)平臺(tái)的時(shí)間與空間信息結(jié)合進(jìn)行靜態(tài)內(nèi)存分配,可以有效提升處理效率,實(shí)現(xiàn)內(nèi)存復(fù)用,減少大量?jī)?nèi)存消耗。



技術(shù)特征:

1.一種npu異構(gòu)平臺(tái)的內(nèi)存分配方法,其特征在于,包括:

2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照所述npu異構(gòu)平臺(tái)中的第三目標(biāo)算子的算子配置信息中的算子寬度由大到小的順序,逐一對(duì)各所述第三目標(biāo)算子的各個(gè)張量進(jìn)行內(nèi)存分配的步驟包括:

3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述針對(duì)每一所述第二目標(biāo)張量,在已有的緩存池中查找是否存在與所述第二目標(biāo)張量相匹配的目標(biāo)緩存的步驟包括:

4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述針對(duì)每一所述第二目標(biāo)張量,在已有的緩存池中查找是否存在與所述第二目標(biāo)張量相匹配的目標(biāo)緩存的步驟包括:

5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照所述npu異構(gòu)平臺(tái)中的第三目標(biāo)算子的算子配置信息中的算子寬度由大到小的順序,逐一對(duì)各所述第三目標(biāo)算子的各個(gè)張量進(jìn)行內(nèi)存分配的步驟之前,所述方法還包括:

6.一種npu異構(gòu)平臺(tái)的內(nèi)存分配裝置,其特征在于,包括:

7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第三內(nèi)存分配模塊包括:

8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述分配單元包括:

9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述分配單元包括:

10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括


技術(shù)總結(jié)
本發(fā)明提供一種NPU異構(gòu)平臺(tái)的內(nèi)存分配方法及裝置,屬于神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,所述NPU異構(gòu)平臺(tái)的內(nèi)存分配方法包括:獲取NPU異構(gòu)平臺(tái)中的第一目標(biāo)算子,對(duì)第一目標(biāo)算子的輸入張量和輸出張量、以及第一目標(biāo)張量進(jìn)行內(nèi)存分配;獲取NPU異構(gòu)平臺(tái)中的第二目標(biāo)算子,將第二目標(biāo)算子的輸出張量的內(nèi)存復(fù)用第二目標(biāo)算子的輸入張量的內(nèi)存,第二目標(biāo)算子為支持原地操作的算子;按照NPU異構(gòu)平臺(tái)中的第三目標(biāo)算子的算子配置信息中的算子寬度由大到小的順序,逐一對(duì)各第三目標(biāo)算子的各個(gè)張量進(jìn)行內(nèi)存分配。本發(fā)明中的NPU異構(gòu)平臺(tái)的內(nèi)存分配方法,基于NPU異構(gòu)平臺(tái)的時(shí)間與空間信息結(jié)合進(jìn)行靜態(tài)內(nèi)存分配,可以有效提升處理效率,實(shí)現(xiàn)內(nèi)存復(fù)用,減少大量?jī)?nèi)存消耗。

技術(shù)研發(fā)人員:王雨順,鄭成林,于謙,梁爽
受保護(hù)的技術(shù)使用者:北京超星未來(lái)科技有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2025/1/6
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
汉中市| 金堂县| 乌审旗| 新丰县| 孟津县| 民权县| 马尔康县| 巴林右旗| 喀喇沁旗| 漳平市| 漯河市| 西充县| 郸城县| 同江市| 长宁区| 专栏| 海南省| 大港区| 阿坝县| 天津市| 苍梧县| 怀化市| 瓮安县| 开江县| 沿河| 青海省| 渭南市| 成都市| 辽阳县| 罗城| 宁陵县| 土默特左旗| 慈溪市| 修文县| 个旧市| 平乐县| 德化县| 苏尼特右旗| 三江| 南康市| 鹤岗市|