[發明專利]一種神經網絡的內存分配方法及裝置有效
| 申請號: | 201810607693.9 | 申請日: | 2018-06-13 |
| 公開(公告)號: | CN110597616B | 公開(公告)日: | 2022-07-29 |
| 發明(設計)人: | 黃莉華;丁皓;范翱翔 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06N3/063 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 馮艷蓮 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 神經網絡 內存 分配 方法 裝置 | ||
本申請涉及人工智能或者機器學習領域,具體提供一種神經網絡的內存分配方法及裝置,神經網絡在運行時,需占用N個內存塊,該方法包括:確定N個內存塊的信息;根據N個內存塊的大小,對N個內存塊進行由大到小排序,獲得N個內存塊的排序序列;分配第一內存塊給神經網絡,用于進行神經網絡中第一節點集合的運算;判斷第n內存塊是否可復用已分配集合中的內存塊,已分配集合中包括已經分配給神經網絡的內存塊,如果第n內存塊可復用已分配集合中的內存塊,則將可復用的內存塊分配給神經網絡,用于進行神經網絡中第n節點集合的運算,并更新已分配集合;其中,所述第n內存塊為第二內存塊至第N內存塊中的任一內存塊。采用本申請的方法及裝置,可優化神經網絡的內存分配。
技術領域
本申請涉及深度學習技術領域,尤其涉及一種神經網絡的內存分配方法及裝置。
背景技術
在當前的計算機深度學習領域,為了取得更好的算法精度,深度學習神經網絡越來越復雜,硬件能力限制了神經網絡向更深的方向發展,必須進行內存的優化。為了實現內存的優化,業界通常采用以下內存分配策略:
運行整個神經網絡,然后按照整個神經網絡運行的前后順序,為整個神經網絡分配內存。比如,神經網絡在運行過程中,依次需要占用100M的內存塊、10M的內存塊和50M的內存塊。那么在現有技術中,當神經網絡申請100M的內存塊時,可為神經網絡分配一100M的內存塊,然后當神經網絡申請10M的內存塊時,可判斷一下該10M的內存塊申請是否可用復用上述已分配的100M內存塊,如果可以,則不再為所申請的10M內存塊分配新的內存塊,而使該10M內存塊申請復用上述100M內存塊,同理,當神經網絡申請50M的內存塊時,也判斷一下該50M的內存塊申請是否可復用上述已分配的100M內存塊,且如果可復用,則分配該50M的內存塊復用上述已分配的100M內存塊,否則,為該50M內存塊申請分配一新的50M內存塊。
通過上述記載可知,在現有技術中,當神經網絡申請一內存塊時,首先需要判斷一下該申請的內存塊是否可復用已分配的內存塊,如果可以,則直接分配該申請的內存塊復用已分配的內存塊,如果不可以,再為該內存塊申請分配新的內存塊。但是,若申請的10M內存塊和申請的50M內存塊都可復用已分配的100M的內存塊,會出現申請的10M內存塊復用已分配的100M內存塊,而對神經網絡分配一50M內存塊,整個神經網絡需共占用150M的內存塊,導致整個神經網絡占用的內存較大,內存分配不合理。
發明內容
本申請實施例提供一種神經網絡的內存分配方法及裝置,以優化神經網絡的內存。
第一方面,提供一種神經網絡的內存分配方法,神經網絡在運行時,需占用N個內存塊,N為大于等于1的整數,方法包括:確定N個內存塊的信息,N個內存塊的信息包括N個內存塊的大小和N個內存塊中每個內存塊一一對應的節點集合,每個內存塊用于進行神經網絡中與每個內存塊一一對應的節點集合的運算;根據N個內存塊的大小,對N個內存塊進行由大到小排序,獲得N個內存塊的排序序列;分配第一內存塊給神經網絡,用于進行神經網絡中第一節點集合的運算,其中,第一內存塊為N個內存塊中大小最大的內存塊;判斷第n內存塊是否可復用已分配集合中的內存塊,已分配集合中包括已經分配給神經網絡的內存塊,如果第n內存塊可復用已分配集合中的內存塊,則將可復用的內存塊分配給神經網絡,用于進行神經網絡中第n節點集合的運算,并更新已分配集合,其中,n為大于或等于2,小于或等于N的正整數;根據排序序列,從n=2到n=N依次執行上述判斷,若判斷為是,則更新已分配集合。
由上可見,在本申請實施例中,按照內存塊的大小,進行內存塊的分配與復用,相對于現有技術中,按照內存塊的申請順序,進行內存塊的分配與復用,可得到全部內存塊中復用的全局最優解,從而在內存塊復用過程中,可在大小相近的內存塊間進行復用,避免了較小內存塊復用已分配較大內存塊,為較大內存塊重新分配內存塊的問題,優化了神經網絡的內存分配。
在一種可能的實現方式中,如果第n內存塊不可復用已分配集合中的內存塊,則分配第n內存塊給神經網絡,用于進行神經網絡中第n節點集合的運算。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810607693.9/2.html,轉載請聲明來源鉆瓜專利網。





