JP6928616B2 - 共有機械学習データ構造 - Google Patents

共有機械学習データ構造 Download PDF

Info

Publication number
JP6928616B2
JP6928616B2 JP2018557033A JP2018557033A JP6928616B2 JP 6928616 B2 JP6928616 B2 JP 6928616B2 JP 2018557033 A JP2018557033 A JP 2018557033A JP 2018557033 A JP2018557033 A JP 2018557033A JP 6928616 B2 JP6928616 B2 JP 6928616B2
Authority
JP
Japan
Prior art keywords
machine learning
processing
processing resource
model
data
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
JP2018557033A
Other languages
English (en)
Other versions
JP2019525277A (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2019525277A publication Critical patent/JP2019525277A/ja
Application granted granted Critical
Publication of JP6928616B2 publication Critical patent/JP6928616B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory 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)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storing Facsimile Image Data (AREA)
  • Memory System (AREA)

Description

いくつかのデータ処理システムは、データセットに対して機械学習を実行して結果を生成することができる。機械学習の例は、分類、回帰、クラスタ化、密度推定、次元削減(dimensionality reduction)、及び/又はその他のそのようなタイプの分析を含みうる。そのような例では、データ処理システムは、機械学習モデルに基づいてデータセットを分析することができる。
本開示を利用することができる例示的なシステムのいくつかの構成要素のブロック図である。 本開示を利用することができる例示的なシステムのいくつかの構成要素のブロック図である。 本開示を利用することができる例示的なシステムのいくつかの構成要素のブロック図である。 例示的なシステムのいくつかの構成要素のブロック図である。 例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。 例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。 例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。 例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。 図面を通じて、同じ参照番号は類似するが必ずしも同じではない要素を示している。さらに、それらの図面は、本説明と整合する例及び/又は実施例を提供している。しかしながら、本説明は、それらの図面に提供されている例及び/又は実施例に限定されない。
例示的なデータ処理システムは、機械学習データ構造を格納するための不揮発性メモリを備えることができる。該機械学習データ構造を、第1の処理資源及び第2の処理資源の共有メモリ空間に対応付けることができ、ここで、該第2の処理資源は、少なくとも1つのグラフィックス処理コアを備えることができる。いくつかの例では、該不揮発性メモリは、該第1の処理資源及び該第2の処理資源が、該機械学習メモリ構造内の命令及びデータを直接処理することができるようなアクセス速度を有することができる。本明細書で使用されている「データ処理システム」には、たとえば、パーソナルコンピューター、ポータブルコンピューティング装置(たとえば、ラップトップ、タブレット型コンピューター、スマートフォン)、サーバー、サーバーブレード、サーバーの処理ノード、システムオンチップ(SOC)コンピューティング装置、SOC装置の処理ノード、及び/又はその他のそのようなデータ処理装置/システムを含めることができる。本明細書では、「データ処理システム」を、コンピューティングシステム、または、単にシステムと呼ぶ場合もある。
本明細書における例は、機械学習を実行することができるデータ処理システムの改善された処理効率、低減された資源(リソース)利用、及び/又は増大した計算複雑度を容易にすることができる。本明細書に記載されている例は、機械学習データ構造を格納するための不揮発性メモリ資源を含むことができる。該機械学習データ構造は、少なくとも1つの機械学習モデルを含むことができる。機械学習モデルは、データセットに対するモデル結果を生成するために、該機械学習モデルのモデルパラメータに少なくとも部分的に基づいて該データセットに対して実行される複数の処理を含むことができる。
機械学習モデルの例は、回帰ベースモデル(regression basedmodel)、インスタンスベースモデル(instance basedmodel)、正則化ベースモデル(regularization based model)、決定木ベースモデル(decision tree based model)、ベイズネットワークベースモデル(Bayesiannetwork based model)、クラスタ化ベースモデル(clustering based model)、相関ルール学習モデル(association rule learning model)、人工ニューラルネットワークベースモデル(artificial neural network based model)、次元削減ベースモデル(dimensionality reduction based model)、アンサンブルベースモデル(ensemble based model)、及び/又はその他のそのようなタイプの機械学習モデルを含むことができる。理解されるように、いくつかの例では、機械学習データ構造は、複数のタイプの機械学習モデルを格納することができる。説明されているように、それぞれの機械学習モデルは一組のモデルパラメータを含むことができる。いくつかの例は、学習データセットに対して該機械学習モデルの処理を実行して、該学習データセットから生成されたモデル結果に基づいてモデルパラメータを更新することによって、該モデルパラメータを調整することができる。
不揮発性メモリ(NVM)の例は、読み出し専用メモリ(ROM)(たとえば、マスクROM、PROM、EPROM、EEPROMなど)、フラッシュメモリ、固体メモリ、不揮発性SRAM(nvSRAM)、バッテリバックアップSRAM、強誘電体RAM(FRAM)、磁気抵抗RAM(MRAM)、相変化メモリ(PCM)、磁気テープ、光学式ドライブ、ハードディスクドライブ、3Dクロスポイントメモリ(3DXPoint)、プログラマブル金属化セル(PCM)メモリ、シリコン−酸化物−窒化物−酸化物−シリコン(SONOS)メモリ、抵抗変化メモリ(RRAM)、磁壁メモリ(DWM)、ナノRAM、フローティング接合ゲートランダムアクセスメモリ(FJGRAM)、メモリスタメモリ、スピン注入メモリ(spin transfer torque RAM:STT−RAM)、並びに、電力サイクル(たとえばオン/オフ)全体にわたって格納されている情報を保持するその他の記憶装置/モジュールを含むことができる。電力サイクル全体にわたってデータを格納(記憶)する不揮発性メモリを、永続データメモリと呼ぶこともできる。本明細書で使用されている「不揮発性メモリ資源」は、1つのデバイス(ないし装置)及び/又はモジュール、またはデバイス(ないし装置)及び/又はモジュールの組み合わせを含むことができる。
いくつかの例では、不揮発性メモリ資源を、ストレージクラスメモリ(SCM)と呼ばれるあるクラス(種類)の不揮発性メモリに対応付ける(ないし合致させる)ことができる。それらの例では、該SCM不揮発性メモリは、バイト単位でアドレス指定可能であり、処理資源と同期し、及び、処理資源のコヒーレント領域内にある。さらに、SCM不揮発性メモリは、ハードドライブや磁気テープ記憶装置などの他のタイプの不揮発性メモリよりも比較的速い読み出し/書込み速度を有するメモリのタイプを含むことができる。SCM不揮発性メモリの例には、いくつかのタイプのフラシュメモリ、RRAM、メモリスタ、PCM、MRAM、STT−RAM、並びに、その他のタイプの読み出し/書込み速度がより高速な永続データ記憶装置が含まれる。理解されるように、回転ディスクハードドライブ、NAND型フラッシュメモリ、磁気テープドライブなどのいくつかのタイプの不揮発性メモリの比較的遅い読み出し及び書込み速度に起因して、処理資源は、それらのタイプの不揮発性メモリに対して命令及びデータを直接処理できない場合がある。しかしながら、処理資源は、SCM不揮発性メモリに対しては命令及びデータを直接処理することができる。
さらに、例は、該不揮発メモリ資源に結合された処理資源を備えることができる。具体的には、例示的なシステムは、機械学習データ構造にアクセスするために該不揮発性メモリに結合された第1の処理資源を備えることができ、該例示的なシステムは、該機械学習データ構造にアクセスするために該不揮発性メモリに結合された第2の処理資源を備えることができる。したがって、該不揮発性メモリ資源の機械学習データ構造は、該第1の処理資源と該第2の処理資源の共有メモリ空間である。本明細書に記載されているいくつかの例では、共有メモリ空間は、該第1の処理資源と該第2の処理資源が、該機械学習データ構造に対してデータを直接読み出し/書き込むことができることを示している。さらに、共有メモリ空間に対して、該第1の処理資源と該第2の処理資源が、該機械学習データ構造に同時にアクセスする(たとえばデータの読み出し/書き込みを行う)ことができることが理解されよう。
例示的なデータ処理システムでは、該第1の処理資源は複数の処理資源を有することができ、同様に、該第2の処理資源は複数の処理資源を有することができる。いくつかの例では、該第1の処理資源を、少なくとも1つの処理コアを備える中央処理装置(CPU)などの汎用のデータ処理装置に対応付ける(ないし合致させる)ことができる。いくつかの例では、該第1の処理資源は、特定用途向け集積回路(ASIC)、及び/又は、その他のそのようなデータ処理のための論理的構成要素からなる構成を備えることができる。いくつかの例では、該第1の処理資源は、並列に及び/又は同期して及び/又は同時に(ないし並行して)及び/又はインタリーブ方式で及び/又はその他のそのような命令実行方式で、命令を処理/実行することができる複数の処理コアを備えることができる。いくつかの例では、(しばしばマルチスレッドコアと呼ばれる)それぞれの処理コアは、2以上の命令スレッドを実行することができる。
該第2の処理資源は、専用グラフィックス処理コアと呼ばれる場合がある少なくとも1つのグラフィックス処理コアを備えることができる。いくつかの例では、該第2の処理資源をグラフィックス処理ユニット(GPU)に対応付ける(ないし合致させる)ことができる。そのような例では、グラフィックス処理コアは、画像/ビデオ及び/又はデジタル信号ベースのデータを処理するための専用の回路及びロジックを備えることができる。いくつかの例では、該第2の処理ユニットは、大きなデータブロックを並列に処理することができる複数のグラフィックス処理コアを備えることができる。いくつかの例では、該第2の処理ユニットは、専用のグラフィックス処理コアを用いて(ないし該コアによって)ストリーム及び/又はベクトル処理を実行することができる。理解されるように、いくつかの例では、該第2の処理ユニット及びそれの少なくとも1つのグラフィックス処理コアを用いて、(しばしば、GPU上の汎用コンピューティングと呼ばれる)グラフィックスベースの処理には対応しない場合があるさまざまタイプの処理を実行することができる。いくつかの例では、該不揮発性メモリの機械学習データ構造に格納されている少なくとも1つの機械学習モデルの処理(ないし動作)を、該第2の処理資源の該少なくとも1つのグラフィックス処理コアを用いて、データセットに対して実行することができる。
ここで、図面、特に図1A及び図1Bを参照すると、これらの図面は、システム100の例を示すブロック図を提供している。本明細書及び/又は図面において開示されているシステムの例には、パーソナルコンピューター、携帯型電子機器(たとえば、スマートフォン、タブレット、ラップトップ、ウェアラブルデバイスなど)、ワークステーション、スマートデバイス、サーバー、サーバーの処理ノード、複数のサーバーを備えるデータセンター、及び/又はその他のそのようなデータ処理装置が含まれる。図1A及び図1Bの例では、システム100は、第1の処理資源102、第2の処理資源104、及び処理資源102、104に結合された不揮発性メモリ108を備えている。
図示されているように、第1の処理資源102は、少なくとも1つの処理コア110を備えており、第2の処理資源104は、少なくとも1つのグラフィックス処理コア112を備えている。不揮発性メモリ108は、少なくとも1つの機械学習モデル116を含むことができる機械学習データ構造114を格納することができる。本明細書及び/又は図面に記載されている例では、第1の処理資源102は、少なくとも1つのハードウェアベースのプロセッサを備えることができる。さらに、処理資源102は、1つのプロセッサまたは複数のプロセッサを備えることができ、この場合、それらのプロセッサを、単一のシステム100内に構成ないし配置することができ、または、ローカルで及び/もしくは遠隔で接続された複数のシステムに分散させることができる。
上述したように、第2の処理資源104は、少なくとも1つのグラフィックス処理コア112を備えることができる。いくつかの例では、第2の処理資源104は、マルチコアグラフィックス処理ユニット(GPU)を備えることができる。いくつかの例では、該グラフィックス処理コアは、浮動小数点演算を実行するための(しばしば、浮動小数点演算装置と呼ばれる)実行パイプライン及びグラフィックス処理コアを備えることができる。
図1Bに提供されている例においてさらに示されているように、システム100はさらに、処理エンジン117を備えることができる。そのような例では、処理エンジン117は、第1の処理資源102を用いて(または該処理資源によって)該少なくとも1つの学習モデル116の実行を調整することができる。処理エンジン117は、そのような調整と同時に(ないし並行して)、第2の処理資源104の該少なくとも1つのグラフィックス処理コア112を用いて(ないし該コアによって)、該少なくとも1つの機械学習モデル116の処理(ないし動作)を実行することができる。したがって、第1の処理資源102は、第2の処理資源104のグラフィックス処理コア112による実行のために機械学習モデル116に関連する命令発行を調整できることが理解されよう。いくつかの例では、該第1の処理資源を用いて(または該処理資源によって)該少なくとも1つの機械学習モデル116の実行を調整することは、第2の処理資源104の該少なくとも1つのグラフィックス処理コア112における少なくとも2つの機械学習モデル116の実行を切り替えることを含むことができる。
図1Bの例示的なシステムでは、機械学習データ構造114はさらに、少なくとも1つのデータセット118を含むことができ、該少なくとも1つのデータセット118は少なくとも1つのデータサブセット120を含むことができる。理解されるように、データセットは、一般に、関連する情報の集合を意味し、データサブセットは、一般に、そのようなデータセットの個別の要素を意味する。データセットを、データの種々のタイプ、またはデータのタイプの組み合わせに対応付けることができる。
たとえば、データセットは、ビデオカメラ周辺装置で捉えられて、機械学習データ構造114に格納されたビデオデータを含むことができる。この例では、そのようなビデオデータのデータサブセットは、そのようなビデオデータのタイムスライスを含むことができ、ここで、タイムスライスは、該ビデオデータの持続時間の増分(きざみ幅)でありうる。たとえば、ビデオデータのデータサブセットを10秒、1秒、500ミリ秒(ms)、10ms、1msなどの持続時間を有するタイムスライスとすることができる。別の例では、データセットを、ビデオデータとオーディオデータの組み合わせなどのマルチメディアデータに対応付けることができる。この例では、データサブセットを、そのようなマルチメディアデータのタイムスライスに対応付けることができる。他の例では、データセットを、種々のタイプのセンサー(たとえば、温度センサー、圧力センサーなど)で検出された、ある期間(ないし時間)にわたる種々の環境測定値(たとえば、温度、圧力など)に対応付けることができる。他の例では、データセットを、種々のタイプのセンサー(たとえば、光センサー、電波センサー、紫外線センサーなど)で検出された、ある期間(ないし時間)にわたる種々のタイプの電磁放射の測定値に対応付けることができる。理解されるように、データセットを、その他の種々のタイプのセンサー及び/又は装置によって収集されたその他の種々のタイプのデータに対応付けることができる。
さらに、不揮発性メモリ108は、第1の処理資源102及び/又は第2の処理資源104が、機械学習データ構造114内のデータの読み取り及び/又は該構造114へのデータの書き込みを調整することができるように、機械学習データ構造114に格納されている種々のタイプのデータを指し示すために使用することができる機械学習データインデックス122を含むことができる。この例では、機械学習データインデックス122は、機械学習データ構造114内に格納されているものとして示されているが、他の例では、機械学習データインデックス122を、不揮発性メモリ108の他の場所に格納することができる。理解されるように、いくつかの例では、機械学習データインデックス122を、永続的構造インデックス及び/又は永続的オブジェクトインデックスとすることができる。いくつかの例では、仮想アドレス指定方式を、処理資源102、104、及び不揮発性メモリ108用に実施できることが理解されよう。そのような例では、機械学習データインデックス122は、不揮発性メモリ108の物理メモリアドレスに対する仮想アドレス変換を容易にすることができる。
図1Bにおいて、例示的なシステム100は、データ入力部124を備えており、該データ入力部で、センサー、画像/ビデオ(映像)キャプチャ装置、オーディオキャプチャ装置、及び/又はその他のそのような周辺入力装置などの周辺装置からデータを受け取ることができる。いくつかの例では、データ入力部124は、リアルタイムデータストリームの捕捉(キャプチャ)及び格納を容易にすることができる。それらの例では、該リアルタイムデータストリームを、第1の処理資源102によって、データセット118として機械学習データ構造114に格納することができる。第1の処理資源102によるそのようなリアルタイムデータストリームの格納と同時に(ないし並行して)、第2の処理資源104は、該少なくとも1つのグラフィックス処理コア112を用いて(ないし該コアによって)、リアルタイムデータのデータセット118のデータサブセット120に対して、該少なくとも1つの機械学習モデル116の処理(ないし動作)を実行することができる。したがって、いくつかの例は、少なくとも1つの機械学習モデルを用いたリアルタイムデータストリームのリアルタイム処理を容易にすることができる。理解されるように、リアルタイム機械学習処理は、種々のタイプのデータ処理作業を容易にすることができる。たとえば、機械学習モデルを物体認識に対応付けることができ、ビデオデータストリームを、物体認識機械学習モデルを用いて分析することができる。
図1Bに示されているように、不揮発性メモリ108はさらに、システムメモリ126、読み出し専用メモリ(ROM)128、及び/又は記憶装置130を備えることができる。理解されるように、不揮発性メモリ108に追加的に割り当てられたそれらのメモリ126〜130を、第1の処理資源102及び第2の処理資源104によってアクセスする(すなわち共用する)ことができる。しかしながら、いくつかの例では、追加的に割り当てられたメモリ126〜130を、第1の処理資源102と第2の処理資源104とで共用しなくてもよい。たとえば、システムメモリ126には、第1の処理資源102だけがアクセスすることができる。理解されるように、他の例では、不揮発性メモリ108の他の例示的な割り当てを実施することができる。
さらに、システム100は、揮発性メモリ132を備えることができる。理解されるように、揮発性メモリ132は、電力サイクル全体にわたってはデータを保持しないランダムアクセスメモリ(RAM)またはその他のそのようなメモリを含むことができる。図1Bの例は、システムメモリ126、ROM128、及び記憶装置130を不揮発性メモリ108に格納されているものとして示しているが、他の例では、そのようなデータを揮発性メモリ132に格納できることが理解されよう。いくつかの例では、該揮発性メモリは、第1の処理資源102及び第2の処理資源104によってアクセスできる共用(共有)メモリ部を有することができる。いくつかの例では、不揮発性メモリ108及び/又は揮発性メモリ132は、第1の処理資源102と第2の処理資源104によって共用されないメモリ部を有することができる。
図1A及び図1Bには示されていないが、いくつかの例示的なシステムは、ユーザーまたはオペレータとのインターフェースのために、1以上のユーザー入力/出力装置(たとえば、1以上のボタン、表示装置(ディスプレイ)、タッチスクリーン、スピーカーなど)を組み込んだユーザーインターフェースを備えることができる。したがって、該ユーザーインターフェースは、該処理資源にデータを伝え、及び該処理資源からデータを受け取ることができる。たとえば、ユーザーは、該ユーザーインターフェースを介して1以上の選択物を入力することができ、該処理資源は、該ユーザーインターフェースの画面もしくはその他の出力装置にデータを出力させることができる。さらに、該システムは、ネットワークインターフェース装置を備えることができる。理解されるように、該ネットワークインターフェース装置は、ネットワークインターフェースカードなどの、1以上の通信ネットワークを介してデータを伝えるための1以上のハードウェア装置を備えている。
さらに、図1A及び図1Bの例示的なシステムなどの例示的なシステムは、エンジンを備えることができ、(処理エンジン117などの)そのようなエンジンを、それぞれのエンジンの機能を実施するためのハードウェアとプログラミングの任意の組み合わせとすることができる。本明細書及び/又は図面に記載されているいくつかの例では、ハードウェアとプログラミングの組み合わせを、いくつかの異なるやり方で実施することができる。たとえば、それらのエンジンのプログラミングを、非一時な機械可読記憶媒体に格納されているプロセッサ実行可能命令とすることができ、それらのエンジンのハードウェアは、それらの命令を処理して実行するための処理資源を備えることができる。
いくつかの例では、そのようなエンジンを実装しているシステムは、それらの命令を格納している機械可読記憶媒体、及びそれらの命令を処理するための処理資源を備えることができ、または、該機械可読記憶媒体を、別個に設けて、該システム及び該処理資源によってアクセス可能なものとすることができる。いくつかの例では、エンジンを回路で実施することができる。さらに、エンジンを実施するために使用される処理資源は、少なくとも1つの中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、特定用途向け集積回路(ASIC)、専用コントローラ(たとえばメモリコントローラ)、及び/又は、データ処理用に実施することができるその他のそのようなタイプの論理的構成要素を備えることができる。
図2は、例示的なシステム200を示すブロック図を提示している。この例では、システム200は、少なくとも1つの処理資源202、及び機械可読記憶媒体204を備えている。機械可読記憶媒体204は、例示的なシステム100の主記憶装置を含む(ないし構成する)ランダムアクセスメモリ(RAM)デバイス、並びに、補助レベルのメモリ(たとえば、キャッシュメモリ、不揮発性のもしくはバックアップ用のメモリ(たとえば、プログラム可能なメモリまたはフラッシュメモリ)、読み出し専用メモリなど)を表すことができる。さらに、機械可読記憶媒体204を、どこか他の場所に物理的に配置された記憶装置(たとえばマイクロプロセッサ内の任意のキャッシュメモリ)、並びに、仮想メモリとして使用される(たとえば、大容量記憶装置に、または例示的なシステム200と通信する別のシステムに設けられている)任意の記憶容量を含むものとみなすことができる。さらに、機械可読記憶媒体204を非一時的なものとすることができる。いくつかの例では、処理資源202及び機械可読記憶媒体204を、少なくとも1つのサーバー内に配置された処理装置及び記憶装置に対応付けることができる。他の例では、処理資源202及び該機械可読記憶媒体をシステムオンチップ装置内に配置することができる。
さらに、機械可読記憶媒体204は、処理資源202によって実行することができる命令で符号化されることができ、及び/又は該命令を格納することができる。ここで、そのような命令の実行は、処理資源202及び/又はシステム200に、本明細書に記載されている機能、プロセス、及び/又は一連の処理を実行させることができる。図2の例では、機械可読記憶媒体204は、第1の処理資源によって(ないし該処理資源を用いて)機械学習データ構造にアクセスするための命令206を含んでいる。さらに、機械可読記憶媒体204は、第1の処理資源によって(ないし該処理資源を用いて)、該機械学習データ構造に格納されているデータセットに対して実行するための、該機械学習データ構造に格納されている一組の機械学習モデルを決定するための命令208を含んでいる。さらに、機械可読記憶媒体204は、少なくとも1つのグラフィックス処理コアを備える第2の処理資源によって(ないし該処理資源を用いて)機械学習データ構造にアクセスするための命令210を含んでいる。機械可読記憶媒体204はまた、該一組の機械学習モデルのそれぞれの機械学習モデルについてそれぞれのモデル結果を生成するために、該第2の処理資源の該少なくとも1つのグラフィックス処理コアによって(ないし該コアを用いて)、該機械学習データ構造に格納されているデータセットに対して該一組の機械学習モデルの処理(ないし動作)を実行するための命令を含んでいる。
図3は、例示的なシステム300のいくつかの構成要素を示すブロック図を提示している。説明されているように、いくつかの例では、処理資源は中央処理装置(CPU)を備えており、この例では、システム300は、少なくとも1つのコア304を有するCPU302を備えている。いくつかの例では、CPU302は1つのコア304を備えることができ、他の例では、CPU302は2つのコア304(デュアルコア構成と呼ばれる)、4つのコア(クアッドコア構成と呼ばれる)などを備えることができる。さらに、システム300は、少なくとも1つのグラフィックス処理コア308を有するグラフィックス処理ユニット(GPU)306を備えている。理解されるように、いくつかの例では、GPU306は、2つのグラフィックス処理コア、4つのグラフィックス処理コア、8個のグラフィックス処理コア、16個のグラフィックス処理コアなどを有することができる。この例では、CPU302とGPU306は別個の構成要素として示されているが、いくつかの例では、CPUの汎用処理コアとGPUのグラフィックス処理コアを単一の構成要素に統合できることが理解されよう。したがって、それらの例では、第1の処理資源を、該単一の構成要素の汎用処理コアと呼ぶことができ、第2の処理資源を、該単一の構成要素のグラフィックス処理コアと呼ぶことができる。
上述したように、グラフィックス処理コアは、浮動小数点演算を実行するためのロジック(論理回路)及び関連する回路を備えることができる。さらに、グラフィックス処理ユニット306は、グラフィックス処理ユニット306が複数の演算(ないし処理)を並列に実行できるように、複数のグラフィックス処理コア及び関連する命令実行パイプラインを備えることができる。並列処理アーキテクチャの例には、単一命令多重データ(SIMD)処理、または複数命令・複数データ処理アーキテクチャ(MIMD)が含まれる。いくつかの例では、GPU306は、複数の異なるデータソースに対して浮動小数点演算を同時に(ないし並行して)実行するために使用することができるベクトル処理を実行できる複数のグラフィックス処理コアを有することができる。
図示されているように、CPU302及びGPU306はさらに、キャッシュメモリ310を備えることができる。理解されるように、CPU302及びGPU306内に示されているキャッシュメモリを専用メモリ(すなわち共用されないメモリ)とすることができ、この場合、そのようなキャッシュメモリ310は、命令キャッシュ、データキャッシュ、及び/又はトランスレーションルックアサイドバッファ(translation look aside buffer)を含むことができる。さらに、CPU302及びGPU306が共用キャッシュメモリ(共有キャッシュメモリともいう)312に同時にアクセスできるように、CPU302及びGPU306を、共用キャッシュメモリ312に直接接続することができる。理解されるように、いくつかの例では、該GPUが機械学習モデルの処理(ないし動作)を実行するのと同時に(ないし並行して)、CPU302は、該機械学習モデルの処理(ないし動作)に関連する命令及びデータを取り出す(フェッチする)ことができる。したがって、いくつかの例では、機械学習モデルの実行を調整することは、GPU306が該機械学習モデルの処理(ないし動作)を実行しているときに、CPU302によって、該機械学習モデルに対応する命令及び/又はデータを取り出すことを含むことができる。
さらに、CPU302及びGPU306は、メモリバス316及びメモリコントローラ318を介して不揮発性メモリ314に接続されている。理解されるように、メモリコントローラ318は、不揮発性メモリ314に対するデータの読み出し及び書き込みを容易にすることができる。この例では、メモリコントローラ318は別個の構成要素として示されているが、いくつかの例では、メモリコントローラ318を、不揮発性メモリモジュールに配置することができ、または、CPU302及び/又はGPU306などの別の論理的構成要素に組み込むことができることが理解されよう。図示されているように、該不揮発性メモリは、CPU302とGPU306の共用メモリ空間(共有メモリ空間ともいう)である機械学習データ構造320を含むことができる。図示されていないが、不揮発性メモリ314は、他のデータ構造を格納することができ、この場合、そのような他のデータ構造を、CPU302とGPU306の共用メモリ空間とすることができ、及び/又は、そのような他のデータ構造を、CPU302またはGPU306の専用のメモリ空間とすることができる。
さらに、いくつかの例では、CPU302及びGPU306を、追加のメモリコントローラ324及びメモリバス316を介して、追加のメモリ資源322(たとえば、RAM、ハードドライブなど)に接続することができる。理解されるように、追加のメモリ資源322は、CPU302とGPU306の他の共用メモリ空間、並びにCPU302またはGPU306の専用のメモリ空間を有することができる。
理解されるように、CPU302のコア304及びGPU306のグラフィックス処理コア308は、フェッチ−デコード−実行サイクルと呼ばれる場合もある命令サイクルを実施するための処理を実行することができる。本明細書で使用されている「命令を処理する」は、命令のフェッチ(取り出し)、デコード、及び実行を行うことを意味しうる。同様に、「処理(ないし動作)を実行する」は、命令のフェッチ、デコード、及び実行を行うことを意味しうる。たとえば、グラフィックス処理コア308が、データセットに対して、機械学習モデルに対応する命令をフェッチし、デコードし、及び実行しているときに、グラフィックス処理コア308を、該機械学習モデルの処理(ないし動作)を実行していると表現することができる。
図4〜図7は、例示的なプロセス及び方法を実行するために、例示的なシステム及び/又は該システムの処理資源によって実行することができる例示的な一連の処理(ないし動作)を示すフローチャートを提示している。いくつかの例では、それらのフローチャートに含まれている処理を、処理資源によって実行することができる命令の形態で、(図2の例示的な機械可読記憶媒体204などの)メモリ資源において具現化することができ、これによって、該システム(たとえば、図1A及び図1Bのシステム100、図2のシステム200、図3のシステム300)に、それらの命令に対応する処理を実行させることができる。さらに、図4〜図7に示されている例を、システム、及び/又は機械可読記憶媒体、及び/又はプロセス、及び/又は方法において具現化することができる。いくつかの例では、図4〜図7のフローチャートに開示されている例示的なプロセス及び/又は方法を、システムに実装されている1以上のエンジンによって実行することができる。
図4は、例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャート400を提示している。図示されているように、該システムは、第1の処理資源によって(ないし該処理資源を用いて)、不揮発性メモリの共用メモリ空間に格納されている機械学習データ構造にアクセスすることができる(ブロック402)。さらに、該システムは、少なくとも1つのグラフィックス処理コアを備える第2の処理資源によって(ないし該処理資源を用いて)、該共用メモリ空間に格納されている該機械学習データ構造にアクセスすることができる(ブロック404)。該システムは、該第2の処理資源の少なくとも1つのグラフィックス処理コアによって(ないし該コアを用いて)、該機械学習データ構造に格納されているデータセットに対して、該機械学習データ構造に格納されている少なくとも1つの機械学習モデルの処理(ないし動作)を実行することができる(ブロック406)。
したがって、図4の例によって示されているように、該機械学習データ構造の共用メモリ空間は、該第1の処理資源と該第2の処理資源による該機械学習データ構造の同時(ないし並行)アクセスを容易にすることができる。さらに、該第2の処理資源の該少なくとも1つのグラフィックス処理コアを用いて、該機械学習モデルの処理(ないし動作)を実行することができ、これは、CPUのコアなどの汎用処理コアで該機械学習モデルの処理(ないし動作)を実行するのに比べて、改善された処理効率を容易にすることができる。さらに、該機械学習モデルに対する共用アクセスと組み合わせられた該不揮発性メモリへの機械学習モデルの格納(記憶)は、処理のために記憶場所に機械学習モデルを格納し及びそのような機械学習モデルを揮発性メモリにロードすることに比べて、処理効率の改善を容易にすることができる。
図5は、例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャート450を提示している。この例では、該システムは、第1の処理資源によって(ないし該処理資源を用いて)、不揮発性メモリに格納されている機械学習データ構造に格納されているデータセットに対して実行するための一組の機械学習モデルを決定することができる(ブロック452)。いくつかの例では、不揮発性メモリの機械学習データ構造は、複数の機械学習モデルを格納することができる。それらの例では、該システムは、分析対象のデータセットに対して実行するための一組の少なくとも1つの機械学習モデルを決定することができる。たとえば、該システムは、該データセットのデータのタイプに少なくとも部分的に基づいて、実行するための一組の機械学習モデルを決定することができる。たとえば、該データセットがマルチメディアデータ(たとえば、ビデオ(映像)データ及びオーディオ(音声)データ)に対応する(ないし一致する)場合には、該システムは、特定の組の機械学習モデルを選択することができる。別の例として、該データセットがセンサーデータ(たとえば、測定された温度や測定された電磁放射強度など)に対応する(ないし一致する)場合には、該システムは、特定の組の機械学習モデルを選択することができる。理解されるように、該システムは、該システムが、機械学習分析のために受け取ることができるそれぞれのタイプのデータについて少なくとも1つの機械学習モデルを格納することができる。
データセットに対して、該システムは、機械学習モデルの該組のそれぞれの機械学習モデルについてそれぞれのモデル結果を生成するために、第2の処理資源の少なくとも1つのグラフィックス処理コアによって(ないし該コアを用いて)、機械学習データ構造に格納されているデータセットに対して、該組のそれぞれの機械学習モデルの処理(ないし動作)を実行することができる(ブロック454)。それらの例では、機械学習モデルの該組が2つ以上の機械学習モデルを含んでいる場合には、該第2の処理資源のグラフィックス処理コアは、該組の機械学習モデル間で実行を切り替えることができることが理解されよう。該組のそれぞれの機械学習モデルついてのそれぞれのモデル結果に基づいて、該システムは、該機械学習データ構造に格納されている少なくとも1つの機械学習モデルを更新することができる(ブロック456)。
したがって、図5に示されている例に類似するいくつかの例では、特定のデータセットの分析から生成されたモデル結果に基づいて、機械学習モデルを更新することができる。理解されるように、該特定のデータセットがトレーニングデータセットに対応する(ないし合致する)場合には、いくつかの機械学習モデルを調節し、これによって、そのように調節された機械学習モデルのパラメータをさらに改良して、該機械学習モデルの実行における正確さ及び効率の改善を容易にすることができる。
図6は、例示的なシステムによって実行することができる一連の処理を示すフローチャート500を提示している。データセットに対して実行するための一組の機械学習モデル(ブロック502)について、該システムは、該データセットのそれぞれのデータサブセットに対するモデル結果を生成するために、第2の処理資源のグラフィックス処理コアによって(ないし該コアを用いて)、該それぞれのデータサブセットに対して該組のそれぞれの機械学習モデルを実行することができる(ブロック504)。該それぞれのデータサブセットに対して該それぞれの機械学習モデルを実行した後に、該システムは、第1の処理資源によって(ないし該処理資源を用いて)、実行されるべき追加の機械学習モデルが残っているか否かを判定することができる(ブロック506)。該システムは、該それぞれのデータサブセットに対して実行されるべき該組の追加の機械学習モデルがあると判定した(ブロック506の「Y」分岐)ことに応答して、実行されるべき該組の次の機械学習モデルに切り替えて(ブロック508)、該それぞれの機械学習モデルとして該組の該次の機械学習モデルの実行を続ける(ブロック506)。
該システムが、該第1の処理資源によって(ないし該処理資源を用いて)、該組の全ての機械学習モデルが、該それぞれのデータサブセットに対して実行されたと判定すると(ブロック506の「N」分岐)、該システムは、該第1の処理資源によって(ないし該処理資源を用いて)、該組の機械学習モデルを用いて分析するためのデータサブセットが残っているか否かを判定する(ブロック510)。該データセットのデータのサブセットが残っている場合には、該システムは、該組の機械学習モデルを用いて該次のデータのサブセットを分析することに進む(ブロック512)。いくつかの例では、該システムは、該第1の処理資源によって(ないし該処理資源を用いて)それぞれのデータのサブセットについて生成されたそれぞれのモデル結果を処理することができる(ブロック514)。
これらの例では、該システムは、CPUなどの第1の処理資源、及び、グラフィックス処理コアを有する第2の処理資源を備えることができることが理解されよう。したがって、実行すべき一組の機械学習モデルについて、該第1の処理資源は、それぞれのデータサブセットに対する該組の実行を調整することができる。そのような例では、該第1の処理資源は、該第2の処理資源のグラフィックス処理コアによる(ないし該コアを用いた)該組のそれぞれの機械学習モデルの実行への切り替えを容易にすることができる。
たとえば、一組の機械学習モデルは、第1の機械学習モデル、第2の機械学習モデル、及び第3の機械学習モデルを含んでいる。この例では、データセットは、第1のデータサブセット、第2のデータサブセット、及び第3のデータサブセットを含むことができる。理解されるように、該データセット及び該組の機械学習モデルを、不揮発性メモリに格納されている機械学習データ構造に格納することができ、この場合、該機械学習データ構造は、第1の処理資源と第2の処理資源の共用メモリ空間である。該第2の処理資源は、複数のグラフィックス処理コアを含むことができる。この例では、該第1の処理資源は、該第2の処理資源のグラフィックス処理コアによる(ないし該コアを用いた)該第1の機械学習モデルの処理(ないし動作)の実行を調整することができる。該グラフィックス処理コアは、該第1のデータサブセットに対して該第1の機械学習モデルの処理(ないし動作)を実行して、該第1のデータサブセットについて第1のモデル結果を生成することができる。該第1のデータサブセットについての該第1のモデル結果を、該第2の処理資源によって、該機械学習データ構造に格納することができる。
該第1の機械学習モデルの実行が完了すると、該第1の処理資源は、該第2の機械学習モデルの実行に切り替えるように該グラフィックス処理コアを調整することができる。該第2の処理資源のグラフィックス処理コアは、該第1のデータサブセットに対して該第2の機械学習モデルの処理(ないし動作)を実行して、該第1のデータサブセットについて第2のモデル結果を生成することができる。該第1のデータサブセットについての該第2のモデル結果を、該第2の処理資源によって該機械学習データ構造に格納することができる。該第2の機械学習モデルの実行が完了すると、該第1の処理資源は、該第3の機械学習モデルへの実行の切り替えを調整する(たとえば、該第3の機械学習モデルの実行に切り替えるように調整する)ことができる。該第2の処理資源のグラフィックス処理コアは、該第1のデータサブセットに対して該第3の機械学習モデルの処理(ないし動作)を実行して、該第1のデータサブセットについて第3のモデル結果を生成することができる。該第1のデータサブセットについての該第3のモデル結果を、該第2の処理資源によって、該機械学習データ構造に格納することができる。
前記第1のデータサブセットに対する該第3の機械学習モデルの実行が完了すると、該第1の処理資源は、該第2のデータサブセットに対する該第1の機械学習モデルへの実行の切り替えを調整する(たとえば、該第1の機械学習モデルの実行に切り替えるように調整する)ことができる。該第2の処理資源のグラフィックス処理コアは、該第2のデータサブセットに対して該第1の機械学習モデルの処理(ないし動作)を実行して、該第2のデータサブセットについて第1のモデル結果を生成することができる。該第2のデータサブセットについての該第1のモデル結果を機械学習データ構造に格納することができる。理解されるように、該例に関して説明した処理を、残りの機械学習モデル及び該第3のデータサブセットに対して実行することができる。
該例は、機械学習モデル間の切り替えが、実行中に、それぞれの機械学習モデルをグラフィックス処理コアの専用のメモリ空間にロードすることを必要としうるシステムに比べて、機械学習構造の共用メモリ空間は、異なる機械学習モデルの実行間の切り替えにおけるローレイテンシー(短い待ち時間)を容易にすることを示している。さらに、不揮発性メモリは、(ストレージクラスメモリ(storage-class memory)などの)該不揮発性メモリにおける命令及びデータを直接処理するのを容易にするのに十分速い読み出し/書き込み速度を有することができるので、いくつかの例は、実行のためにそれぞれのモデルを揮発性メモリに対して順次ロード/アンロードしうるシステムに比べて、実行のための機械学習モデル間の切り替えに関連する時間を短くすることができる。さらに、不揮発性メモリは、電力サイクル全体にわたってデータを保持するので、機械学習モデル及び関連するパラメータを不揮発性メモリに格納することができる。
したがって、いくつかの例では、それぞれのモデルがデータ及び命令の直接処理をサポートしない読み出し/書き込み速度を有する記憶装置に格納されるシステムに比べて、機械学習モデルにアクセスして該モデルを実行する速さを速くすることができる。そのようなシステムでは、それぞれのモデルは、CPUによって直接アクセスできるRAMなどのメモリにロードされ、該CPUによってアクセス可能なメモリにロードした後、該モデルを、グラフィックス処理コアがアクセスできる専用メモリにロードすることができる。したがって、理解されるように、高速アクセス不揮発性メモリ内の機械学習データ構造の直接かつ共有のアクセス可能性(アクセシビリティ)は、機械学習モデルの実行に関連するローディング時間及びアクセス時間を短くする。複数の機械学習モデルを切り替えることができる例では、高速アクセス不揮発性メモリ内の機械学習データ構造の直接かつ共有のアクセス可能性はさらに、機械学習モデル間の切り替えに関連する時間を短くすることができる。そのため、機械学習モデルの実行に関連する電力消費を低減することができる。
理解されるように、短くされた処理時間及び高められた処理効率は、機械学習モデルを用いたリアルタイムデータの処理を容易にすることができ、この場合、さらに、そのような処理から得られたモデル結果を同時に(ないし並行して)処理することができる。図7は、例示的なシステムによって実行することができる一連の処理を示すフローチャート550を提示している。この例では、該システムは、該システムの不揮発性メモリの機械学習データ構造にリアルタイムデータストリームを格納することができる(ブロック552)。この例では、該機械学習データ構造を、該第1の処理資源と第2の処理資源の共用メモリ空間とすることができ、ここで、該第2の処理資源は、少なくとも1つのグラフィックス処理コアを備えることができる。さらに、該第1の処理資源及び該第2の処理資源は、該不揮発性メモリに対して命令及びデータを直接処理することができる。たとえば、該不揮発性メモリを、ストレージクラスメモリの不揮発性メモリとすることができる。さらに、該第1の処理資源は、該システムが本明細書に記載されている追加の処理を実行するのと同時に(ないし並行して)、機械学習データ構造にリアルタイムデータストリームを格納し続けることが理解されよう。
この例では、該システムは、該第2の処理資源のグラフィックス処理コアによって(ないし該コアを用いて)、該データストリームのそれぞれのタイムスライスに対して、一組の機械学習モデルのうちの第1の機械学習モデルの処理(ないし動作)を実行して、該それぞれのタイムスライスついて第1のモデル結果を生成する(ブロック554)。上述したように、機械学習モデルの処理(ないし動作)を、該第1の処理資源によるリアルタイムデータストリームの格納と同時に(ないし並行して)、該第2の処理資源のグラフィックス処理コアによって実行することができる。該データストリームのそれぞれのタイムスライスに対する該第1の機械学習モデルの実行が完了すると、該システムは、該第1の処理資源によって(ないし該処理資源を用いて)、実行のための第2の機械学習モデルへの切り替えを調整する(たとえば、第2の機械学習モデルの実行に切り替えるように調整する)ことができる(ブロック556)。該システムは、該第2の処理資源のグラフィックス処理コアによって(ないし該コアを用いて)、該データストリームのそれぞれのタイムスライスに対して、該組のうちの第2の機械学習モデルの処理(ないし動作)を実行して、該それぞれのデータのタイムスライスについて第2のモデル結果を生成する(ブロック558)。
この例では、該システムは、該第1及び第2の機械学習モデルを用いたリアルタイムデータの処理を続行することができる。したがって、該データストリームのそれぞれのタイムスライスに対して、該第2の機械学習モデルの処理(ないし動作)を実行した後で、該システムは、次のそれぞれのタイムスライスに切り替えて(ブロック560)、該システムは、該データストリームの該次のそれぞれのタイムスライスに対してブロック554〜558に関して説明した処理を繰り返す。
したがって、この例で説明されているように、該第1の処理資源及び該第2の処理資源は、機械学習データ構造の共用メモリ空間に同時にアクセスすることができる。説明されているように、該第1の処理資源は、該第2の処理資源が、一組の機械学習モデルを用いてリアルタイムデータストリームを処理するのと同時に(ないし並行して)、該リアルタイムデータストリームのデータを機械学習データ構造に書き込むことができる。
図7に示されている例に類似の例では、該データストリームのタイムスライスに対して生成されたモデル結果に少なくとも部分的に基づいて、該システムによって追加の処理を実行できることが理解されよう。たとえば、機械学習モデル(該モデルを用いてリアルタイムデータストリームを処理することができる)を、リアルタイムビデオストリームにおける物体認識に対応付けることができる。モデル結果に基づくそのような例では、該システムは、該モデル結果に少なくとも部分的に基づいて該リアルタイムビデオストリームを出力することができる。たとえば、該機械学習モデルをリアルタイムビデオストリームの顔認識及び/又は分析に対応付けることができる。そのような例では、該システムは、出力中に顔を強調することができるように、モデル結果に基づいて、出力中に該リアルタイムビデオストリームを(部分的に)変更することができる。別の例では、該システムは、モデル結果に基づいて、入力周辺機器を制御することができる。たとえば、該システムは、該リアルタイムビデオストリーム内の識別された物体の動きに少なくとも部分的に基づいて、接続されているビデオキャプチャ装置を動かすことができる。別の例として、該システムを可動装置とすることができ、該可動装置は、モデル結果に少なくとも部分的に基づいて、(該装置の動きを制御するために)モーターを作動させることができる。
したがって、本明細書に記載されているシステム、プロセス、方法、及び/又は非一時的な機械可読記憶媒体に格納されている実行可能命令として実現されるコンピュータプログラム製品の例は、機械学習モデルを用いたデータの処理を容易にすることができる。本明細書に記載されている例では、機械学習データ構造を不揮発性メモリ内に実施することができ、この場合、該不揮発性メモリは、格納している命令及びデータの直接処理をサポートするアクセス速度を有することができ、該機械学習データ構造を、(CPUなどの)第1の処理資源と(GPUなどの)少なくとも1つのグラフィックス処理コアを有する第2の処理資源の共用メモリ空間とすることができる。
機械学習モデルが、不揮発性メモリ内の共用メモリ空間に格納されて、該共用メモリ空間において直接実行される例では、該機械学習モデルのロード及び切り替えの実行に関連する処理の非効率性を低減することができる。さらに、グラフィックス処理コアによる、該不揮発性メモリ内での機械学習モデルの直接実行は、汎用処理コアによる機械学習モデルの実行に比べて、機械学習モデルの実行に関連する処理速度を向上させることができる。さらに、共用メモリ空間における機械学習モデルの直接実行は、処理時間を短くできるように、異なる処理資源(たとえば、第1の処理資源と第2の処理資源)間の処理のコヒーレンス(一貫性)を改善することができる。さらに、比較的低電力の処理システムでは、不揮発性メモリの共用メモリ空間内の機械学習モデルを用いたデータの直接処理は、機械学習モデルが、記憶装置からメインメモリ(たとえば揮発性RAM)にロードされ、その後、該メインメモリから専用メモリにロードされるシステムと比べて、電力消費を低減することができる。
さらに、種々の例が本明細書に記載されているが、本明細書において考慮されている種々の例に対して、要素及び/又は要素の組み合わせを、組み合わせることができ及び/又は除去することができる。たとえば、図4〜図7のフローチャートにおいて本明細書で提供されている例示的な処理を、順次に、または同時に(ないし並行して)、または異なる順番で実行することができる。さらに、それらのフローチャートのいくつかの例示的な処理を他のフローチャートに加えることができ、及び/又は、いくつかの例示的な処理をフローチャートから除去することができる。さらに、いくつかの例では、図1A〜図3の例示的なシステムの種々の構成要素を除去することができ、及び/又は、他の構成要素を加えることができる。同様に、いくつかの例では、図2の例示的なメモリ及び/又は機械可読記憶媒体の種々の命令を除去することができ、及び/又は(図4〜図7の例示的な処理に対応する命令などの)他の命令を加えることができる。
上記の説明は、記載されている原理の例を例示して説明するために提示されたものである。この説明は、例を網羅することも、開示された形態そのものにそれらの例を限定することも意図していない。この説明に照らして、多くの修正及び変形が可能である。

Claims (16)

  1. 少なくとも1つの機械学習モデルを含む機械学習データ構造を格納するための不揮発性メモリと、
    前記機械学習データ構造にアクセスするために前記不揮発性メモリに結合された第1の処理資源と、
    少なくとも1つのグラフィックス処理コアを有する第2の処理資源であって、前記機械学習データ構造が前記第1の処理資源と前記第2の処理資源の共有メモリ空間となるように、前記機械学習データ構造にアクセスするために前記不揮発性メモリに結合された第2の処理資源と、および
    前記第2の処理資源の前記少なくとも1つのグラフィックス処理コアを用いて前記少なくとも1つの機械学習モデルの処理を実行しているときに、第1の処理資源を用いて前記少なくとも1つの機械学習モデルの動作に関連する命令及び/又はデータを取り出処理エンジン
    を含む、システム。
  2. 前記第1の処理資源に結合されたリアルタイムデータ入力部をさらに備え、
    前記処理エンジンは、
    前記第1の処理資源を用いて、前記不揮発性メモリの前記機械学習データ構造に、前記リアルタイムデータ入力部から受け取ったリアルタイムデータストリームを格納し、及び、
    前記少なくとも1つのグラフィックス処理コアを用いて、前記リアルタイムデータストリームについてのモデル結果を生成するために、該リアルタイムデータストリームのサブセットに対して、前記少なくとも1つの機械学習モデルの処理を実行する、請求項1のシステム。
  3. 前記リアルタイムデータストリームは、リアルタイムビデオデータストリームであり、前記リアルタイムデータストリームの前記サブセットは、前記リアルタイムビデオデータストリームのタイムスライスに対応し、前記少なくとも1つの機械学習モデルは、物体認識機械学習モデルを含む、請求項2のシステム。
  4. 前記機械学習データ構造は少なくとも2つの機械学習モデルを含み、
    前記処理エンジンは、前記第1の処理資源を用いて、前記第2の処理資源における前記少なくとも1つのグラフィックス処理コアによる前記少なくとも2つの機械学習モデルの実行の切り替えを行う、請求項1から3のいずれか1のシステム。
  5. 前記機械学習データ構造は1セットの機械学習モデルを格納することができ、
    前記処理エンジンは、
    前記第1の処理資源を用いて、前記機械学習データ構造にリアルタイムデータストリームを格納し、
    前記第1の処理資源を用いて、前記1セットの機械学習モデルから、前記リアルタイムデータに関連するデータのタイプに少なくとも部分的に基づいて、実行するための少なくとも第1の機械学習モデル及び第2の機械学習モデルを決定し、
    前記リアルタイムデータのそれぞれのサブセットについて、前記リアルタイムデータを前記機械学習データ構造に格納するのと並行して、
    前記リアルタイムデータの前記それぞれのサブセットについてそれぞれの第1のモデル結果を生成するために、前記第2の処理資源の前記少なくとも1つのグラフィックス処理コアを用いて、前記リアルタイムデータの前記それぞれのサブセットに対して前記第1の機械学習モデルの処理を実行し、
    前記第1の機械学習モデルの実行後に、前記第1の処理資源を用いて前記第2の機械学習モデルの実行への切り替えを行い、及び、
    前記リアルタイムデータの前記それぞれのサブセットについてそれぞれの第2のモデル結果を生成するために、前記第2の処理資源の前記少なくとも1つのグラフィックス処理コアを用いて、前記リアルタイムデータの前記それぞれのサブセットに対して前記第2の機械学習モデルの処理を実行する、請求項1から3のいずれか1のシステム。
  6. 前記処理エンジンはさらに、前記第1の処理資源を用いて、前記リアルタイムデータのそれぞれのサブセットに対応する前記それぞれの第1のモデル結果及び第2のモデル結果を処理する、請求項5のシステム。
  7. 前記機械学習データ構造は、機械学習データインデックスを格納することができ、前記第1の処理資源は、前記機械学習データインデックスに少なくとも部分的に基づいて前記機械学習データ構造にアクセスすることができ、前記第2の処理資源は、前記機械学習データインデックスに少なくとも部分的に基づいて前記機械学習データ構造にアクセスすることができる、請求項1から6のいずれか1のシステム。
  8. 前記不揮発性メモリはストレージクラスメモリ(SCM)の不揮発性メモリである、請求項1から7のいずれか1のシステム。
  9. 不揮発性メモリに結合された第1の処理資源によって、前記不揮発性メモリの共有メモリ空間に格納されている機械学習データ構造にアクセスし、
    前記不揮発性メモリに結合された少なくとも1つのグラフィックス処理コアを含む第2の処理資源によって、前記機械学習データ構造にアクセスし、および
    前記第2の処理資源の前記少なくとも1つのグラフィックス処理コアによって、前記機械学習データ構造に格納されているデータセットに対して、該機械学習データ構造に格納されている少なくとも2つの機械学習モデルの処理を実行しているときに、前記第1の処理資源を用いて前記機械学習モデルに対応する命令及び/又はデータを取り出すことを含む方法。
  10. 前記少なくとも2つの機械学習モデルの処理を実行することが、
    第1のモデル結果を生成するために、前記データセットに対して第1の機械学習モデルの処理を実行することと、
    前記第1の機械学習モデルの処理の実行後に、第2のモデル結果を生成するために、前記データセットに対する第2の機械学習モデルの処理の実行に切り替えることを含む、請求項9の方法。
  11. 前記第1のモデル結果に少なくとも部分的に基づいて、前記第1の機械学習モデルを更新し、
    前記第2のモデル結果に少なくとも部分的に基づいて、前記第2の機械学習モデルを更新し、
    前記第1及び第2の機械学習モデルを更新した後に、更新された第1のモデル結果及び更新された第2のモデル結果を生成するために、前記データセットに対して前記第1の機械学習モデル及び前記第2の機械学習モデルの処理を実行することをさらに含む、請求項10の方法。
  12. 前記データセットはリアルタイムデータストリームであり、
    第1の処理資源によって前記機械学習データ構造にアクセスすることが、前記第1の処理資源によって、前記機械学習データ構造に前記リアルタイムデータストリームを格納することを含み、前記リアルタイムデータストリームに対する前記格納されている少なくとも2つの機械学習モデルの前記処理は、前記第1の処理資源によって前記機械学習データ構造に前記リアルタイムデータストリームを格納するのと並行して、前記少なくとも1つのグラフィックス処理コアによって実行される、請求項9から11のいずれか1の方法。
  13. 前記機械学習データ構造は1セットの機械学習モデルを格納し、
    前記方法がさらに、前記データセットのデータタイプに少なくとも部分的に基づいて、前記データセットに対して実行するための前記少なくとも2つの機械学習モデルを決定することを含む、請求項9から12のいずれか1の方法。
  14. システムの処理資源によって実行可能な命令を含む非一時的な機械可読記憶媒体であって、
    前記命令は、前記システムに、
    前記システムの第1の処理資源によって、該システムの不揮発性メモリの共有メモリ空間に格納されている機械学習データ構造にアクセスし、
    前記第1の処理資源によって、前記機械学習データ構造に格納されているデータセットに対して実行するための、前記機械学習データ構造に格納されている1セットの機械学習モデルを決定し、
    少なくとも1つのグラフィックス処理コアを備える前記システムの第2の処理資源によって、前記機械学習データ構造にアクセスし、および
    前記1セットの機械学習モデルのそれぞれの機械学習モデルについてモデル結果を生成するために、前記第2の処理資源の前記少なくとも1つのグラフィックス処理コアによって前記データセットに対して前記1セットの機械学習モデルの処理を実行しているときに、前記第1の処理資源を用いて前記機械学習モデルに対応する命令及び/又はデータを取り出すこと
    を実行させる、機械可読記憶媒体。
  15. 前記少なくとも1つのグラフィックス処理コアによって前記データセットに対して前記1セットの機械学習モデルの処理を実行させる前記命令が、前記システムに、
    前記データセットの各データサブセットについて、前記1セットの機械学習モデルのそれぞれの機械学習モデルの処理を実行した後に、前記第2の処理資源の前記少なくとも1つのグラフィックス処理コアによる前記1セットの機械学習モデルのうちの次のそれぞれの機械学習モデルの処理の実行に切り替えさせるための命令を含む、請求項14の機械可読記憶媒体。
  16. 前記データセットはリアルタイムデータストリームであり、
    前記機械可読記憶媒体はさらに、前記システムに、前記第1の処理資源によって、前記不揮発性メモリの前記機械学習データ構造に前記リアルタイムデータストリームを格納させるための命令を含み、
    前記システムは、前記機械学習データ構造に前記リアルタイムデータストリームを格納するのと並行して、前記第2の処理資源の前記少なくとも1つのグラフィックス処理コアによって、前記リアルタイムデータストリームに対して前記1セットの機械学習モデルの処理を実行することができる、請求項14または15の機械可読記憶媒体。
JP2018557033A 2016-06-17 2016-06-17 共有機械学習データ構造 Active JP6928616B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/038128 WO2017218009A1 (en) 2016-06-17 2016-06-17 Shared machine-learning data structure

Publications (2)

Publication Number Publication Date
JP2019525277A JP2019525277A (ja) 2019-09-05
JP6928616B2 true JP6928616B2 (ja) 2021-09-01

Family

ID=60664580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018557033A Active JP6928616B2 (ja) 2016-06-17 2016-06-17 共有機械学習データ構造

Country Status (7)

Country Link
US (1) US11797459B2 (ja)
EP (1) EP3436929A4 (ja)
JP (1) JP6928616B2 (ja)
KR (1) KR102205087B1 (ja)
CN (1) CN109416636B (ja)
BR (1) BR112018072407A2 (ja)
WO (1) WO2017218009A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10803941B2 (en) * 2014-12-22 2020-10-13 Mohammad A. Mazed System on chip (SoC) based on neural processor or microprocessor
US10241921B2 (en) * 2017-04-17 2019-03-26 Intel Corporation Avoid cache lookup for cold cache
US11562288B2 (en) 2018-09-28 2023-01-24 Amazon Technologies, Inc. Pre-warming scheme to load machine learning models
US11436524B2 (en) * 2018-09-28 2022-09-06 Amazon Technologies, Inc. Hosting machine learning models
KR102167643B1 (ko) * 2019-01-25 2020-10-19 서울대학교산학협력단 머신러닝 기반의 비정상 분기 탐지 장치 및 그 방법
US11176493B2 (en) * 2019-04-29 2021-11-16 Google Llc Virtualizing external memory as local to a machine learning accelerator
US11175958B2 (en) * 2019-05-01 2021-11-16 International Business Machines Corporation Determine a load balancing mechanism for allocation of shared resources in a storage system using a machine learning module based on number of I/O operations
US11371148B2 (en) * 2020-08-24 2022-06-28 Applied Materials, Inc. Fabricating a recursive flow gas distribution stack using multiple layers
WO2023010302A1 (en) * 2021-08-04 2023-02-09 Qualcomm Incorporated Machine learning group switching
CN113722319A (zh) * 2021-08-05 2021-11-30 平凯星辰(北京)科技有限公司 基于学习索引的数据存储方法
KR20240024485A (ko) * 2022-08-17 2024-02-26 삼성전자주식회사 모델들에 의하여 공통으로 이용되는 정보에 기반하여 모델들을 구동하기 위한 전자 장치 및 그 방법

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829013A (en) * 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US7219085B2 (en) * 2003-12-09 2007-05-15 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit
JP4912028B2 (ja) * 2006-05-01 2012-04-04 日本電信電話株式会社 逐次学習式非定常映像検出装置,逐次学習式非定常映像検出方法及びその方法を実装したプログラム
CN101622652B (zh) * 2007-02-08 2012-03-21 行为识别系统公司 行为识别系统
US8411935B2 (en) * 2007-07-11 2013-04-02 Behavioral Recognition Systems, Inc. Semantic representation module of a machine-learning engine in a video analysis system
GB2462860B (en) * 2008-08-22 2012-05-16 Advanced Risc Mach Ltd Apparatus and method for communicating between a central processing unit and a graphics processing unit
US8311115B2 (en) * 2009-01-29 2012-11-13 Microsoft Corporation Video encoding using previously calculated motion information
US9177486B2 (en) 2009-09-29 2015-11-03 Advanced Training System Llc Shifter force detection
US8538741B2 (en) * 2009-12-15 2013-09-17 Ati Technologies Ulc Apparatus and method for partitioning a display surface into a plurality of virtual display areas
US8669990B2 (en) * 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
CN102004671B (zh) 2010-11-15 2013-03-13 北京航空航天大学 一种云计算环境下数据中心基于统计模型的资源管理方法
JP5369079B2 (ja) * 2010-12-03 2013-12-18 日本電信電話株式会社 音響モデル作成方法とその装置とプログラム
US9171264B2 (en) 2010-12-15 2015-10-27 Microsoft Technology Licensing, Llc Parallel processing machine learning decision tree training
US8762298B1 (en) 2011-01-05 2014-06-24 Narus, Inc. Machine learning based botnet detection using real-time connectivity graph based traffic features
US8364613B1 (en) * 2011-07-14 2013-01-29 Google Inc. Hosting predictive models
WO2013100935A1 (en) * 2011-12-28 2013-07-04 Intel Corporation A method and device to augment volatile memory in a graphics subsystem with non-volatile memory
US9619174B2 (en) * 2011-12-30 2017-04-11 Intel Corporation Write mechanism for storage class memory
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
CA2841472C (en) * 2013-02-01 2022-04-19 Brokersavant, Inc. Machine learning data annotation apparatuses, methods and systems
US9171478B2 (en) * 2013-03-15 2015-10-27 International Business Machines Corporation Learning model for dynamic component utilization in a question answering system
US9626732B2 (en) * 2013-10-10 2017-04-18 Intel Corporation Supporting atomic operations as post-synchronization operations in graphics processing architectures
JP6201792B2 (ja) * 2014-02-06 2017-09-27 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
CN104036451B (zh) 2014-06-20 2018-12-11 深圳市腾讯计算机系统有限公司 基于多图形处理器的模型并行处理方法及装置
CN104035751B (zh) 2014-06-20 2016-10-12 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置
US10102480B2 (en) * 2014-06-30 2018-10-16 Amazon Technologies, Inc. Machine learning service
US10325219B2 (en) 2014-07-18 2019-06-18 Facebook, Inc. Parallel retrieval of training data from multiple producers for machine learning systems
US10409910B2 (en) * 2014-12-12 2019-09-10 Omni Ai, Inc. Perceptual associative memory for a neuro-linguistic behavior recognition system
US10387794B2 (en) * 2015-01-22 2019-08-20 Preferred Networks, Inc. Machine learning with model filtering and model mixing for edge devices in a heterogeneous environment
CN105094985A (zh) * 2015-07-15 2015-11-25 上海新储集成电路有限公司 一种共享内存池的低功耗数据中心及其工作方法
CN105227669A (zh) 2015-10-15 2016-01-06 浪潮(北京)电子信息产业有限公司 一种面向深度学习的cpu与gpu混合的集群架构系统
US11087234B2 (en) * 2016-01-29 2021-08-10 Verizon Media Inc. Method and system for distributed deep machine learning
CN105912500B (zh) * 2016-03-30 2017-11-14 百度在线网络技术(北京)有限公司 机器学习模型生成方法和装置

Also Published As

Publication number Publication date
BR112018072407A2 (pt) 2019-02-19
JP2019525277A (ja) 2019-09-05
EP3436929A4 (en) 2019-10-16
WO2017218009A1 (en) 2017-12-21
US11797459B2 (en) 2023-10-24
KR20180122741A (ko) 2018-11-13
US20190130300A1 (en) 2019-05-02
CN109416636B (zh) 2023-05-26
KR102205087B1 (ko) 2021-01-20
EP3436929A1 (en) 2019-02-06
CN109416636A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
JP6928616B2 (ja) 共有機械学習データ構造
US11741345B2 (en) Multi-memory on-chip computational network
US10210935B2 (en) Associative row decoder
US10846621B2 (en) Fast context switching for computational networks
US20190180183A1 (en) On-chip computational network
US20190057050A1 (en) Pipeline circuit architecture to provide in-memory computation functionality
CN108541313A (zh) 虚拟寄存器堆
CN111465943B (zh) 一种集成电路和用于神经网络处理的方法
US20190057727A1 (en) Memory device to provide in-memory computation functionality for a pipeline circuit architecture
US20210319821A1 (en) Integrated Circuit Device with Deep Learning Accelerator and Random Access Memory
US11461651B2 (en) System on a chip with deep learning accelerator and random access memory
KR101743409B1 (ko) 메모리 관리
US11887647B2 (en) Deep learning accelerator and random access memory with separate memory access connections
WO2022031446A1 (en) Optimized sensor fusion in deep learning accelerator with integrated random access memory
US20220223201A1 (en) Caching Techniques for Deep Learning Accelerator
US20220147808A1 (en) Compiler configurable to generate instructions executable by different deep learning accelerators from a description of an artificial neural network
US9658976B2 (en) Data writing system and method for DMA
US20230069768A1 (en) Distributed Camera System
US20220147809A1 (en) Deep learning accelerators with configurable hardware options optimizable via compiler
US20220358748A1 (en) Object Detection with a Deep Learning Accelerator of Artificial Neural Networks
Lin Memory-Centric Architectures for Big Data Applications
WO2022098497A1 (en) Implement the computation of an artificial neural network using multiple deep learning accelerators
CN114722259A (zh) 数据处理系统、方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210624

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210624

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210706

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210713

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210806

R150 Certificate of patent or registration of utility model

Ref document number: 6928616

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150