JP6993739B2 - 予めメモリを割り当てる方法及び装置、電子回路、電子機器並びに記憶媒体 - Google Patents
予めメモリを割り当てる方法及び装置、電子回路、電子機器並びに記憶媒体 Download PDFInfo
- Publication number
- JP6993739B2 JP6993739B2 JP2020186872A JP2020186872A JP6993739B2 JP 6993739 B2 JP6993739 B2 JP 6993739B2 JP 2020186872 A JP2020186872 A JP 2020186872A JP 2020186872 A JP2020186872 A JP 2020186872A JP 6993739 B2 JP6993739 B2 JP 6993739B2
- Authority
- JP
- Japan
- Prior art keywords
- memory block
- output
- block identifier
- identifier
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation 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/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
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
現在の層の各出力について、アイドルメモリブロック識別子を記録するためのアイドルメモリブロック識別子表からメモリブロック識別子を取得する試みを行い、取得した場合、該出力の識別子と、取得したメモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子とのマッピング表に格納し、そして、アイドルメモリブロック識別子表から該メモリブロック識別子を削除し、そのうち、出力とメモリブロック識別子との前記マッピング表は、該層の各出力の識別子と、対応するメモリブロック識別子とを記録するために用いられ、取得することができない場合、1つのメモリブロック識別子を新しく生成し、該出力の識別子と、新しく生成した該メモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子との前記マッピング表に格納し、また、新しく生成した該メモリブロック識別子を、新しく生成したすべてのメモリブロック識別子を記録するためのメモリブロック識別子総表に格納し、これにより、ニューラルネットワークのフォワード計算を行うときに、該メモリブロック識別子総表に基づいて、ニューラルネットワークのフォワード計算に必要なメモリブロックを生成し;及び
現在の層の各入力について、該入力としての前の層の出力が該現在の層の後続層の入力とされない場合、該入力としての前の層の出力に対応するメモリブロック識別子をアイドルメモリブロック識別子表に格納する。
現在の層の各出力について、アイドルメモリブロック識別子を記録するためのアイドルメモリブロック識別子表からメモリブロック識別子を取得する試みを行い、取得した場合、該出力の識別子と、取得したメモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子とのマッピング表に格納し、そして、アイドルメモリブロック識別子表から該メモリブロック識別子を削除し、そのうち、出力とメモリブロック識別子との前記マッピング表は、該層の各出力の識別子と、対応するメモリブロック識別子とを記録するために用いられ、取得することができない場合、1つのメモリブロック識別子を新しく生成し、該出力の識別子と、新しく生成した該メモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子との前記マッピング表に格納し、また、新しく生成した該メモリブロック識別子を、新しく生成したすべてのメモリブロック識別子を記録するためのメモリブロック識別子総表に格納し、これにより、ニューラルネットワークのフォワード計算を行うときに、該メモリブロック識別子総表に基づいて、ニューラルネットワークのフォワード計算に必要なメモリブロックを生成し;及び
現在の層の各入力について、該入力としての前の層の出力が該現在の層の後続層の入力とされない場合、該入力としての前の層の出力に対応するメモリブロック識別子をアイドルメモリブロック識別子表に格納する。
ステップS1201において、現在の層の各入力を取得し、そして、出力と引用回数との前記対応表806に、該入力としての前の層の出力と、該出力の引用回数とのマッピング関係があるかを確定し、ある(該層において該入力としての前の層の該出力が現在の層の前に既に引用されている)場合、該前の層の出力の引用回数に単位数量をプラスし;ない場合、該入力がその対応する前の層の出力を有しないことを意味し、即ち、該入力が前の層の出力からのものでなく、このときには、出力及び出力の回数の関連操作が行われず;及び
ステップS1202において、現在の層の各出力を取得し、そして、出力と引用回数との前記対応表806において、1対のマッピング関係として該出力と該出力の引用回数とを新しく生成し、そのうち、該出力とマッピング関係を有する引用回数を第一所定値に初期化する。
ステップS1042:更新された、出力と引用回数との前記対応表における各出力の引用回数に基づいて、該出力に対応するメモリブロック識別子をアイドルメモリブロック識別子表に入れるかを判断し、これにより、ニューラルネットワークのフォワード計算の実際の実行時のメモリ再利用を達成することができる。
Vector inputs;[Tensor1,Tensor2,…] /*入力集合及びテンソル形式の要素*/
Vector outputs;[Tensor1,Tensor2,…] /*出力集合及びテンソル形式の要素*/
}
上述の入力及び出力を表すために用いられ得るテンソルクラスについて、以下のような例示的な形式が与えられる。
String name:”layer1-conv” /*テンソルの識別子*/
Shape:[300,300,3] /*テンソルの形状*/
Pointer:null /*テンソルのアドレスポインターであり、メモリ事前割り当て過程では空である*/
Datatype:int /*テンソルのデータ類型であり、選択可能なデータ類型はint、short、floatなどがある*/
}
そのうち、テンソルの形状[300,300,3]及び該テンソルクラスに定義されるデータ類型int(各int類型データが4つのバイトのメモリを占用し得るとする)から、該テンソル(入力又は出力)のデータ量が300*300*3*4=1080000バイトであることが取得され得る。
Size:300*300*3*4 /*テンソルの形状から得たテンソルのデータ量*/
Address:0x80000000 /*テンソルのアドレスポインターが指向するアドレス*/
}
以上、入力及び出力とされ得るテンソルの実施例、及び、メモリブロックポインターとされ得るテンソルのアドレスポインターの実施例を示した。
Claims (19)
- ニューラルネットワークのフォワード計算のために予めメモリを割り当てる方法であて、
ニューラルネットワークの第一層から、順に配列されるニューラルネットワークの各層について、以下の計算ステップを実行することを含み、即ち、
現在の層の各出力について、アイドルメモリブロック識別子を記録するためのアイドルメモリブロック識別子表からメモリブロック識別子を取得する試みを行い;
取得した場合、該出力の識別子と、取得したメモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子とのマッピング表に格納し、そして、アイドルメモリブロック識別子表から該メモリブロック識別子を削除し、ここで、出力とメモリブロック識別子との前記マッピング表は、該層の各出力の識別子と、対応するメモリブロック識別子とを記録するために用いられ;
取得することができない場合、1つのメモリブロック識別子を新しく生成し、該出力の識別子と、新しく生成した該メモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子との前記マッピング表に格納し、また、新しく生成した該メモリブロック識別子を、新しく生成したすべてのメモリブロック識別子を記録するためのメモリブロック識別子総表に格納し、これにより、ニューラルネットワークのフォワード計算を行うときに、該メモリブロック識別子総表に基づいて、ニューラルネットワークのフォワード計算に必要なメモリブロックを生成し;及び
現在の層の各入力について、該入力としての前の層の出力が該現在の層の後続層の入力とされない場合、該入力としての前の層の出力に対応するメモリブロック識別子をアイドルメモリブロック識別子表に格納する、方法。 - 請求項1に記載の方法であって、
各メモリブロック識別子が1つのメモリブロック容量に対応し、
アイドルメモリブロック識別子表から取得したメモリブロック識別子に対応するメモリブロック容量が該出力に必要な容量よりも小さい場合、該メモリブロック識別子に対応するメモリブロック容量を拡張する、方法。 - 請求項2に記載の方法であって、
前記の、アイドルメモリブロック識別子を記録するためのアイドルメモリブロック識別子表からメモリブロック識別子を取得することは、
アイドルメモリブロック識別子表に複数のアイドルメモリブロック識別子があり、且つ前記複数のアイドルメモリブロック識別子に対応するメモリブロック容量がすべて該出力に必要な容量よりも小さい場合、前記複数のアイドルメモリブロック識別子のうちから、対応するメモリブロック容量が最大であるアイドルメモリブロック識別子を、該出力とマッピング関係を有するメモリブロック識別子として選択することを含み、
前記の、アイドルメモリブロック識別子表から取得したメモリブロック識別子に対応するメモリブロック容量が該出力に必要な容量より小さい場合、該メモリブロック識別子に対応するメモリブロック容量を拡張することは、
前記複数のアイドルメモリブロック識別子のうちから選択された、対応するメモリブロック容量が最大であるアイドルメモリブロック識別子について、該メモリブロック識別子に対応するメモリブロック容量を、少なくとも該出力に必要な容量に等しく拡張することを含む、方法。 - 請求項2に記載の方法であって、
前記の、アイドルメモリブロック識別子表から取得したメモリブロック識別子に対応するメモリブロック容量が該出力に必要な容量よりも小さい場合、該メモリブロック識別子に対応するメモリブロック容量を拡張することは、
該出力に必要な容量に基づいて、該メモリブロック識別子に対応するメモリブロック容量を拡張することにより、該メモリブロック容量が少なくとも該出力に必要な容量に等しくなるようにさせることを含む、方法。 - 請求項1に記載の方法であって、
各メモリブロック識別子が1つのメモリブロック容量に対応し、
前記の、アイドルメモリブロック識別子を記録するためのアイドルメモリブロック識別子表からメモリブロック識別子を取得することは、
アイドルメモリブロック識別子表に複数のアイドルメモリブロック識別子がある場合、前記複数のアイドルメモリブロック識別子の各自の対応するメモリブロック容量と、該出力に必要な容量との比較を行い、該出力に必要な容量以上のメモリブロック容量のうちの、該出力に必要な容量との差が最小であるメモリブロック容量に対応するアイドルメモリブロック識別子を、該出力とマッピング関係を有するメモリブロック識別子として選択することを含む、方法。 - 請求項2~5のうちの何れか1項に記載の方法であって、
該出力に必要な容量は該出力のデータ量及びデータ類型に基づいて確定される、方法。 - 請求項1~5のうちの何れか1項に記載の方法であって、
前記計算ステップの前に、それぞれ、ニューラルネットワークの各層のために該層の入力集合及び出力集合を構築することをさらに含み、
各層の前記入力集合における各要素は、該層の各入力の識別子、データ量、及び該入力を記憶するためのメモリブロックアドレスに指向するメモリブロックポインターを含み、各層の前記出力集合における各要素は、該層の各出力の識別子、データ量、及び該出力を記憶するためのメモリブロックアドレスに指向するメモリブロックポインターを含む、方法。 - 請求項1~5のうちの何れか1項に記載の方法であって、
前記計算ステップを実行する前に、ニューラルネットワークにおける各出力が該出力の後続層の入力とされる回数を、該出力の引用回数として統計し、そして、各出力と、該出力の引用回数とのマッピング関係を記憶するための出力と引用回数との対応表を生成することをさらに含む、方法。 - 請求項8に記載の方法であって、
前記の、統計ニューラルネットワークにおける各出力が該出力の後続層の入力とされる回数を、該出力の引用回数として統計し、そして、各出力と、該出力の引用回数とのマッピング関係を記憶するための出力と引用回数との対応表を生成することは、
ニューラルネットワークの各層について、
現在の層の各入力を取得し、出力と引用回数との前記対応表に、該入力としての前の層の出力と、該出力の引用回数とのマッピング関係があるかを判断し、「ある」場合、該前の層の出力の引用回数に単位数量をプラスし;及び
現在の層の各出力を取得し、出力と引用回数との前記対応表において1対のマッピング関係として該出力と該出力の引用回数とを新しく生成し、ここで、該出力とマッピング関係を有する引用回数を第一所定値に初期化することを含む、方法。 - 請求項9に記載の方法であって、
各層について、前記計算ステップを実行することは、
現在の層の入力としての前の層の出力の引用回数から前記単位数量をマイナスすることにより、出力と引用回数との前記対応表を更新することをさらに含む、方法。 - 請求項10に記載の方法であって、
前記の、該入力としての前の層の出力が該現在の層の後続層の入力とされない場合、該入力としての前の層の出力に対応するメモリブロック識別子をアイドルメモリブロック識別子表に格納することは、
前記前の層の出力の引用回数が前記単位数量をマイナスした後に第二所定値になる場合、該前の層の出力に対応するメモリブロック識別子を前記アイドルメモリブロック識別子表に格納することを含む、方法。 - 請求項2~4のうちの何れか1項に記載の方法であって、
取得又は生成したメモリブロック識別子と、対応するメモリブロック容量とを、1対のマッピング関係として、現在の層に使用する、メモリブロック識別子と、対応するメモリブロック容量とを記憶するための使用済みメモリブロック識別子と容量とのマッピング表に記憶し、また、メモリブロック容量の前記拡張に応じて、使用済みメモリブロック識別子と容量との前記マッピング表において対応するメモリブロック識別子のメモリブロック容量を更新する、方法。 - 請求項1~5のうちの何れか1項に記載の方法であって、
出力とメモリブロック識別子との前記マッピング表には、前記ニューラルネットワークのすべての出力の識別子と、対応するメモリブロック識別子とのマッピング関係が記憶される、方法。 - 請求項1に記載の方法であって、
以下のメモリ割り当てステップをさらに含み、即ち、
前記メモリブロック識別子総表における各メモリブロック識別子のために1つのメモリブロックポインターを生成し;及び
出力とメモリブロック識別子との前記マッピング表に記録されるマッピング関係に基づいて、各層の出力を、マッピング関係を有するメモリブロック識別子のメモリブロックポインターと関連付けさせる、方法。 - ニューラルネットワークのフォワード計算のために予めメモリを割り当てる装置であって、
ニューラルネットワークの第一層から、順に配列されるニューラルネットワークの各層について、以下の操作を行うように構成される計算ユニットを含み、即ち、
ニューラルネットワークの第一層から、順に配列されるニューラルネットワークの各層について、以下の計算ステップを行い、即ち、
現在の層の各出力について、アイドルメモリブロック識別子を記録するためのアイドルメモリブロック識別子表からメモリブロック識別子を取得する試みを行い;
取得した場合、該出力の識別子と、取得したメモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子とのマッピング表に格納し、そして、アイドルメモリブロック識別子表から該メモリブロック識別子を削除し、ここで、出力とメモリブロック識別子との前記マッピング表は、該層の各出力の識別子と、対応するメモリブロック識別子とを記録するために用いられ;
取得することができない場合、1つのメモリブロック識別子を新しく生成し、該出力の識別子と、新しく生成した該メモリブロック識別子とを1対のマッピング関係として、出力とメモリブロック識別子との前記マッピング表に格納し、また、新しく生成した該メモリブロック識別子を、新しく生成したすべてのメモリブロック識別子を記録するためのメモリブロック識別子総表に格納し、これにより、ニューラルネットワークのフォワード計算を行うときに、該メモリブロック識別子総表に基づいて、ニューラルネットワークのフォワード計算に必要なメモリブロックを生成し;及び
現在の層の各入力について、該入力としての前の層の出力が該現在の層の後続層の入力とされない場合、該入力としての前の層の出力に対応するメモリブロック識別子をアイドルメモリブロック識別子表に格納する、装置。 - 請求項15に記載の装置であって、
事前割り当てユニットをさらに含み、
前記事前割り当てユニットは、
前記メモリブロック識別子総表における各メモリブロック識別子のために1つのメモリブロックポインターを生成し;及び
出力とメモリブロック識別子との前記マッピング表に記録されるマッピング関係に基づいて、各層の出力を、マッピング関係を有するメモリブロック識別子のメモリブロックポインターと関連付けさせるように構成される、装置。 - 電子回路であって、
請求項1~14のうちの何れか1項に記載の方法におけるステップを実行するように構成される回路を含む、電子回路。 - 電子機器であって、
処理器;及び
プログラムを記憶している記憶器を含み、
前記プログラムは指令を含み、前記指令は、前記処理器により実行されるときに、前記処理器に、請求項1~14のうちの何れか1項に記載の方法を実行させる、電子機器。 - プログラムを記憶している非一時的なコンピュータ可読記憶媒体であって、
前記プログラムは指令を含み、前記指令は、電子機器の処理器により実行されるときに、前記電子機器に、請求項1~14のうちの何れか1項に記載の方法を実行させる、非一時的なコンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911092427.8 | 2019-11-11 | ||
CN201911092427.8A CN112783640B (zh) | 2019-11-11 | 2019-11-11 | 预先分配内存的方法与设备、电路、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021077378A JP2021077378A (ja) | 2021-05-20 |
JP6993739B2 true JP6993739B2 (ja) | 2022-01-14 |
Family
ID=73448779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020186872A Active JP6993739B2 (ja) | 2019-11-11 | 2020-11-10 | 予めメモリを割り当てる方法及び装置、電子回路、電子機器並びに記憶媒体 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3819772B8 (ja) |
JP (1) | JP6993739B2 (ja) |
KR (1) | KR102521099B1 (ja) |
CN (1) | CN112783640B (ja) |
WO (1) | WO2021093507A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117751350A (zh) * | 2021-11-24 | 2024-03-22 | 英特尔公司 | 神经网络的存储器内保护 |
CN114298294B (zh) * | 2021-12-28 | 2022-11-01 | 杭州雄迈集成电路技术股份有限公司 | 一种基于硬件加速器的神经网络内存优化方法和装置 |
CN114492775A (zh) * | 2022-01-13 | 2022-05-13 | 哲库科技(上海)有限公司 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
CN117785759B (zh) * | 2024-02-28 | 2024-04-23 | 北京壁仞科技开发有限公司 | 数据存储方法、数据读取方法、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829610A (zh) | 2018-04-02 | 2018-11-16 | 浙江大华技术股份有限公司 | 一种神经网络前向计算过程中的内存管理方法及设备 |
JP2019133666A (ja) | 2018-02-02 | 2019-08-08 | 三星電子株式会社Samsung Electronics Co.,Ltd. | グラフィックプロセシングユニット上での機械学習トレーニングのためのメモリ管理方法及びシステム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183151B2 (en) * | 2013-08-30 | 2015-11-10 | Vmware, Inc. | Thread cache allocation |
US10083395B2 (en) * | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
CN104951370B (zh) * | 2015-06-02 | 2018-08-21 | 大唐移动通信设备有限公司 | 一种内存管理方法及装置 |
KR20170000109A (ko) * | 2015-06-23 | 2017-01-02 | 주식회사 인프라웨어 | 메모리 블록 리스트가 병렬로 배열된 메모리 풀에서 메모리를 할당 및 해제하는 방법 및 장치 |
WO2018071546A1 (en) * | 2016-10-11 | 2018-04-19 | The Research Foundation For The State University Of New York | System, method, and accelerator to process convolutional neural network layers |
CN108874532B (zh) * | 2017-06-01 | 2020-11-06 | 北京旷视科技有限公司 | 内存分配方法及设备 |
CN108304265B (zh) * | 2018-01-23 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置及存储介质 |
WO2019165316A1 (en) * | 2018-02-23 | 2019-08-29 | The Regents Of The University Of California | Architecture to compute sparse neural network |
CN110321999B (zh) * | 2018-03-30 | 2021-10-01 | 赛灵思电子科技(北京)有限公司 | 神经网络计算图优化方法 |
US11562213B2 (en) * | 2018-04-17 | 2023-01-24 | Intel Corporation | Methods and arrangements to manage memory in cascaded neural networks |
CN115220918A (zh) * | 2018-06-13 | 2022-10-21 | 华为技术有限公司 | 一种神经网络的内存分配方法及装置 |
CN109491784B (zh) * | 2018-10-18 | 2021-01-22 | 北京旷视科技有限公司 | 降低内存占用量的方法、装置、电子设备、可读存储介质 |
CN109815162A (zh) * | 2019-01-28 | 2019-05-28 | Oppo广东移动通信有限公司 | 内存管理方法、装置、移动终端及存储介质 |
-
2019
- 2019-11-11 CN CN201911092427.8A patent/CN112783640B/zh active Active
-
2020
- 2020-10-15 WO PCT/CN2020/121046 patent/WO2021093507A1/zh active Application Filing
- 2020-11-10 EP EP20206791.4A patent/EP3819772B8/en active Active
- 2020-11-10 JP JP2020186872A patent/JP6993739B2/ja active Active
- 2020-11-11 KR KR1020200150547A patent/KR102521099B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019133666A (ja) | 2018-02-02 | 2019-08-08 | 三星電子株式会社Samsung Electronics Co.,Ltd. | グラフィックプロセシングユニット上での機械学習トレーニングのためのメモリ管理方法及びシステム |
CN108829610A (zh) | 2018-04-02 | 2018-11-16 | 浙江大华技术股份有限公司 | 一种神经网络前向计算过程中的内存管理方法及设备 |
Non-Patent Citations (1)
Title |
---|
WANG, L., et al.,SuperNeurons: Dynamic GPU Memory Management for Training Deep Neural Networks,arXiv.org [online],2018年01月13日,[retrieved on 2021-11-25] Retrieved from the Internet: <URL: https://arxiv.org/abs/1801.04380> |
Also Published As
Publication number | Publication date |
---|---|
KR102521099B1 (ko) | 2023-04-11 |
CN112783640A (zh) | 2021-05-11 |
EP3819772B8 (en) | 2022-11-30 |
WO2021093507A1 (zh) | 2021-05-20 |
EP3819772A1 (en) | 2021-05-12 |
CN112783640B (zh) | 2023-04-04 |
EP3819772B1 (en) | 2022-04-27 |
KR20210057693A (ko) | 2021-05-21 |
JP2021077378A (ja) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6993739B2 (ja) | 予めメモリを割り当てる方法及び装置、電子回路、電子機器並びに記憶媒体 | |
CN110390387B (zh) | 对深度学习应用所用资源进行评估 | |
CN109284815B (zh) | 神经网络模型算法编译方法、装置及相关产品 | |
TWI798618B (zh) | 記憶體分配方法、裝置、及電子設備 | |
CN109543825B (zh) | 神经网络模型算法编译方法、装置及相关产品 | |
CN111488205B (zh) | 面向异构硬件架构的调度方法和调度系统 | |
US20210142154A1 (en) | Memory pre-allocation for forward calculation in a neural network | |
CN109324890B (zh) | 资源管理方法、装置及计算机可读存储介质 | |
CN114610294B (zh) | 仿真实验效能指标并发计算控制方法、装置和计算机设备 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
CN110750307B (zh) | 一种微服务架构构建方法及装置 | |
CN113778961B (zh) | 一种cim模型数据的生产管理方法、装置及系统 | |
CN113094125B (zh) | 业务流程处理方法、装置、服务器及存储介质 | |
CN114201298A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
JP2023553220A (ja) | マルチインスタンスプロセスのためのプロセスマイニング | |
CN113407343A (zh) | 一种基于资源分配的业务处理方法、装置及设备 | |
WO2021219211A1 (en) | Memory allocation in a neural network | |
CN116010093A (zh) | 数据处理方法、装置、计算机设备和可读存储介质 | |
CN110737533B (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
CN110333870B (zh) | Simulink模型变量分配的处理方法、装置及设备 | |
CN109558565B (zh) | 运算方法、装置及相关产品 | |
CN113448962B (zh) | 数据库数据管理方法和装置 | |
US20240104016A1 (en) | Intermediate Representation Method and Apparatus for Compiling Computation Graphs | |
WO2024065866A1 (zh) | 一种用于计算图编译的中间表示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211027 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6993739 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |