Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7311981B2 - 機械学習訓練のためのスラブ基盤のメモリ管理 - Google Patents
[go: Go Back, main page]

JP7311981B2 - 機械学習訓練のためのスラブ基盤のメモリ管理 - Google Patents

機械学習訓練のためのスラブ基盤のメモリ管理 Download PDF

Info

Publication number
JP7311981B2
JP7311981B2 JP2019034564A JP2019034564A JP7311981B2 JP 7311981 B2 JP7311981 B2 JP 7311981B2 JP 2019034564 A JP2019034564 A JP 2019034564A JP 2019034564 A JP2019034564 A JP 2019034564A JP 7311981 B2 JP7311981 B2 JP 7311981B2
Authority
JP
Japan
Prior art keywords
memory
segments
segment
user
level process
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
Application number
JP2019034564A
Other languages
English (en)
Other versions
JP2019160306A (ja
Inventor
周桓 李
亮▲そく▼ 奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019160306A publication Critical patent/JP2019160306A/ja
Application granted granted Critical
Publication of JP7311981B2 publication Critical patent/JP7311981B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Feedback Control In General (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、機械学習(machine learning)に関する。さらには、具体的に機械学習のためのメモリ管理システム及び方法に関する。
データ中心型機械学習訓練(Data-centric machine learning training)は、大量のデータのパターンを検討してモデルを学習する。一部の実施形態において、コンピューティングユニット及びストレージユニットは分離され、大量のデータがソリッドステートドライブ(solid state drives、SSDs)で中央処理装置(central processing units、CPUs)に低速のインターフェイスを通じて伝達される。このことは、性能及びエネルギーの非効率性をもたらす。埋め込まれたグラフィック処理装置(graphics processing units、GPUs)に格納の最中、機械学習訓練(machine learning training)は、データをコードにさらに近く移動させる向上された解決策なので、一部の関連分野のアーキテクチャの非効率性を減少させる。
しかし、SSD内にGPUを集積することは、GPU DRAM(dynamic random access memory)サイズと関連する新しい課題を導くことがある。SSDのパワー及びエネルギー制約はSSD内のDRAMサイズが制限されるので、SSD内に埋め込まれたGPUの機械学習訓練の効率性を減少させる。ページ単位にメモリを管理するGPUのための関連分野における異種のメモリ管理スキームは、機械学習訓練動作で正しく遂行されないので、メモリ管理オーバーヘッドを増加させることがある。
したがって、格納の最中に機械学習訓練を可能にする、効率的なメモリ管理スキームに対する要求が提起される。
米国公開特許第2005/0240745号明細書 米国公開特許第2008/0109171号明細書
本発明の目的は、機械学習訓練のためのスラブ基盤のメモリ管理のためのシステム及び方法を提供することにある。
本発明の実施形態によれば、オペレーティングシステムを実行する処理回路に機械学習のための方法が提供され、処理回路は、第1メモリ及び第2メモリに接続される。前記方法は、処理回路で実行されているユーザレベルプロセスが、オペレーティングシステムから、第1メモリからの第1メモリ割当を要請し、第1メモリ割当は、複数の第1セグメントを含み、複数の第1セグメントの中で第1セグメントは第1種類のデータオブジェクトを格納するのに十分なサイズを有する段階と、ユーザレベルプロセスが、第1計算の結果が第1種類のデータオブジェクトであることを判断する段階と、第1計算の結果が第1種類のデータオブジェクトであることを判断することに応答して、ユーザレベルプロセスが、複数の第1セグメントの全てが使用中であることを判断する段階と、ユーザレベルプロセスが、複数の第1セグメントの全てが使用中であることを判断することに応答して、複数の第1セグメントの中で物理的アドレスを有する最長時間未使用第1セグメントを識別する段階と、ユーザレベルプロセスが、最長時間未使用第1セグメントの内容を第2メモリにコピーする段階と、第1計算を遂行する段階と、最長時間未使用第1セグメントに前記第1計算の前記結果を格納する段階と、を含む。
一例として、第1種類のデータオブジェクトは、ニューラルネットワークのフォワード活性化である。
一例として、第1種類のデータオブジェクトは、ニューラルネットワークのバックプロパゲーション活性化である。
一例として、前記方法はユーザレベルプロセスが、第1仮想のポインターを仮想のポインタークラスのインスタンスとしてインスタンス化する段階を含み、ユーザレベルプロセスが複数の第1セグメントの全てが使用中であることを判断する段階は、複数の第1セグメントの全てが使用中であるか否かを判断するために、仮想のポインタークラスのメンバー関数を実行する段階を含む。
一例として、最長時間未使用第1セグメントに第1計算の結果を格納する段階は、第1仮想のポインターのメンバー変数に最長時間未使用第1セグメントの物理的アドレスを割当する段階を含む。
一例として、ユーザレベルプロセスが、最長時間未使用第1セグメントの内容を第2メモリにコピーする段階は、最長時間未使用第1セグメントの物理的アドレスから第2メモリの物理的アドレスに第2仮想のポインターのメンバー変数の値を変更する段階を含む。
一例として、前記方法は、ユーザレベルプロセスが、オペレーティングシステムから第1メモリからの第2メモリ割当を要請し、第2メモリ割当は、複数の第2セグメントを含み、複数の第2セグメントの中で第2セグメントは第2種類のデータオブジェクトを格納するのに十分なサイズを有する段階と、ユーザレベルプロセスが、第2計算の結果が第2種類のデータオブジェクトであることを判断する段階と、第2計算の結果が第2種類のデータオブジェクトであることを判断することに応答して、ユーザレベルプロセスが、複数の第2セグメントのいずれも未使用でないことを判断する段階と、ユーザレベルプロセスが、複数の第2セグメントのいずれも未使用でないことを判断することに応答して、複数の第2セグメントの中で物理的アドレスを有する最長時間未使用第2セグメントを識別する段階と、ユーザレベルプロセスが、最長時間未使用第2セグメントの内容を第2メモリにコピーする段階と、第2計算を遂行する段階と、最長時間未使用第2セグメントに第2計算の結果を格納する段階と、を含む。
一例として、第2種類のデータオブジェクトは、ニューラルネットワークの加重値を含む。
一例として、第2種類のデータオブジェクトは、ニューラルネットワークの加重値の勾配をさらに含む。
一例として、処理回路は、グラフィック処理装置である。
一例として、第1メモリは、グラフィック処理装置のメモリバスでのメモリである。
一例として、第2メモリは、PCIe(peripheral component interconnect express)接続を通じて前記グラフィック処理装置に接続される。
本発明の実施形態によれば、機械学習のためのシステムが提供される。システムは、処理回路と、処理回路に接続される第1メモリと、処理回路に接続される第2メモリと、命令語を格納する非一時的コンピュータ読出し可能格納媒体と、を含み、処理回路によって命令語が実行される場合、命令語は、処理回路によってオペレーティングシステムを実行し、オペレーティングシステム内のユーザレベルプロセスを開始するようにし、ユーザレベルプロセスは、オペレーティングシステムから第1メモリの第1メモリ割当を要請し、第1メモリ割当、は複数の第1セグメントを含み、複数の第1セグメントの各々は、第1種類のデータオブジェクトを格納するのに十分なサイズを有し、第1計算の結果が第1種類のデータオブジェクトであることを判断し、第1計算の結果が第1種類のデータオブジェクトであることを判断することに応答して、複数の第1セグメントのいずれも未使用でないことを判断し、複数の第1セグメントのいずれも未使用でないことを判断することに応答して、複数の第1セグメントの中で物理的アドレスを有する最長時間未使用第1セグメントを識別し、最長時間未使用第1セグメントの内容を第2メモリにコピーし、第1計算を遂行し、最長時間未使用第1セグメントに第1計算の前記結果を格納する、ように構成されている。
一例として、第1種類のデータオブジェクトは、ニューラルネットワークのフォワード活性化である。
一例として、第1種類のデータオブジェクトは、ニューラルネットワークのバックプロパゲーション活性化である。
一例として、処理回路は、グラフィック処理装置である。
一例として、第1メモリは、メモリ管理ユニットを通じてグラフィック処理装置に接続される。
一例として、第2メモリは、PCIe(peripheral component interconnect express)接続を通じてグラフィック処理装置に接続されるメモリである。
本発明の実施形態によれば、システムが提供される。システムは、グラフィック処理装置と、メモリ管理ユニットを通じてグラフィック処理装置に接続される第1メモリと、PCIe(peripheral component interconnect express)接続を通じて第1メモリに接続されるホストと、を含み、ホストは、中央処理装置と、第2メモリと、を含む。 グラフィック処理装置は、命令語を格納する非一時的コンピュータ読出し可能格納媒体に接続され、グラフィック処理装置によって命令語が実行される場合、命令語は、グラフィック処理装置によってオペレーティングシステムを実行し、オペレーティングシステム内のユーザレベルプロセスを開始するようにし、ユーザレベルプロセスは、オペレーティングシステムから、第1メモリの第1メモリ割当を要請し、第1メモリ割当は複数の第1セグメントを含み、複数の第1セグメントの各々は第1種類のデータオブジェクトを格納するのに十分なサイズを有し、第1計算の結果が第1種類のデータオブジェクトであることを判断し、第1計算の結果が第1種類のデータオブジェクトであることを判断することに応答して、複数の第1セグメントのいずれも未使用でないことを判断し、複数の第1セグメントのいずれも未使用でないことを判断することに応答して、複数の第1セグメントの中で物理的アドレスを有する最長時間未使用第1セグメントを識別し、最長時間未使用第1セグメントの内容を第2メモリにコピーし、第1計算を遂行し、最長時間未使用第1セグメントに第1計算の前記結果を格納するように構成されている。
一例として、第1種類の前記データオブジェクトは、ニューラルネットワークのフォワード活性化である。
本発明によれば、機械学習訓練のためのスラブ基盤のメモリ管理を使用することによって、オーバーヘッド及びメモリ断片化(fragmentation)が減少し、機械学習訓練の効率性を増加させることができる。
本発明の実施形態に係る機械学習のためのシステムのブロック図である。 本発明の実施形態に係るグラフィック処理ユニットでのメモリ接近に対するフローチャートである。 本発明の実施形態に係るメモリダイヤグラムである。 本発明の実施形態に係るスラブ基盤のメモリ管理に対する図面である。 本発明の実施形態に係るメモリオブジェクト移送に対する図面である。
添付された図面と関連して以下に説明する詳細な説明は、本発明によって提供される機械学習訓練のためのスラブ基盤のメモリ管理のためのシステム及び方法の例示的な実施形態に対する説明として意図されており、本発明が構成されるか、或いは利用されることができる唯一の形式を示すことを意図するものではない。詳細な説明は、図示された実施形態と関連して本発明の特徴を説明する。しかし、同一であるか、或いは均等な機能及び構造は、また、本発明の範囲内に含まれるものと意図される他の実施形態によって達成され得ることが理解されるべきである。ここで、異なって表示されない限り、同一の図面符号は、同一の構成又は特徴を指示するように意図されている。
例えば、特定機械学習アプリケーションのようなGPU(graphics processing unit)を使用する一部のアプリケーションに対して、主要性能の出口が狭い現象がGPUメモリを制限する。高速GPUメモリと結合してさらに低速やさらに大きいメモリを共に利用して大きいメモリ空間をGPUに提供する異種のメモリ管理は、性能の出口が狭い現象の性能影響を減少させるのに使用され得る。しかし、このような接近法は、機械学習アプリケーションにあまりにも適合ではないことがあり得る。このように、一部の実施形態で、効率的な機械学習訓練のための機械学習訓練の独特な特性は、機械学習アプリケーションに適合されたメモリ管理システムを提供するのに使用される。
図1は、一部の実施形態で機械学習動作を遂行するためのシステムを図示する。システムはMMU(memory management unit、メモリ管理ユニット)115を通じてホストCPU110に接続されるシステムメモリ105を有するホストを含む。GPU120はGPUメモリ125から検索されたデータを使用して計算を遂行し、動作の結果をGPUメモリ125に格納する。GPU120によるGPUメモリ125への接近はIOMMU(input-output memory management unit、入出力メモリ管理ユニット)130を通じてなされ、IOMMU130はCPU110及びGPU120のように、(後述される)処理回路である。PCIe(peripheral component interconnect express)バス及びPCIeスイッチは、メモリ管理ユニット115、システムメモリ105、GPUメモリ125、及び入出力メモリ管理ユニット130の間の接続を形成する。CPU110によるメモリ接近は、仮想のメモリアドレスVAで遂行される。即ち、任意の与えられた仮想のアドレスは、MMU115によって物理的メモリアドレスに変換される。GPU120によるメモリ接近は、統合された仮想のアドレスが支援される場合、仮想のメモリアドレスを使用して遂行されるか、或いは、統合されたアドレスが支援されない場合に、装置メモリアドレスDAを使用して遂行されることができる。与えられたアドレスは、GPU120に接続された入出力メモリ管理ユニット130によって該当物理的メモリアドレスに変換される。
メモリのデータオブジェクトを接近するのに使用されるインターコネクトは、コンピューティングユニット及びデータオブジェクトの位置に依存する。システムメモリバスは、CPU110によるシステムメモリ105に割当されたデータオブジェクトへの接近のために使用され、GPUメモリバスは、GPUメモリ125に割当されたデータオブジェクトへのGPU120による接近のために使用される。GPUメモリ125のデータオブジェクトへのCPU110による接近のために、そして、システムメモリ105のデータオブジェクトへのGPU120による接近のために、データオブジェクト移送(migration)が、PCIeバスを経由して遂行される。
図2は、ホストからシステムメモリ105を低速のメモリとして使用する場合の一部の実施形態のデータオブジェクト移送の全体順序を図示する。低速のメモリは、ホストからシステムメモリである必要はなく、不揮発性メモリエクスプレス(nonvolatile memory express、NVMe)ソリッドステートドライブ(SSD)、又は、SSD-内部のインターコネクトを経由して接近され得るSSD装置内の内部フラッシュアレイのような任意の類型のメモリ装置である。SSD装置内のGPUは、例えばSSD-内部のインターコネクトを経由してフラッシュコントローラと通信することによって、SSD装置のフラッシュアレイに直接接近することができる。図2に図示されるように、データオブジェクトを接近する(読み出すか、或いは書き込む)GPUコードを実行する前に、システムは205段階で始まる方法を採択する。システムは、先ず210段階で、データオブジェクトがGPUメモリ内に存在するか否かを検査する。データオブジェクトがGPUメモリに存在すれば、システムは、215段階に進行してGPUコードを実行する。データオブジェクトがGPUメモリに存在しなければ、システムは、220段階で、接近されるデータオブジェクトのためのGPUメモリの空間を予約する。GPUメモリに空間を予約する前に、システムは、225段階で、GPUメモリに十分な空間が存在するか否かを検査し、そうでなければ、230段階で、他のデータオブジェクトをホストメモリ(例えば、システムメモリ105)に移送(migrate)する。ホストメモリに移送(又は“追い出し(eviction)”)は最長時間未使用に基づいて遂行される。即ち、GPUメモリで最長時間未使用(least recently used)データオブジェクトが、GPUメモリ125に空間が要求される場合、ホストメモリに移送される。空間を予約した後に、システムは、235段階で、データオブジェクトがホストからシステムメモリ105のような低速のメモリに割当されるか否かを検査する。そうであれば、システムは、240段階で、低速のメモリからGPUメモリへのデータオブジェクトの移送を遂行し、215段階に進行してGPUコードを実行する。データオブジェクトが、例えばシステムメモリ105に割当されなかったら、(接近が書込み接近であることを仮定する)システムは、215段階に進行してGPUコードを実行する。
一部の実施形態で、GPUで実行するユーザレベルプロセス(例えば、ディープニューラルネットワークに対する機械学習訓練動作を遂行するユーザプロセス)は、CPU110で運用するオペレーティングシステムから(例えば、オペレーティングシステムレベルメモリ管理を遂行するカーネルレベルプロセスから)GPUメモリ125に1つ以上のメモリ割当を要請することができる。そして、GPUで実行するユーザレベルプロセスはオペレーティングシステムを通じて個別的なデータオブジェクトを割当及び割当解除する代わりに、(後述されるように)スラブ(slab)基盤のメモリ管理をユーザプロセスレベルで遂行する。これによって、メモリ割当及び割当解除がオペレーティングシステムによって遂行される場合に招来されるオーバーヘッドが防止され、メモリ断片化(fragmentation)が防止又は減少され得る。
図3は、ユーザレベルプロセスがデータオブジェクトに対する次後割当のためのオペレーティングシステムによって、割当されるメモリをどのように維持するかを図示する。単なるGPUデータオブジェクトを参照するポインターを有する機械学習フレームワークでの各々のテンソル(即ち、関連された分野の具現の場合のように、GPUメモリ125の位置を直接示すこと)を有する代わりに、各々のテンソルは、GPUメモリセグメント(即ち、GPUメモリ125に格納されたデータオブジェクト)を示すか、或いは低速のメモリセグメント(即ち、例えばシステムメモリ105のような低速のメモリに格納されたデータオブジェクト)を示す仮想のポインターを維持する。ここで使用されるように、メモリ“セグメント(segment)”は、データオブジェクトを格納するのに十分に大きい連続メモリ(contiguous memory)の領域である。テンソルによって指示されるGPUデータオブジェクトが、データオブジェクトの再使用が予想されないので、維持される必要が無い場合に、システムは、図3に図示されるように、GPUメモリのセグメントが他のテンソルによって回収(reclaim)されるように(即ち、ユーザレベルプロセスによって他のテンソルを格納するのに使用されるように)、データオブジェクトが“フリー(free)”に格納されるGPUメモリのセグメントをマークする。即ち、ユーザレベルプロセスが(GPU装置ドライバーAPI(application programming interface)を経由してデータオブジェクトを割当解除する代わりに)メモリセグメントの状態を変更する。
一部の実施形態で、ユーザレベルプロセスは、(一部の関連された分野のシステムによって遂行されるように、ページ単位にデータオブジェクトを管理する代わりに)スラブ基盤のメモリ管理を利用する。このことは、多数のデータオブジェクトが共通の類型(及びサイズ)を共有し、単一ニューラルネットワーク内で単なる制限された数のデータオブジェクト類型が存在する、ディープニューラルネットワークの特性を利用する。図4は、ユーザレベルプロセスが一部の実施形態でスラブ基盤のメモリ管理をどのように遂行するかを図示する。ユーザレベルプロセスは、リストのセットを維持し、リストの各々は、同一な類型のGPUデータオブジェクトのリストである。フリーメモリセグメントはそれが同一な類型のオブジェクトの次後割当のために再使用されるように各々のリストで識別される。
例えば、データオブジェクトの各々は、仮想のポインターによって識別され、仮想のポインターは、仮想のポインタークラスのインスタンスである。仮想のポインターは、メンバー変数として、(i)ディープニューラルネットワークのテンソル(例えば、加重値、加重値の勾配、フォワード活性化(forward activation)、又はバックプロパゲーション活性化(back propagation activation))であるデータ、及び(ii)例えば、GPUメモリ125又は低速のメモリ(例えば、システムメモリ105)の中の1つのような物理的メモリの位置に対するポインターを含むことができる。
第1リストは、(第1セグメントサイズとして称される)第1サイズの仮想のポインターのために維持される。ユーザレベルプロセスが、(第1サイズと同一なサイズを有する第1種類の複数のデータオブジェクトを収容するように)オペレーティングシステムから第1割当を要請した後、ユーザレベルプロセスは、第1サイズのデータオブジェクトの中の1つを格納するのに十分に大きい物理的メモリの領域又は“セグメント”の第1アドレスを各々示す“物理的ポインター”のリストを生成する。ユーザレベルプロセスは、物理的ポインターの各々に、(i)メモリが使用中であるか否か、フリー(free)であるか、そしてセグメントが使用中であるかを示すフラッグ、(ii)セグメントを指す(即ち、予約される)仮想のポインターへのポインター、及び(iii)最も最近の使用時間、を関連付ける。このようなリストはGPUメモリ125の空間を必要とする任意の仮想のポインターによって参照されて、既にフリー(free)であるメモリのセグメントを予約するか、或いは、最長時間未使用データオブジェクトを追い出した後、追い出しによってフリーになったセグメントを予約する。ホストからメモリの管理は、例えば、GPUメモリ125から追い出す時に複数のデータオブジェクトを格納するのに使用されるシステムメモリ125の第1割当のようなユーザレベルプロセス要請と共に、同一な方式で遂行される。
ユーザレベルプロセスは、各々が第2サイズを有する第2種類の複数のデータオブジェクトのためのアナログ第2リストを構成し、ユーザレベルプロセスは他のサイズ及び他の種類のデータオブジェクトのための他の類似なリストを構成することができる。例えば、ディープニューラルネットワークで、加重値、加重値の勾配は、全て同一なサイズ、例えば第1サイズを有する。フォワード活性化、及びバックプロパゲーション活性化は、また、全て同一なサイズ、例えば第2サイズを有する。
仮想のポインターは、例えば仮想のポインターのデータが最長時間未使用である場合、GPUメモリ125で望むセグメントサイズのシステムメモリ105にデータを移送することのように、図2の動作を遂行するための関数をメンバー関数として有する。仮想のポインターはデータオブジェクトのサイズに対応される単位にメモリ移送を遂行する。図4は、システムがリストの各々に対して最長時間未使用(least recently used、LRU)データオブジェクトの交替政策を利用する例示を図示する。図4は、特定オブジェクト類型のリスト内で最長時間未使用GPUデータオブジェクトが、同一な類型のGPUデータオブジェクトがGPUメモリに割当される必要がある場合、そしてGPUメモリに同一な類型のフリー又は“使用されない(unused)”セグメントが無い場合に、低速のメモリに移送されることを図示する。
図5は、LRU交替政策が、GPUメモリが2つのデータオブジェクトを保有する単純化された例示でどのように動作するかを図示する。このような例示では、GPU計算に使用される4つのデータオブジェクトが存在し、これらは図5で“1”から“4”のラベルが付けられている。データオブジェクト“3”を使用するGPUコードを実行する前に、システムは、実行される次のGPU計算のために、(510段階で)データオブジェクト“3”をGPUメモリに(即ち、ホスト“H”から装置(GPU)“D”に)移送する。GPUメモリが2つのデータオブジェクトを保有するので、システムは、GPUメモリから低速のメモリ(ホストからシステムメモリ105)にデータオブジェクト“1”の移送を遂行する。データオブジェクト“1”は、図5に図示されるように使用される前に、GPUメモリに再び移送される。
一部の実施形態で、システムは、プロファイリングによってスラブサイズを決定する。システムは、機械学習訓練の間にデータオブジェクトの数及びサイズが他の反複処理で同一な特性を利用する。機械学習訓練の第1反複の間に、システムは、データオブジェクトの類型及び各々の類型を有するデータオブジェクトの数のようなメモリ利用パターンを収集する。第2反複を開始する前に、システムは、シミュレーションを利用して、最高の予測された性能を達成するように各々のリスト内で最適のエントリの数を決定する。このような実施形態で、スラブサイズは、ニューラルネットワークの各々に対して機械学習訓練のための最適の性能を可能にする注文形(application-specific)である。
ここで、“処理回路”という用語は、データ又はデジタル信号を処理するのに採択されるハードウェア、ファームウェア、及びソフトウェアの任意の組み合わせを意味するものとして使用される。処理回路ハードウェアは、例えば、ASIC(application specific integrated circuit)、汎用又は専用CPU(central processing unit)、DSP(digital signal processor)、GPU(graphics processing unit)、及びFPGA(field programmable gate array)を含み得る。処理回路では、ここで使用されるように、各々の機能は、このような機能を遂行するように構成されるハードウェア、即ちハードワイヤードによるか、或いは、非一時的格納媒体(non-transitory storage medium)に格納される命令を実行するように構成されるCPUのようなさらに汎用のハードウェアによって遂行される。処理回路は、単一PCB(printed circuit board)上に製造されるか、或いは、幾つかの相互接続(インターコネクト)されたPCB上に分散され得る。処理回路は、他の処理回路を含むことができ、例えば処理回路はPCB上にインターコネクトされた2つの処理回路であるFPGA及びCPUを含み得る。
ここで、“第1”、“第2”、“第3”、等の用語は、多様な成分、構成要素、領域、レイヤー、及び/又はセクションを説明するように使用されるが、このような成分、構成要素、領域、レイヤー、及び/又はセクションは、このような用語に制限されてはならないことが理解される。このような用語は、単純に、1つの成分、構成要素、領域、レイヤー、及び/又はセクションを他の成分、構成要素、領域、レイヤー、及び/又はセクションと区別するように使用される。したがって、ここで説明される第1成分、構成要素、領域、レイヤー、及び/又はセクションは、本発明の思想及び範囲を逸脱することなく、第2構成要素、領域、レイヤー、及び/又はセクションと称されてよい。
ここで使用される用語は、単純に特定実施形態を説明する目的のためのものであり、本発明を制限するものであると意図されるものではない。ここで使用される“実質的に”、“約”という用語及び類似な用語は、程度に対する用語ではなく、近似に対する用語として使用されるものであり、当業者によって認識される測定されるか、或いは計算された値の内在された偏差を説明するものであると意図されている。ここで使用される、“主要(major)構成要素”という用語は、構成又は製品の任意の他の単一構成要素の量より多い量の構成、重合体、又は製品に存在する構成要素を示す。反対面に、“基本(primary)構成要素”という用語は、構成、重合体、又は製品の重さ又は量が少なくとも50%をなす構成要素を示す。ここで使用される“主要部(分)”という用語は、複数の物品に適用される時、物品の少なくとも半分を意味する。
ここで使用される単数形式“a”及び“an”は、文脈が異なるように明確に指示しない限り、複数形式をまた含むものであると意図されている。“含む”及び/又は“包含する”という用語は、詳細な説明に使用される時、説明された特徴、整数、段階、動作、成分、及び/又は構成要素の存在を具体化するが、1つ以上の他の特徴、整数、段階、動作、成分、構成要素、及び/又はそのグループの存在又は追加を排除することではないことがさらに理解される。ここで使用される“及び/又は”という用語は、1つ以上の連関された列挙物品の任意のすべての組み合わせを含む。“少なくとも1つ”のような表現は、成分のリストに先行する時、成分のリスト全体を変更するが、リストに対する個々の成分を変更しない。さらに、“することができる“の使用は、本発明の実施形態を説明する時、“本発明の1つ以上の実施形態”を示す。また、“例示的な”という用語は、例示又は図示を示すものであると意図されている。ここで使用される“使用する”、“使用している”、及び“使用される”という用語は、各々“利用する”、“利用している”、“利用される”という用語の同意語として考慮され得る。
成分又はレイヤーが他の成分又はレイヤー“上に”、“に接続される”、“に結合される”、“に隣接する”と表現される時、これは、直接的に他の成分又はレイヤー“上に”、“に接続される”、“に結合される”、“に隣接する”ことであるか、又は、1つ以上の挟まれた成分又はレイヤーが存在することであってよい。反対に、成分又はレイヤーが、他の成分又はレイヤー“上に直接”、“に直接接続される”、“に直接結合される”、“に直接隣接する”と表現される時には、挟まれた成分又はレイヤーが存在しない。
ここで列挙される数値的な範囲は、列挙された範囲以内に含まれる同一の数値的な程度のすべてのサブ範囲を含むものであると意図されている。例えば、“1.0から10.0”の範囲は、列挙された最小値1.0と列挙された最大値10.0との間の(及び含む)すべてのサブ範囲を含むものであると意図されている。即ち、例えば、2.4から7.6のように、最小値は1.0以上を有し、最大値は10.0以下を有する。ここで列挙される任意の最大数値制限は、その内に含まれるすべてのより低い数値制限を含むものであると意図されており、列挙される最小数値制限は、その内に含まれるすべてのさらに高い数値制限を含むものであると意図されている。
機械学習訓練のためのスラブ基盤のメモリ管理のためのシステム及び方法の例示的な実施形態がここで具体的に説明及び示されてきたが、多くの修正及び変形が当業者には明確である。したがって、本発明の原理にしたがって解釈される機械学習訓練のためのスラブ基盤のメモリ管理のためのシステム及びメモリは、ここで具体的に説明されるものとは異なって実施され得る。本発明は、また、以下の請求項及びその均等物で定義される。
105 システムメモリ
110 CPU
115 MMU
120 GPU
125 GPUメモリ
130 IOMMU
135 PCIeスイッチ

Claims (19)

  1. 第1メモリ及び第2メモリに接続されてオペレーティングシステムを実行する処理回路に機械学習のための方法であって、
    前記処理回路で実行されているユーザレベルプロセスが、前記オペレーティングシステムから前記第1メモリからの第1メモリ割当を要請し、前記第1メモリ割当は、複数の第1セグメントを含み、前記複数の第1セグメントの中で第1セグメントは、第1種類のデータオブジェクトを格納するのに十分なサイズを有する、段階と、
    前記ユーザレベルプロセスが、第1計算の結果が前記第1種類のデータオブジェクトであることを判断する、段階と、
    前記第1計算の前記結果が前記第1種類のデータオブジェクトであることを判断することに応答して、前記ユーザレベルプロセスが、前記複数の第1セグメントの全てが使用中であることを判断する、段階と、
    前記ユーザレベルプロセスが、前記複数の第1セグメントの全てが使用中であることを判断することに応答して、前記複数の第1セグメントの中で物理的アドレスを有する最長時間未使用第1セグメントを識別する、段階と、
    前記ユーザレベルプロセスが、前記最長時間未使用第1セグメントの内容を前記第2メモリにコピーする段階と、
    前記第1計算を遂行する段階と、
    前記最長時間未使用第1セグメントに前記第1計算の前記結果を格納する段階と、
    を含み、
    前記方法は、さらに、
    前記ユーザレベルプロセスが、第1仮想のポインターを仮想のポインタークラスのインスタンスとしてインスタンス化する段階、を含み、
    前記ユーザレベルプロセスが、前記複数の第1セグメントの全てが使用中であることを判断する段階は、前記複数の第1セグメントの全てが使用中であるか否かを判断するために、前記仮想のポインタークラスのメンバー関数を実行する段階、
    を含む、方法。
  2. 前記第1種類の前記データオブジェクトは、ニューラルネットワークのフォワード活性化である、
    請求項1に記載の方法。
  3. 前記第1種類の前記データオブジェクトは、ニューラルネットワークのバックプロパゲーション活性化である、
    請求項1に記載の方法。
  4. 前記最長時間未使用第1セグメントに前記第1計算の前記結果を格納する段階は、前記第1仮想のポインターのメンバー変数に前記最長時間未使用第1セグメントの物理的アドレスを割当てる段階、を含む、
    請求項に記載の方法。
  5. 前記ユーザレベルプロセスが、前記最長時間未使用第1セグメントの内容を前記第2メモリにコピーする段階は、前記最長時間未使用第1セグメントの前記物理的アドレスから前記第2メモリの物理的アドレスに第2仮想のポインターのメンバー変数の値を変更する段階、を含む、
    請求項に記載の方法。
  6. 前記方法は、さらに、
    前記ユーザレベルプロセスが、前記オペレーティングシステムから前記第1メモリからの第2メモリ割当を要請し、前記第2メモリ割当は、複数の第2セグメントを含み、前記複数の第2セグメントの中で第2セグメントは、第2種類のデータオブジェクトを格納するのに十分なサイズを有する、段階と、
    前記ユーザレベルプロセスが、第2計算の結果が前記第2種類のデータオブジェクトであることを判断する、段階と、
    前記第2計算の前記結果が、前記第2種類のデータオブジェクトであることを判断することに応答して、前記ユーザレベルプロセスが、前記複数の第2セグメントのいずれも未使用でないことを判断する、段階と、
    前記ユーザレベルプロセスが、前記複数の第2セグメントのいずれも未使用でないことを判断することに応答して、前記複数の第2セグメントの中で物理的アドレスを有する最長時間未使用第2セグメントを識別する段階と、
    前記ユーザレベルプロセスが、前記最長時間未使用第2セグメントの内容を前記第2メモリにコピーする、段階と、
    前記第2計算を遂行する、段階と、
    前記最長時間未使用第2セグメントに前記第2計算の前記結果を格納する、段階と、
    を含む、請求項1に記載の方法。
  7. 前記第2種類のデータオブジェクトは、ニューラルネットワークの加重値を含む、
    請求項に記載の方法。
  8. 前記第2種類のデータオブジェクトは、さらに、前記ニューラルネットワークの加重値の勾配を含む、
    請求項に記載の方法。
  9. 前記処理回路は、グラフィック処理装置である、
    請求項1乃至いずれか一項に記載の方法。
  10. 前記第1メモリは、前記グラフィック処理装置のメモリバスでのメモリである、
    請求項に記載の方法。
  11. 前記第2メモリは、PCIe(peripheral component interconnect express)接続を通じて前記グラフィック処理装置に接続される、
    請求項9または10に記載の方法。
  12. 機械学習のためのオペレーティングシステムであって、
    処理回路と、
    前記処理回路に接続される第1メモリと、
    前記処理回路に接続される第2メモリと、
    命令語を格納する非一時的コンピュータ読出し可能記憶媒体と、を含み、
    前記処理回路によって前記命令語が実行される場合、前記処理回路は、前記命令語に従って前記オペレーティングシステムを実行し、前記オペレーティングシステム内のユーザレベルプロセスを開始するようにし、
    前記ユーザレベルプロセスは、
    前記オペレーティングシステムから、前記第1メモリの第1メモリ割当を要請し、前記第1メモリ割当は、複数の第1セグメントを含み、前記複数の第1セグメントの各々は、第1種類のデータオブジェクトを格納するのに十分なサイズを有し、
    第1計算の結果が前記第1種類のデータオブジェクトであることを判断し、
    前記第1計算の前記結果が前記第1種類のデータオブジェクトであることを判断することに応答して、前記複数の第1セグメントのいずれも未使用でないことを判断し、
    前記複数の第1セグメントのいずれも未使用でないことを判断することに応答して、前記複数の第1セグメントの中で物理的アドレスを有する最長時間未使用第1セグメントを識別し、
    前記最長時間未使用第1セグメントの内容を前記第2メモリにコピーし、
    前記第1計算を遂行し、
    前記最長時間未使用第1セグメントに前記第1計算の前記結果を格納する、
    ように構成されており、さらに、
    前記ユーザレベルプロセスは、第1仮想のポインターを仮想のポインタークラスのインスタンスとしてインスタンス化し、
    前記ユーザレベルプロセスが、前記複数の第1セグメントのいずれも未使用でないことを判断することは、前記複数の第1セグメントいずれも未使用でないか否かを判断するために、前記仮想のポインタークラスのメンバー関数を実行すること、を含む、
    システム。
  13. 前記第1種類の前記データオブジェクトは、ニューラルネットワークのフォワード活性化である、
    請求項12に記載のシステム。
  14. 前記第1種類の前記データオブジェクトは、ニューラルネットワークのバックプロパゲーション活性化である、
    請求項12に記載のシステム。
  15. 前記処理回路は、グラフィック処理装置である、
    請求項12乃至14いずれか一項に記載のシステム。
  16. 前記第1メモリは、メモリ管理ユニットを通じて前記グラフィック処理装置に接続されるメモリである、
    請求項15に記載のシステム。
  17. 前記第2メモリは、PCIe(peripheral component interconnect express)接続を通じて前記グラフィック処理装置に接続されるメモリである、
    請求項15または16に記載のシステム。
  18. グラフィック処理装置と、
    メモリ管理ユニットを通じて前記グラフィック処理装置に接続される第1メモリと、
    PCIe(peripheral component interconnect express)接続を通じて前記第1メモリに接続されるホストと、を含み、
    前記ホストは、
    中央処理装置と、
    第2メモリと、を含み、
    前記グラフィック処理装置は、命令語を格納する非一時的コンピュータ読出し可能記憶媒体に接続され、
    前記グラフィック処理装置によって前記命令語が実行される場合に、前記グラフィック処理装置は、前記命令語に従ってオペレーティングシステムを実行し、前記オペレーティングシステム内のユーザレベルプロセスを開始するようにし、
    前記ユーザレベルプロセスは、
    前記オペレーティングシステムから、前記第1メモリの第1メモリ割当を要請し、前記第1メモリ割当は、複数の第1セグメントを含み、前記複数の第1セグメントの各々は、第1種類のデータオブジェクトを格納するのに十分なサイズを有し、
    第1計算の結果が前記第1種類のデータオブジェクトであることを判断し、
    前記第1計算の前記結果が前記第1種類のデータオブジェクトであることを判断することに応答して、前記複数の第1セグメントのいずれも未使用でないことを判断し、
    前記複数の第1セグメントのいずれも未使用でないことを判断することに応答して、前記複数の第1セグメントの中で物理的アドレスを有する最長時間未使用第1セグメントを識別し、
    前記最長時間未使用第1セグメントの内容を前記第2メモリにコピーし、
    前記第1計算を遂行し、
    前記最長時間未使用第1セグメントに前記第1計算の前記結果を格納する、
    ように構成されており、
    前記ユーザレベルプロセスは、第1仮想のポインターを仮想のポインタークラスのインスタンスとしてインスタンス化し、
    前記ユーザレベルプロセスが、前記複数の第1セグメントのいずれも未使用でないことを判断することは、前記複数の第1セグメントいずれも未使用でないか否かを判断するために、前記仮想のポインタークラスのメンバー関数を実行すること、を含む、
    システム。
  19. 前記第1種類の前記データオブジェクトは、ニューラルネットワークのフォワード活性化である、
    請求項18に記載のシステム。
JP2019034564A 2018-03-14 2019-02-27 機械学習訓練のためのスラブ基盤のメモリ管理 Active JP7311981B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862642994P 2018-03-14 2018-03-14
US62/642,994 2018-03-14
US15/976,765 US11461869B2 (en) 2018-03-14 2018-05-10 Slab based memory management for machine learning training
US15/976,765 2018-05-10

Publications (2)

Publication Number Publication Date
JP2019160306A JP2019160306A (ja) 2019-09-19
JP7311981B2 true JP7311981B2 (ja) 2023-07-20

Family

ID=67905772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019034564A Active JP7311981B2 (ja) 2018-03-14 2019-02-27 機械学習訓練のためのスラブ基盤のメモリ管理

Country Status (5)

Country Link
US (1) US11461869B2 (ja)
JP (1) JP7311981B2 (ja)
KR (1) KR102673647B1 (ja)
CN (1) CN110276454B (ja)
TW (1) TWI788476B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240411910A1 (en) * 2023-06-07 2024-12-12 Dell Products L.P. Data protection using policy-based digital vault rotation

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704572B1 (en) * 2018-10-17 2023-07-18 Zoox, Inc. Offloading for gradient computation
US11188454B2 (en) * 2019-03-25 2021-11-30 International Business Machines Corporation Reduced memory neural network training
CN115053214A (zh) * 2020-02-03 2022-09-13 三星电子株式会社 数据管理系统及其控制方法
JP2023507238A (ja) 2020-02-28 2023-02-21 スリーエム イノベイティブ プロパティズ カンパニー データストレージ及び処理能力管理のための深層因果学習
CN114443263B (zh) * 2020-11-03 2025-06-06 阿里巴巴集团控股有限公司 显存管理方法、装置、设备及系统
CN114443262B (zh) * 2020-11-03 2025-10-17 阿里巴巴集团控股有限公司 计算资源管理方法、装置、设备及系统
US20220215235A1 (en) * 2021-01-07 2022-07-07 Micron Technology, Inc. Memory system to train neural networks
KR20240103607A (ko) * 2022-12-27 2024-07-04 삼성전자주식회사 통합 가상 메모리 관리 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015524979A (ja) 2012-08-17 2015-08-27 インテル・コーポレーション ユニファイドメモリアーキテクチャを介したメモリ共有
WO2016063482A1 (ja) 2014-10-23 2016-04-28 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム記憶媒体
US20170083997A1 (en) 2015-09-17 2017-03-23 Qualcomm Incorporated Storing bandwidth-compressed graphics data
US20170286284A1 (en) 2016-04-04 2017-10-05 Omni Ai, Inc. Data composite for efficient memory transfer in a behavioral recognition system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657706B2 (en) 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US7672790B2 (en) 2006-11-02 2010-03-02 Siemens Medical Solutions Usa, Inc. System and method for stochastic DT-MRI connectivity mapping on the GPU
US8806503B2 (en) 2011-01-24 2014-08-12 Nec Laboratories America, Inc. Method and system for memory aware runtime to support multitenancy in heterogeneous clusters
WO2013032955A1 (en) 2011-08-26 2013-03-07 Reincloud Corporation Equipment, systems and methods for navigating through multiple reality models
US9864638B2 (en) 2012-06-22 2018-01-09 Intel Corporation Techniques for accessing a graphical processing unit memory by an application
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9304730B2 (en) 2012-08-23 2016-04-05 Microsoft Technology Licensing, Llc Direct communication between GPU and FPGA components
CN104036451B (zh) 2014-06-20 2018-12-11 深圳市腾讯计算机系统有限公司 基于多图形处理器的模型并行处理方法及装置
CN104200004A (zh) * 2014-07-28 2014-12-10 东北大学 一种优化的基于神经网络的桥梁损伤识别方法
US9575881B2 (en) * 2014-12-04 2017-02-21 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture
US11061682B2 (en) 2014-12-15 2021-07-13 Hyperion Core, Inc. Advanced processor architecture
US9928034B2 (en) 2014-12-17 2018-03-27 Nvidia Corporation Work-efficient, load-balanced, merge-based parallelized consumption of sequences of sequences
US10223635B2 (en) 2015-01-22 2019-03-05 Qualcomm Incorporated Model compression and fine-tuning
US9972063B2 (en) 2015-07-30 2018-05-15 International Business Machines Corporation Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units
CN105205014B (zh) 2015-09-28 2018-12-07 北京百度网讯科技有限公司 一种数据存储方法和装置
JP6658033B2 (ja) * 2016-02-05 2020-03-04 富士通株式会社 演算処理回路、および情報処理装置
US10296074B2 (en) 2016-08-12 2019-05-21 Qualcomm Incorporated Fine-grained power optimization for heterogeneous parallel constructs
CN118134744A (zh) * 2017-04-07 2024-06-04 英特尔公司 用于多处理器平台上的深度学习网络执行流水线的方法和装置
US10614356B2 (en) * 2017-04-24 2020-04-07 International Business Machines Corporation Local multicast in single-host multi-GPU machine for distributed deep learning systems
US11093140B2 (en) * 2018-01-19 2021-08-17 Micron Technology, Inc. Performance allocation among users for accessing non-volatile memory devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015524979A (ja) 2012-08-17 2015-08-27 インテル・コーポレーション ユニファイドメモリアーキテクチャを介したメモリ共有
WO2016063482A1 (ja) 2014-10-23 2016-04-28 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム記憶媒体
US20170083997A1 (en) 2015-09-17 2017-03-23 Qualcomm Incorporated Storing bandwidth-compressed graphics data
US20170286284A1 (en) 2016-04-04 2017-10-05 Omni Ai, Inc. Data composite for efficient memory transfer in a behavioral recognition system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
鈴木 順、ほか4名,複数GPU向けミドルウェアにおけるデータ管理手法の検討,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2015年07月28日,Vol.115 No.174,第191頁-第196頁,ISSN:0913-5685
鈴木 順、ほか5名,リソース分離アーキテクチャのためのアクセラレータミドルウェアVictreamの提案,情報処理学会 研究報告 システムソフトウェアとオペレーティング・システム(OS) 2016-OS-138 [online],一般社団法人情報処理学会,2016年08月01日,第1頁-第8頁,ISSN:2188-8795

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240411910A1 (en) * 2023-06-07 2024-12-12 Dell Products L.P. Data protection using policy-based digital vault rotation

Also Published As

Publication number Publication date
JP2019160306A (ja) 2019-09-19
KR20190108471A (ko) 2019-09-24
KR102673647B1 (ko) 2024-06-12
US20190286991A1 (en) 2019-09-19
TWI788476B (zh) 2023-01-01
CN110276454A (zh) 2019-09-24
US11461869B2 (en) 2022-10-04
TW201939515A (zh) 2019-10-01
CN110276454B (zh) 2024-07-09

Similar Documents

Publication Publication Date Title
JP7311981B2 (ja) 機械学習訓練のためのスラブ基盤のメモリ管理
US11620060B2 (en) Unified hardware and software two-level memory
US10838864B2 (en) Prioritizing local and remote memory access in a non-uniform memory access architecture
CN101105772B (zh) 控制计算机可读存储器的方法和管理数据单元的装置
CN107122314B (zh) 大容量存储器装置、包括其的系统以及访问其的方法
US9229878B2 (en) Memory page offloading in multi-node computer systems
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
KR102921352B1 (ko) 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법
JP7164733B2 (ja) データ記憶
KR20240023642A (ko) 메모리-로컬 컴퓨팅을 위한 아토믹 메모리 동작들의 동적 병합
CN117616402A (zh) 通过超额订阅由系统支持的计算实体共享的物理存储器的系统中的存储器减少
CN111480151B (zh) 将高速缓存线从共用存储器页面冲洗到存储器
CN112714906A (zh) 用以使用dram来作为用于高效云应用的慢速可按字节寻址存储器的缓存的方法和装置
EP2601579A1 (en) Processor support for filling memory regions
CN107025179B (zh) 存储器设备及方法
CN104536764A (zh) 程序运行方法和装置
CN116204452A (zh) 地址转换高速缓存以及包括地址转换高速缓存的系统
US20250315379A1 (en) Memory sub-system aware prefetching in a disaggregated memory environment
KR20260051890A (ko) 해시 페이지 테이블을 이용하여 주소 변환을 수행하는 방법 및 장치
Anwar et al. Saf: States aware fully associative FTL for multitasking environment
WO2024037428A1 (zh) 一种进程处理方法和设备
CN107533523A (zh) 使用存储器控制器基于存储器初始化状态指示符管理存储器的存取
HK40054527A (en) Method for storing data and data processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230412

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: 20230627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230707

R150 Certificate of patent or registration of utility model

Ref document number: 7311981

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150