TW202207222A - 記憶體分配方法、裝置、及電子設備 - Google Patents
記憶體分配方法、裝置、及電子設備 Download PDFInfo
- Publication number
- TW202207222A TW202207222A TW110100419A TW110100419A TW202207222A TW 202207222 A TW202207222 A TW 202207222A TW 110100419 A TW110100419 A TW 110100419A TW 110100419 A TW110100419 A TW 110100419A TW 202207222 A TW202207222 A TW 202207222A
- Authority
- TW
- Taiwan
- Prior art keywords
- target
- memory
- tensor
- memory space
- target computing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 136
- 238000004364 calculation method Methods 0.000 claims abstract description 88
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004083 survival effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000010937 topological data analysis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Credit Cards Or The Like (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明公開了一種記憶體分配方法,其包括:確定需要分配記憶體的多個目標計算模型;確定每一目標計算模型在計算過程中需要佔用記憶體的目標張量;根據目標張量的生命週期,確定每一目標計算模型在計算過程中佔用的目標記憶體空間;以及根據所述多個目標計算模型所佔用的目標記憶體空間確定所述多個目標計算模型在計算過程中佔用的總記憶體空間。由此,電子設備無需為其全部張量分配記憶體空間,能夠達到降低計算模型佔用記憶體空間的目的。
Description
本發明涉及人工智慧技術領域,具體涉及一種記憶體分配方法、裝置、及電子設備。
人工智慧(Artificial Intelligence, AI)是利用數位電腦或者數位電腦控制的機器類比、延伸和擴展人的智慧,感知環境、獲取知識並使用知識獲得最佳結果的理論、方法、技術及應用系統。換句話說,人工智慧是電腦科學的一個綜合技術,它企圖瞭解智慧的實質,並生產出一種新的能以人類智慧相似的方式做出反應的智慧型機器。人工智慧也就是研究各種智慧型機器的設計原理與實現方法,使機器具有感知、推理與決策的功能。
目前,隨著人工智慧技術的不斷發展,計算模型被部署在如智慧手機、平板電腦等電子設備上,用於增強電子設備的處理能力。比如,電子設備透過其部署的圖像優化模型,可以對其拍攝的圖像進行優化,提升圖像品質。
然而,計算模型在計算時會佔用電子設備大量的記憶體空間,這會影響電子設備上系統和功能應用的正常運行,另外,當電子設備的系統和功能應用佔用過多的記憶體空間時,將限制計算模型所能夠佔用的記憶體空間,這樣也會影響計算模型的計算效果。因此,如何降低計算模型佔用的記憶體空間是當前極需解決的問題。
本發明提供了一種記憶體分配方法、裝置、及電子設備,能夠降低計算模型佔用的記憶體空間。
本發明提供一種記憶體分配方法,包括:確定需要分配記憶體的多個目標計算模型;確定每一所述目標計算模型在計算過程中需要佔用記憶體的目標張量;根據所述目標張量的生命週期,確定每一所述目標計算模型在計算過程中佔用的目標記憶體空間;以及根據所述多個目標計算模型所佔用的目標記憶體空間確定所述多個目標計算模型在計算過程中佔用的總記憶體空間。
本發明提供一種記憶體分配裝置,包括:一模型確定模組,用於確定需要分配記憶體的多個目標計算模型;一張量確定模組,用於確定每一所述目標計算模型在計算過程中需要佔用記憶體的目標張量;一空間確定模組,用於根據所述目標張量的生命週期,確定每一所述目標計算模型在計算過程中佔用的目標記憶體空間;以及一空間設定模組,根據所述多個目標計算模型所佔用的目標記憶體空間確定所述多個目標計算模型在計算過程中佔用的總記憶體空間。
本發明提供的電子設備,包括一處理器和一記憶體,所述記憶體儲存有一電腦程式,其中,在所述電腦程式被所述處理器執行時實行一記憶體分配方法,所述記憶體分配方法包括:確定需要分配記憶體的多個目標計算模型;確定每一所述目標計算模型在計算過程中需要佔用記憶體的目標張量;根據所述目標張量的生命週期,確定每一所述目標計算模型在計算過程中佔用的目標記憶體空間;以及,根據所述多個目標計算模型所佔用的目標記憶體空間確定所述多個目標計算模型在計算過程中佔用的總記憶體空間。
由上可知,電子設備可以將該總記憶體空間大小的記憶體區域分配給多個目標計算模型,供其在計算過程中佔用,而剩餘的其它記憶體區域則可供電子設備運行系統、功能應用等。由此,電子設備可以僅為計算模型計算過程中的部分張量分配記憶體空間,而無需為其全部張量分配記憶體空間,從而達到降低計算模型佔用記憶體空間的目的。
應當說明的是,本發明的原理是以實施在一適當的運算環境中來舉例說明。以下的說明是透過所例示的本發明具體實施例,其不應被視為限制本發明未在此詳述的其它具體實施例。
本發明實施例提供的方案涉及人工智慧的機器學習技術,具體涉及計算模型的計算階段,透過如下實施例進行說明。
本發明實施例提供一種記憶體分配方法、記憶體分配裝置、以及電子設備,其中,該記憶體分配方法的執行主體可以是本發明實施例中提供的記憶體分配裝置,或者是本發明實施例提供的電子設備,其中該記憶體分配裝置可以採用硬體或軟體的方式實現。其中,電子設備的實體展現形式可以是智慧手機、平板電腦、車載電腦、掌上型電腦、筆記型電腦、或者桌上型電腦等配置有處理器(包括但不限於通用處理器、專用處理器等,其中專用處理器比如神經網路處理器、智慧處理器等)而具有處理能力的設備。
請參照圖1,圖1為本發明實施例提供的記憶體分配方法的應用場景示意圖,以記憶體分配方法應用於實體展現形式為智慧手機的電子設備為例。請參照圖2,圖2為本發明實施例提供的記憶體分配方法的流程示意圖,本發明實施例提供的記憶體分配方法可由圖1的電子設備實現,其詳細流程說明如下。
在步驟101中,確定需要分配記憶體的多個目標計算模型。
以下以記憶體分配方法的執行主體為電子設備進行說明。
應當說明的是,計算模型(包括但不限於高斯模型、回歸模型、網路模型等)在計算過程中會產生中間資料,這些中間資料通常需要透過記憶體進行承載,相應的,為了確保計算模型能夠正常計算,電子設備需要為計算模型分配記憶體。
相應的,在本發明實施例中,電子設備首先按照配置的模型確定策略,確定出需要分配記憶體的多個計算模型,記為目標計算模型。
示例性的,模型確定策略可以被配置為:將電子設備上部署全部的計算模型確定為需要分配記憶體的目標計算模型。
模型確定策略還可以被配置為:將電子設備上部署的且預設時間段記憶體在計算需求的計算模型確定為需要分配記憶體的目標計算模型等。
比如,假設電子設備上部署有4個計算模型,分別為計算模型A、計算模型B、計算模型C以及計算模型D,若模型確定策略被配置為:將電子設備上全部的計算模型確定為需要分配記憶體的目標計算模型,則電子設備將其上部署的計算模型A、計算模型B、計算模型C以及計算模型D共4個計算模型確定為需要分配記憶體的多個目標計算模型。
在步驟102中,確定每一目標計算模型在計算過程中需要佔用記憶體的目標張量。
如上所述,張量作為計算模型計算過程中的中間資料,通常需要透過記憶體進行承載,但是,在特定情形下,計算模型計算過程中產生的張量可以透過記憶體之外的其它器件承載,比如,可以透過處理器中的快取進行承載。基於此,本發明實施例預先配置有張量確定策略,該張量確定策略用於描述如何確定需要佔用記憶體的張量,亦即是由記憶體承載的張量。
相應的,電子設備在確定出需要分配記憶體的多個目標計算模型之後,進一步按照配置的張量確定策略,確定出每一目標計算模型在計算過程中需要佔用記憶體的張量,記為目標張量。由此,電子設備並不為目標計算模型在計算過程中產生的全部張量分配記憶體,而是為其中的部分張量分配記憶體。
比如,假設計算模型A在計算過程中共產生5個張量,則根據配置的張量確定策略,電子設備可以僅將5個張量中的1個、2個、3個、或者4個張量確定為需要分配記憶體的目標張量。
在步驟103中,根據每一目標計算模型中目標張量的生命週期,確定每一目標計算模型在計算過程中佔用的目標記憶體空間。
其中,目標張量的生命週期可以理解為目標張量從開始產生到使用完成的整個週期,可以劃分為兩個階段,即存活狀態和非存活狀態。基於此,本發明實施例配置有基於生命週期的空間確定策略,比如,僅確保處於存活狀態的目標張量佔用記憶體。
本發明實施例中,在確定出每一目標計算模型在計算過程中需要佔用記憶體的目標張量之後,電子設備進一步獲取到每一目標物理模型中目標張量的生命週期,並按照配置的空間確定策略,根據每一目標計算模型中目標張量的生命週期,確定出每一目標計算模型在計算過程中佔用的記憶體空間,記為目標記憶體空間。
在步驟104中,將多個目標計算模型中佔用的最大目標記憶體空間設為多個目標計算模型在計算過程中佔用的總記憶體空間。
本發明實施例中,在確定出每一目標計算模型在計算過程中佔用的目標記憶體空間之後,電子設備進一步將多個目標計算模型中佔用的最大目標記憶體空間設為多個目標計算模型在計算過程中佔用的總記憶體空間,即,多個目標計算模型將在計算時重複使用該總記憶體空間大小的記憶體區域。
比如,電子設備確定出三個目標計算模型,分別為目標計算模型A、目標計算模型B以及目標計算模型C,假設確定出目標計算模型A在計算過程中佔用的目標記憶體空間為電子設備全部記憶體空間的25%,目標計算模型B在計算過程中佔用的目標記憶體空間為電子設備全部記憶體空間的20%,目標計算模型C在計算過程中佔用的目標記憶體空間為電子設備全部記憶體空間的15%,則電子設備將電子設備全部記憶體空間的25%設為目標計算模型A、目標計算模型B以及目標計算模型C在計算過程中佔用的總記憶體空間。
由上可知,將本發明提供的記憶體分配方法應用於電子設備時,將使得電子設備能夠確定需要分配記憶體的多個目標計算模型;以及確定每一目標計算模型在計算過程中需要佔用記憶體的目標張量;以及根據目標張量的生命週期,確定每一目標計算模型在計算過程中佔用的目標記憶體空間;以及將多個目標計算模型中佔用的最大目標記憶體空間設為多個目標計算模型在計算過程中佔用的總記憶體空間。相應的,電子設備可以將該總記憶體空間大小的記憶體區域分配給多個目標計算模型,供其在計算過程中佔用,而剩餘的其它記憶體區域則可供電子設備運行系統、功能應用等。由此,電子設備可以僅為計算模型計算過程中的部分張量分配記憶體空間,而無需為其全部張量分配記憶體空間,從而達到降低計算模型佔用記憶體空間的目的。
可選地,在一實施例中,確定每一目標計算模型在計算過程中需要佔用記憶體的目標張量,包括:
(1)對每一目標計算模型進行拓撲分析,得到每一目標計算模型中運算元的拓撲結構;
(2)根據拓撲結構,對每一目標計算模型中的運算元進行深度優先排序,得到排序資訊;
(3)根據每一目標計算模型的排序資訊,將每一目標計算模型劃分為多個運算元集合;
(4)確定每一目標計算模型包括的運算元集合在計算過程中需要佔用記憶體的目標張量;
其中,運算元集合至少包括一個預設類型運算元,預設類型運算元的輸入張量的形狀與輸出張量的形狀不同。
應當說明的是,計算模型從宏觀上來看是網狀結構,由多種不同類型的運算元構成。比如,請參照圖3,圖中圓形代表不同的運算元,任意兩個圓形之間的連線即代表了對應兩個運算元間的連接關係以及資料流向。
本發明實施例中,對於每一目標計算模型,電子設備首先對其進行拓撲分析,從而得到每一目標計算模型中運算元的拓撲結構,該拓撲結構即描述了目標計算模型運算元的連接關係,以及其中資料的流向。如圖3所示,每一目標計算模型的拓撲結構可以透過有向無環圖的形式進行視覺化的呈現。
在完成對全部目標計算模型的拓撲分析,並相應得到每一目標計算模型的拓撲結構之後,電子設備進一步根據每一目標計算模型的拓撲結構,對每一目標計算模型中的運算元進行深度優先排序,得到對應的排序資訊。
在完成對全部目標計算模型的排序,並相應得到每一目標計算模型的排序資訊之後,電子設備進一步根據每一目標計算模型的排序資訊,將每一目標計算模型劃分為多個運算元集合。其中,運算元集合至少包括一個預設類型運算元,預設類型運算元的輸入張量的形狀與輸出張量的形狀不同。比如,請參照圖4,劃分的某運算元集合包括三個運算元,分別為依次連接的預設類型運算元A、非預設類型運算元B和非預設類型運算元C。其中,非預設類型運算元的輸入張量的形狀與輸出張量的形狀相同,包括但不限於加法運算元、減法運算元、乘法運算元、除法運算元以及啟動運算元( activation operand)等。
在完成對全部目標計算模型的劃分之後,電子設備進一步按照配置的張量確定策略,確定每一目標計算模型包括的運算元集合在計算過程中需要佔用記憶體的目標張量。
本發明實施例透過將完整的目標計算模型拆分為多個運算元集合,並將運算元集合作為記憶體分配的物件,相較於將整個目標計算模型作為記憶體分配的物件,本發明實施例能夠提高記憶體分配的準確性。
在一實施例中,在進行運算元集合的劃分時,電子設備可以根據每一目標計算模型的排序資訊,以運算元集合的首位運算元為預設類型運算元,且預設類型運算元和非預設類型運算元不交叉為約束條件,將預設類型運算元以及預設類型運算元連接的非預設類型運算元劃分為同一運算元集合。
比如,請參照圖5,示出了一運算元集合,該運算元集合的首位運算元為卷積運算元,依次連接了乘法運算元、加法運算元以及啟動運算元,其中,卷積運算元為預設類型運算元,乘法運算元、加法運算元和啟動運算元為非預設類型運算元。如圖5所示,其中卷積運算元的輸出張量的形狀為(1x112x112x64);乘法運算元的輸入張量即為卷積運算元的輸出張量,乘法運算元的輸出張量與自身輸入張量的形狀相同,同為(1x112x112x64);加法運算元的輸入張量即為乘法運算元的輸出張量,加法運算元的輸出張量與自身輸入張量的形狀相同,同為(1x112x112x64);啟動運算元的輸入張量即為加法運算元的輸出張量,啟動運算元的輸出張量與自身輸入張量的形狀相同,同為(1x112x112x64)。
基於本發明實施例所提供的運算元集合的劃分方式,在確定每一目標計算模型包括的運算元集合在計算過程中需要佔用記憶體的目標張量時,電子設備可以將每一目標計算模型所包括的運算元集合的輸入張量和輸出張量確定為目標張量。
本技術領域具有通常知識者應當理解的是,對於本發明實施例所劃分的運算元集合,從整體上看,該運算元集合內部的張量形狀是相同的,僅其輸入張量(即首位預設類型運算元的輸入張量)和輸出張量(即末位非預設類型運算元的輸出張量,若運算元集合僅存在一個預設類型運算元而不存在非預設類型運算元,運算元集合的輸出張量即為該預設類型運算元的輸出張量)的形狀不同,因此,本發明實施例中僅為運算元集合的輸入張量和輸出張量分配記憶體,相應將其設為目標張量,而運算元集合內部的張量則可以透過緩衝器進行承載,無需為其分配記憶體。
可選地,在一實施例中,在確定每一目標計算模型在計算過程中佔用的目標記憶體空間時,電子設備根據目標張量的生命週期,以處於存活狀態的目標張量佔用記憶體空間且處於非存活狀態的目標張量釋放記憶體空間為約束條件,為每一目標計算模型預分配記憶體空間,得到預分配的記憶體空間。
應當說明的是,預分配並不實際分配記憶體,而是一個預測的過程,透過僅保證處於存活狀態的目標張量佔用記憶體空間,在其切換至非存活狀態時釋放其佔用的記憶體空間,供存活狀態的其它目標張量重複使用,由此,可以得到目標計算模型計算所需要的記憶體空間的最大值,將其作為預分配的記憶體空間。
比如,在目標張量A由非存活狀態切換至存活狀態時,為目標張量A預分配其實際需要大小的記憶體空間,而當其由存活狀態切換至非存活狀態時,將分配給目標張量A的記憶體空間釋放,該釋放的空間可以再次分配給其它由非存活狀態切換至存活狀態的目標張量,而無需預分配的新的記憶體空間。
如上所述,預分配的記憶體空間亦即是預測的目標計算模型計算所需要的記憶體空間的最大值,因此,可以直接將預分配的每一目標計算模型的記憶體空間確定為其在計算過程中佔用記憶體的目標記憶體空間。
可選地,在一實施例中,為每一目標計算模型預分配記憶體空間的過程包括:在目標張量由非存活狀態切換至存活狀態時,若已釋放的記憶體空間足夠目標張量佔用,則從已釋放的記憶體空間中為目標張量預分配記憶體空間。
比如,請參照圖6,當目標張量A由非存活狀態切換至存活狀態時,電子設備識別曾經分配給其它目標張量但是當前已釋放的記憶體空間是否足夠目標張量A佔用,如圖6所示,當前已釋放的記憶體空間足夠目標張量A佔用,此時電子設備從已釋放的記憶體空間中為目標張量A預分配其需要佔用大小的記憶體空間,這樣剩餘的已釋放記憶體空間則可在需要時預分配給其它目標張量。
此外,在目標張量由非存活狀態切換至存活狀態時,若已釋放的記憶體空間不足以供目標張量佔用,則為目標張量預分配新的記憶體空間。比如,請參照圖7,在t1時刻,目標張量A和目標張量B由非存活狀態切換至存活狀態,由於此時並不存在已釋放的記憶體空間,電子設備將分別為目標張量A和目標張量B預分配其需要佔用大小的記憶體空間。在t2時刻,目標張量A由存活狀態切換至非存活狀態,電子設備相應釋放分配給目標張量A的記憶體空間。在t3時刻,目標張量C由非存活狀態切換至存活狀態,但是當前已釋放的記憶體空間不足夠目標張量C佔用,此時電子設備為目標張量C預分配新的記憶體空間,此時,用於承載目標張量的總的記憶體空間相應增加。在t4時刻,目標張量B由存活狀態切換至非存活狀態,電子設備相應釋放分配給目標張量B的記憶體空間。在t5時刻,已釋放的記憶體空間包括之前預分配給目標張量A的記憶體空間和預分配給目標張量B的記憶體空間,此時目標張量D由非存活狀態切換至存活狀態,且已釋放的記憶體空間足夠目標張量D佔用,則電子設備相應從已釋放的記憶體空間中為目標張量D預分配記憶體空間。
總的說來,本發明實施例中,在預分配記憶體空間時,按照存活狀態的目標張量佔用記憶體,釋放非存活狀態的目標張量的記憶體空間為約束,即在預分配記憶體空間時,對於存活狀態的目標張量,優先從已釋放的記憶體空間中預分配記憶體空間,若已釋放的記憶體空間不足夠目標張量佔用,則為目標張量預分配新的記憶體空間。
可選地,在一實施例中,為每一目標計算模型預分配記憶體空間的過程還包括:(1)確定出每一目標計算模型的目標張量中存在輸入輸出關係目標張量對,目標張量對包括輸入目標張量和對應的輸出目標張量;(2)對於每一目標張量對,若其中的輸入目標張量被輸入後不再使用,則為目標張量對預分配同一記憶體空間。
應當說明的是,就單層的輸入和輸出而言,輸入張量及其對應的輸出張量同時存活,資料一個一個的計算,若輸入張量使用一次後不再使用第二次,則該輸入張量所占的記憶體空間就可以被重寫,這樣,在一定程度上,輸出張量可以重複使用其對應的輸入張量的記憶體空間。
相應的,在本發明實施例中,在為每一所述目標計算模型預分配記憶體空間時,電子設備還確定出每一目標計算模型的目標張量中存在輸入輸出關係的目標張量對,該目標張量對包括輸入目標張量和對應的輸出目標張量。
比如,請參照圖8,存在兩個目標張量,分別為目標張量A和目標張量B,其中目標張量A為圖示運算元的輸入目標張量,目標張量B為圖示運算元的輸出目標張量,相應的,目標張量A和目標張量B構成目標張量對,其中目標張量A為輸入目標張量,目標張量B為輸出目標張量。
在確定出目標計算模型中的目標張量對之後,針對該目標計算模型中的每一目標張量對,若其中的輸入目標張量被輸入後不再使用,則為該目標張量對預分配同一記憶體空間,亦即目標張量對中的輸出目標張量重複使用輸入目標張量的記憶體空間。
比如,請參照圖9,在t1時刻,電子設備為目標張量A預分配了記憶體空間,在t2時刻,目標張量A被讀入緩衝器進行計算,且目標張量A不會被再次使用,電子設備將預分配給目標張量A的記憶體空間釋放,並預分配給目標張量B,其中,目標張量B為目標張量A進行計算後所輸出的目標張量。
可選地,在一實施例中,將多個目標計算模型中佔用的最大目標記憶體空間設為多個目標計算模型在計算過程中佔用的總記憶體空間之後,還包括:將前述總記憶體空間分配給前述多個目標計算模型,其中,每一目標計算模型重複使用前述記憶體。
如上所述,以上總記憶體空間為多個目標計算模型在計算過程中佔用的目標記憶體空間的最大值,該總記憶體空間可以滿足每一目標計算模型的計算所需。因此,可以為多個目標計算模型分配前述總記憶體空間大小的記憶體區域,其中,每一目標計算模型重複使用分配的前述總記憶體空間大小的記憶體區域。
應當說明的是,以上目標計算模型佔用的記憶體方式可以參照預分配記憶體的過程相應實施,此處不再祥述。
可選地,在一實施例中,將前述總記憶體空間分配給前述多個目標計算模型之後,還包括:在每一目標計算模型的計算過程中,透過預設緩衝器承載其包括的每一運算元集合內部的非目標張量。
透過以上相關描述,本技術領域具有通常知識者可以理解的是,對於每一目標計算模型而言,其包括多個運算元集合,針對任一運算元集合,該運算元集合內部的非目標張量的形狀相同,無需透過記憶體承載。相應的,在本發明實施例中,在每一目標計算模型的計算過程中,電子設備透過預設緩衝器承載其包括的每一運算元集合內部的非目標張量。比如,請參照圖5,在圖5所示的運算元集合內部,卷積運算元至啟動運算元之間的張量均為非目標張量,電子設備相應透過預設緩衝器承載。
應當說明的是,本發明實施例中對於預設緩衝器的配置不做具體限制,可由本技術領域具有通常知識者根據實際需要進行配置,比如,可以配置為電子設備處理器的內部快取。
可選地,將前述總記憶體空間分配給前述多個目標計算模型之後,還包括:
在每一目標計算模型的計算過程中,在總記憶體空間中的未佔用記憶體空間足夠目標張量佔用,但未佔用記憶體空間的最大空白塊不足夠目標張量佔用時,對未佔用記憶體空間執行記憶體整理操作。
本發明實施例中,為了確保目標張量對記憶體的穩定佔用,在每一目標計算模型的計算過程中,電子設備會即時判斷總記憶體空間中的未佔用記憶體空間(包括已釋放的記憶體空間和未被佔用過記憶體空間)是否足夠目標張量佔用,若足夠,則進一步判斷未佔用記憶體空間的最大空白塊是否足夠目標張量,若未佔用記憶體空間的最大空白塊不足夠目標張量佔用時,電子設備將對未佔用記憶體空間執行記憶體整理操作。
比如,請參照圖10,在t1時刻,目標張量D由非存活狀態切換至存活狀態,此時未佔用記憶體空間包括兩個空白塊,分別為空白塊1和空白塊2,但是其中的最大空白塊「空白塊2」也不足夠目標張量D佔用。相應的,電子設備對未佔用空間執行記憶體整理操作,將空白塊1和空白塊2整合為更大的空白塊3。然後,電子設備從空白塊3中為目標張量D分配記憶體空間供其佔用,並剩餘空白塊4可用。
可選地,在一實施例中,確定需要分配記憶體的多個目標計算模型的過程包括:在接收到計算任務時,將執行接收到的計算任務所需的計算模型設為目標計算模型。
電子設備在接收到計算任務時,將執行接收到的計算任務所需的計算模型設為目標計算模型。比如,假設電子設備上部署有4個計算模型,分別為計算模型A、計算模型B、計算模型C以及計算模型D,在接收到某計算任務,且該計算任務需要由計算模型A、計算模型B以及計算模型C協同完成時,則電子設備相應將計算模型A、計算模型B以及計算模型C確定為需要分配記憶體的多個目標計算模型。
可選地,在一實施例中,目標計算模型為一網路模型。
請參照圖11,圖11為本發明實施例提供的記憶體分配方法的另一流程示意圖,以下以記憶體分配方法的執行主體為本發明提供的電子設備,計算模型為網路模型為例進行說明,如圖11所示,本發明實施例提供的記憶體分配方法的流程還可以如下:
在步驟201中,電子設備確定需要分配記憶體的多個目標網路模型。
應當說明的是,網路模型在計算過程中會產生中間資料,這些中間資料通常需要透過記憶體進行承載,相應的,為了確保網路模型能夠正常計算,電子設備需要為網路模型分配記憶體。
相應的,在本發明實施例中,電子設備首先按照配置的模型確定策略,確定出需要分配記憶體的多個網路模型,記為目標網路模型。其中,本發明實施例對模型確定策略的配置不做具體限定,本技術領域具有通常知識者根據實際需要進行配置。
在步驟202中,電子設備對每一目標網路模型進行拓撲分析,得到每一目標網路模型中運算元的拓撲結構。
本發明實施例中,對於每一目標網路模型,電子設備首先對其進行拓撲分析,從而得到每一目標網路模型中運算元的拓撲結構,該拓撲結構即描述了目標網路模型運算元的連接關係,以及其中資料的流向。
在步驟203中,電子設備根據每一目標網路模型拓撲結構,對每一目標網路模型中的運算元進行深度優先排序,得到排序資訊。
在完成對全部目標網路模型的拓撲分析,並相應得到每一目標網路模型的拓撲結構之後,電子設備進一步根據每一目標網路模型的拓撲結構,對每一目標網路模型中的運算元進行深度優先排序,得到對應的排序資訊。
在步驟204中,電子設備根據每一目標網路模型的排序資訊,以運算元集合的首位運算元為預設類型運算元,將預設類型運算元以及預設類型運算元連接的非預設類型運算元劃分為同一運算元集合,相應得到多個運算元集合。
在完成對全部目標網路模型的排序,並相應得到每一目標網路模型的排序資訊之後,電子設備進一步根據每一目標網路模型的排序資訊,將每一目標網路模型劃分為多個運算元集合。
在步驟205中,電子設備將每一目標網路模型所包括的運算元集合的輸入張量和輸出張量確定為需要佔用記憶體的目標張量。
基於本發明實施例所提供的運算元集合的劃分方式,在確定每一目標網路模型包括的運算元集合在計算過程中需要佔用記憶體的目標張量時,電子設備可以將每一目標網路模型所包括的運算元集合的輸入張量和輸出張量確定為目標張量。
在步驟206中,電子設備根據目標張量的生命週期,以處於存活狀態的目標張量佔用記憶體空間且處於非存活狀態的目標張量釋放記憶體空間為約束條件,為每一目標網路模型預分配記憶體空間。
其中,目標張量的生命週期可以理解為目標張量從開始產生到使用完成的整個週期,可以劃分為兩個階段,即存活狀態和非存活狀態。基於此,本發明實施例配置有基於生命週期的空間確定策略,比如,僅確保處於存活狀態的目標張量佔用記憶體。
本發明實施例中,在確定出每一目標網路模型在計算過程中需要佔用記憶體的目標張量之後,電子設備進一步獲取到每一目標物理模型中目標張量的生命週期。然後,電子設備根據目標張量的生命週期,以處於存活狀態的目標張量佔用記憶體空間且處於非存活狀態的目標張量釋放記憶體空間為約束條件,為每一目標網路模型預分配記憶體空間,得到預分配的記憶體空間。
在步驟207中,電子設備將預分配的每一目標網路模型的記憶體空間確定為其在計算過程中佔用記憶體的目標記憶體空間。
如上所述,預分配的記憶體空間亦即是預測的目標網路模型計算所需要的記憶體空間的最大值,因此,可以直接將預分配的每一目標網路模型的記憶體空間確定為其在計算過程中佔用記憶體的目標記憶體空間。
在步驟208中,電子設備將多個目標網路模型中佔用的最大目標記憶體空間設為多個目標網路模型在計算過程中佔用的總記憶體空間。
本發明實施例中,在確定出每一目標網路模型在計算過程中佔用的目標記憶體空間之後,電子設備進一步將多個目標網路模型中佔用的最大目標記憶體空間設為多個目標網路模型在計算過程中佔用的總記憶體空間,即,多個目標網路模型將在計算時重複使用該總記憶體空間大小的記憶體區域。
請參照圖12,圖12為本發明實施例提供的記憶體分配裝置300的結構示意圖。其中該記憶體分配裝置300應用於電子設備,該記憶體分配裝置300包括:一模型確定模組301,用於確定需要分配記憶體的多個目標計算模型;一張量確定模組302,用於確定每一目標計算模型在計算過程中需要佔用記憶體的目標張量;一空間確定模組303,用於根據每一目標計算模型中目標張量的生命週期,確定每一目標計算模型在計算過程中佔用的目標記憶體空間;以及一空間設定模組304,用於將多個目標計算模型中佔用的最大目標記憶體空間設為多個目標計算模型在計算過程中佔用的總記憶體空間。
可選地,在一實施例中,在確定每一目標計算模型在計算過程中需要佔用記憶體的目標張量時,張量確定模組302用於:對每一目標計算模型進行拓撲分析,得到每一目標計算模型中運算元的拓撲結構;根據拓撲結構,對每一目標計算模型中的運算元進行深度優先排序,得到排序資訊;根據每一目標計算模型的排序資訊,將每一目標計算模型劃分為多個運算元集合;以及確定每一目標計算模型包括的運算元集合在計算過程中需要佔用記憶體的目標張量;其中,運算元集合至少包括一個預設類型運算元,預設類型運算元的輸入張量的形狀與輸出張量的形狀不同。
可選地,在一實施例中,在為每一目標計算模型預分配記憶體空間時,空間確定模組303用於:在目標張量由非存活狀態切換至存活狀態時,若已釋放的記憶體空間足夠目標張量佔用,則從已釋放的記憶體空間中為目標張量預分配記憶體空間。
應當說明的是,本發明實施例提供的記憶體分配裝置300與上文實施例中的記憶體分配方法屬於同一構思,在記憶體分配裝置300上可以運行記憶體分配方法實施例中提供的任一方法,其具體實現過程詳見以上實施例,此處不再贅述。
在一實施例中,還提供一種電子設備,請參照圖13,電子設備400包括一處理器401和一記憶體402。
本發明實施例中的處理器401可以是通用處理器,也可以是專用處理器,比如一神經網路處理器。
記憶體402中儲存有一電腦程式,其可以為高速隨機存取記憶體,還可以為非揮發性記憶體,比如至少一個磁片儲存裝置、快閃記憶體、或其他揮發性固態儲存裝置等。相應地,記憶體402還可以包括記憶體控制器,以提供處理器401對記憶體402中電腦程式的存取,實現如圖1及/或圖11所示的記憶體分配方法,其具體實現過程詳見以上實施例,此處不再贅述。
以上對本發明實施例所提供的一種記憶體分配方法、裝置、及電子設備進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
t1~t5:時間
300:記憶體分配裝置
301:模型確定模組
302:張量確定模組
303:空間確定模組
304:空間設定模組
400:電子設備
401:處理器
402:記憶體
101~104,201~208:步驟
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的記憶體分配方法的一應用場景示意圖。
圖2為本發明實施例提供的記憶體分配方法的一流程示意圖。
圖3是本發明實施例中網路模型的一拓撲結構示意圖。
圖4是本發明實施例中劃分的一運算元集合的拓撲結構示例圖。
圖5是本發明實施例中劃分的另一運算元集合的拓撲結構示例圖。
圖6是本發明實施例中預分配記憶體空間的一示意圖。
圖7是本發明實施例中預分配記憶體空間的又一示意圖。
圖8是本發明實施例中目標張量對的一示例圖。
圖9是本發明實施例中為圖8示出的目標張量對預分配記憶體的示意圖。
圖10是本發明實施例中執行記憶體整理操作的示意圖。
圖11是本發明實施例提供的記憶體分配方法的另一流程示意圖。
圖12是本發明實施例提供的記憶體分配裝置300的一結構示意圖。
圖13是本發明實施例提供的電子設備400的一結構示意圖。
Claims (14)
- 一種記憶體分配方法,應用於一電子設備,其包括: 確定需要分配記憶體的多個目標計算模型; 確定每一所述目標計算模型在計算過程中需要佔用記憶體的目標張量; 根據所述目標張量的生命週期,確定每一所述目標計算模型在計算過程中佔用的目標記憶體空間;以及 根據所述多個目標計算模型所佔用的目標記憶體空間確定所述多個目標計算模型在計算過程中佔用的總記憶體空間。
- 如請求項1之記憶體分配方法,其中,所述多個目標計算模型在計算過程中佔用的總記憶體空間係依據所述多個目標計算模型中佔用的最大目標記憶體空間所決定。
- 如請求項1之記憶體分配方法,其中,所述確定每一所述目標計算模型在計算過程中需要佔用記憶體的目標張量,包括: 對每一所述目標計算模型進行拓撲分析,得到每一所述目標計算模型中運算元的拓撲結構; 根據所述拓撲結構,對每一所述目標計算模型中的運算元進行深度優先排序,得到排序資訊; 根據每一所述目標計算模型的排序資訊,將每一所述目標計算模型劃分為多個運算元集合;以及 確定每一所述目標計算模型包括的運算元集合在計算過程中需要佔用記憶體的目標張量; 其中,所述運算元集合至少包括一個預設類型運算元,所述預設類型運算元的輸入張量的形狀與輸出張量的形狀不同。
- 如請求項3之記憶體分配方法,其中,所述根據每一所述目標計算模型的排序資訊,將每一所述目標計算模型劃分為多個運算元集合,包括: 根據每一所述目標計算模型的排序資訊,以運算元集合的首位運算元為預設類型運算元,將所述預設類型運算元以及所述預設類型運算元連接的非預設類型運算元劃分為同一運算元集合。
- 如請求項4之記憶體分配方法,其中,所述確定每一所述目標計算模型包括的運算元集合在計算過程中需要佔用記憶體的目標張量,包括: 將每一所述目標計算模型所包括的運算元集合的輸入張量和輸出張量確定為所述目標張量。
- 如請求項1之記憶體分配方法,其中,所述根據所述目標張量的生命週期,確定每一所述目標計算模型在計算過程中佔用的目標記憶體空間,包括: 根據所述目標張量的生命週期,以處於存活狀態的目標張量佔用記憶體空間且處於非存活狀態的目標張量釋放記憶體空間為約束條件,為每一所述目標計算模型預分配記憶體空間;以及 將預分配的每一所述目標計算模型的記憶體空間確定為其在計算過程中佔用記憶體的目標記憶體空間。
- 如請求項6之記憶體分配方法,其中,所述為每一所述目標計算模型預分配記憶體空間,包括: 在所述目標張量由非存活狀態切換至存活狀態時,若已釋放的記憶體空間足夠所述目標張量佔用,則從已釋放的記憶體空間中為所述目標張量預分配記憶體空間。
- 如請求項7之記憶體分配方法,還包括: 若已釋放的記憶體空間不足以供所述目標張量佔用,則為所述目標張量預分配新的記憶體空間。
- 如請求項6之記憶體分配方法,其中,所述為每一所述目標計算模型預分配記憶體空間,還包括: 確定出每一所述目標計算模型的目標張量中存在輸入輸出關係目標張量對,所述目標張量對包括輸入目標張量和對應的輸出目標張量;以及 對於每一目標張量對,若其中的輸入目標張量被輸入後不再使用,則為所述目標張量對預分配同一記憶體空間。
- 如請求項1之記憶體分配方法,還包括: 將所述總記憶體空間分配給所述多個目標計算模型,其中,每一所述目標計算模型重複使用所述記憶體區域。
- 如請求項1之記憶體分配方法,還包括: 在每一所述目標計算模型的計算過程中,透過預設緩衝器承載其包括的每一運算元集合內部的非目標張量。
- 如請求項10之記憶體分配方法,還包括: 在每一所述目標計算模型的計算過程中,在所述總記憶體空間中的未佔用記憶體空間足夠所述目標張量佔用,但未佔用記憶體空間的最大空白塊不足夠所述目標張量佔用時,對未佔用記憶體空間執行記憶體整理操作。
- 一種記憶體分配裝置,包括: 一模型確定模組,用於確定需要分配記憶體的多個目標計算模型; 一張量確定模組,用於確定每一所述目標計算模型在計算過程中需要佔用記憶體的目標張量; 一空間確定模組,用於根據所述目標張量的生命週期,確定每一所述目標計算模型在計算過程中佔用的目標記憶體空間;以及 一空間設定模組,根據所述多個目標計算模型所佔用的目標記憶體空間確定所述多個目標計算模型在計算過程中佔用的總記憶體空間。
- 一種電子設備,包括一處理器和一記憶體,所述記憶體儲存有一電腦程式,其中,在所述電腦程式被所述處理器執行時實行一記憶體分配方法,所述記憶體分配方法包括: 確定需要分配記憶體的多個目標計算模型; 確定每一所述目標計算模型在計算過程中需要佔用記憶體的目標張量; 根據所述目標張量的生命週期,確定每一所述目標計算模型在計算過程中佔用的目標記憶體空間;以及 根據所述多個目標計算模型所佔用的目標記憶體空間確定所述多個目標計算模型在計算過程中佔用的總記憶體空間。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010761757.8 | 2020-07-31 | ||
CN202010761757.8A CN112199190B (zh) | 2020-07-31 | 2020-07-31 | 内存分配方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202207222A true TW202207222A (zh) | 2022-02-16 |
TWI798618B TWI798618B (zh) | 2023-04-11 |
Family
ID=74006061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100419A TWI798618B (zh) | 2020-07-31 | 2021-01-06 | 記憶體分配方法、裝置、及電子設備 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220035544A1 (zh) |
CN (1) | CN112199190B (zh) |
TW (1) | TWI798618B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687523B2 (en) * | 2020-11-25 | 2023-06-27 | Salesforce, Inc. | System and method for efficiently transferring data for offline use |
WO2022198636A1 (zh) * | 2021-03-26 | 2022-09-29 | 珠海全志科技股份有限公司 | Ai处理器的内存分配方法、计算机装置及计算机可读存储介质 |
CN114201298A (zh) * | 2021-12-15 | 2022-03-18 | 建信金融科技有限责任公司 | 内存管理方法、装置、电子设备及存储介质 |
CN115080240B (zh) * | 2022-06-29 | 2023-10-10 | 美的集团(上海)有限公司 | 语音处理模型的部署方法、电子设备及存储介质 |
CN115269205B (zh) * | 2022-09-27 | 2022-12-27 | 之江实验室 | 一种面向神经网络计算的内存优化方法和装置 |
CN115269204B (zh) * | 2022-09-27 | 2022-12-30 | 之江实验室 | 一种用于神经网络编译的内存优化方法及装置 |
CN115495248B (zh) * | 2022-10-26 | 2023-09-15 | 上海燧原科技有限公司 | 一种推理卡的内存分配方法、装置、电子设备及存储介质 |
CN117032954B (zh) * | 2023-07-17 | 2024-04-26 | 北京泛睿科技合伙企业(有限合伙) | 针对终端训练模型的内存优化方法、系统、设备及介质 |
CN117172289A (zh) * | 2023-09-01 | 2023-12-05 | 苏州亿铸智能科技有限公司 | 张量切分方法、装置以及电子设备 |
CN117093509B (zh) * | 2023-10-18 | 2024-01-26 | 上海为旌科技有限公司 | 一种基于贪婪算法的片上内存地址分配方法和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2504333A1 (en) * | 2005-04-15 | 2006-10-15 | Symbium Corporation | Programming and development infrastructure for an autonomic element |
US9003416B2 (en) * | 2010-09-29 | 2015-04-07 | International Business Machines Corporation | Predicting resource requirements for a computer application |
FR2986346A1 (fr) * | 2012-01-27 | 2013-08-02 | Tymis | Procede d'utilisation d'une memoire partagee |
US9805303B2 (en) * | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
US10200824B2 (en) * | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
CN109815162A (zh) * | 2019-01-28 | 2019-05-28 | Oppo广东移动通信有限公司 | 内存管理方法、装置、移动终端及存储介质 |
CN110162338B (zh) * | 2019-05-31 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN110490313B (zh) * | 2019-08-14 | 2022-03-18 | 中科寒武纪科技股份有限公司 | 一种内存复用方法及其相关产品 |
CN110825496A (zh) * | 2019-11-13 | 2020-02-21 | 电子科技大学广东电子信息工程研究院 | 一种基于vmi的内核数据监控方法及监控系统 |
-
2020
- 2020-07-31 CN CN202010761757.8A patent/CN112199190B/zh active Active
-
2021
- 2021-01-06 TW TW110100419A patent/TWI798618B/zh active
- 2021-07-26 US US17/385,106 patent/US20220035544A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI798618B (zh) | 2023-04-11 |
US20220035544A1 (en) | 2022-02-03 |
CN112199190A (zh) | 2021-01-08 |
CN112199190B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI798618B (zh) | 記憶體分配方法、裝置、及電子設備 | |
JP6867518B2 (ja) | データ前処理方法、装置、コンピュータ機器及び記憶媒体 | |
CN110689115B (zh) | 神经网络模型处理方法、装置、计算机设备及存储介质 | |
US11704553B2 (en) | Neural network system for single processing common operation group of neural network models, application processor including the same, and operation method of neural network system | |
TWI748151B (zh) | 神經網絡計算加速器及其執行的方法 | |
CN110674936A (zh) | 一种神经网络处理方法、装置、计算机设备及存储介质 | |
US11593644B2 (en) | Method and apparatus for determining memory requirement in a network | |
JP7021904B2 (ja) | 畳み込み神経網処理方法及び装置 | |
WO2019237811A1 (zh) | 一种神经网络的内存分配方法及装置 | |
CN111488205B (zh) | 面向异构硬件架构的调度方法和调度系统 | |
WO2022068663A1 (zh) | 内存分配方法、相关设备及计算机可读存储介质 | |
EP3985509A1 (en) | Neural network segmentation method, prediction method, and related apparatus | |
CN110750351B (zh) | 多核任务调度器、多核任务调度方法、装置及相关产品 | |
CN109669772A (zh) | 计算图的并行执行方法和设备 | |
CN112084037A (zh) | 神经网络的内存分配方法及装置 | |
CN114580606A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111124644B (zh) | 任务调度资源的确定方法、装置及系统 | |
CN111523642A (zh) | 用于卷积运算的数据重用方法、运算方法及装置、芯片 | |
CN112732601A (zh) | 数据预处理方法、装置、计算机设备和存储介质 | |
JP2019106031A (ja) | データ処理システム及びデータ分析処理方法 | |
CN115829826A (zh) | 模型存储优化方法及电子设备 | |
US9032405B2 (en) | Systems and method for assigning executable functions to available processors in a multiprocessing environment | |
CN112130977B (zh) | 一种任务调度方法、装置、设备及介质 | |
CN118012631B (zh) | 一种算子执行方法、处理设备、存储介质及程序产品 | |
CN111488116A (zh) | 运算方法、装置及相关产品 |