(57)【要約】例は、機械学習データ構造を格納するための不揮発性メモリを有するシステムを備えている。例は、第１の処理資源で該機械学習データ構造にアクセスし、及び例は、少なくとも１つのグラフィックス処理コアを備える第２の処理資源で該機械学習データ構造にアクセスし、これによって、該機械学習データ構造は、該第１の処理資源と該第２の処理資源の共有メモリ空間となる。【選択図】図１Ｂ
2019525277.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの機械学習モデルを含む機械学習データ構造を格納するための不揮発性メモリと、
前記機械学習データ構造にアクセスするために前記不揮発性メモリに結合された第１の処理資源と、
少なくとも１つのグラフィックス処理コアを有する第２の処理資源
を備え、
前記機械学習データ構造が、前記第１の処理資源と前記第２の処理資源の共有メモリ空間となるように、前記第２の処理資源は、前記機械学習データ構造にアクセスするために前記不揮発性メモリに結合されることからなる、システム。
【請求項２】
処理エンジンであって、
前記第１の処理資源を用いて、前記少なくとも１つの機械学習モデルの実行を調整し、及び、
前記第２の処理資源の前記少なくとも１つのグラフィックス処理コアを用いて、前記少なくとも１つの機械学習モデルの処理を実行する
ための処理エンジンをさらに備える請求項１のシステム。
【請求項３】
前記第１の処理資源に結合されたリアルタイムデータ入力部と、
処理エンジン
をさらに備え、
前記処理エンジンは、
前記第１の処理資源を用いて、前記不揮発性メモリの前記機械学習データ構造に、前記リアルタイムデータ入力部から受け取ったリアルタイムデータストリームを格納し、及び、
前記少なくとも１つのグラフィックス処理コアを用いて、前記リアルタイムデータストリームについてのモデル結果を生成するために、該リアルタイムデータストリームのサブセットに対して、前記少なくとも１つの機械学習モデルの処理を実行する
ことからなる、請求項１のシステム。
【請求項４】
前記リアルタイムデータストリームは、リアルタイムビデオデータストリームであり、前記リアルタイムデータストリームの前記サブセットは、前記リアルタイムビデオデータストリームのタイムスライスに対応し、前記少なくとも１つの機械学習モデルは、物体認識機械学習モデルを含む、請求項３のシステム。
【請求項５】
前記機械学習データ構造は少なくとも２つの機械学習モデルを含み、前記システムはさらに処理エンジンを備え、
前記処理エンジンは、前記第１の処理資源を用いて、前記第２の処理資源における前記少なくとも１つのグラフィックス処理コアによる前記少なくとも２つの機械学習モデルの実行及び切り替えを調整することからなる、請求項１のシステム。
【請求項６】
前記機械学習データ構造は一組の機械学習モデルを格納することができ、前記システムはさらに処理エンジンを備え、
前記処理エンジンは、
前記第１の処理資源を用いて、前記機械学習データ構造にリアルタイムデータストリームを格納し、
前記第１の処理資源を用いて、前記一組の機械学習モデルから、前記リアルタイムデータに関連するデータのタイプに少なくとも部分的に基づいて、実行するための少なくとも第１の機械学習モデル及び第２の機械学習モデルを決定し、
前記リアルタイムデータのそれぞれのサブセットについて、前記リアルタイムデータを前記機械学習データ構造に格納するのと並行して、
前記第１の処理資源を用いて、前記リアルタイムデータの前記それぞれのサブセットに対する前記第１の機械学習モデルの実行を調整し、
前記リアルタイムデータの前記それぞれのサブセットについてそれぞれの第１のモデル結果を生成するために、前記第２の処理資源の前記少なくとも１つのグラフィックス処理コアを用いて、前記リアルタイムデータの前記それぞれのサブセットに対して前記第１の機械学習モデルの処理を実行し、
前記第１の機械学習モデルの実行後に、前記第２の機械学習モデルの実行への切り替えを調整し、及び、
前記リアルタイムデータの前記それぞれのサブセットについてそれぞれの第２のモデル結果を生成するために、前記第２の処理資源の前記少なくとも１つのグラフィックス処理コアを用いて、前記リアルタイムデータの前記それぞれのサブセットに対して前記第２の機械学習モデルの処理を実行する
ことからなる、請求項１のシステム。
【請求項７】
前記処理エンジンはさらに、前記第１の処理資源を用いて、前記リアルタイムデータのそれぞれのサブセットに対応する前記それぞれの第１のモデル結果及び第２のモデル結果を処理することができる、請求項６のシステム。
【請求項８】
前記機械学習データ構造は、機械学習データインデックスを格納することができ、前記第１の処理資源は、前記機械学習データインデックスに少なくとも部分的に基づいて前記機械学習データ構造にアクセスすることができ、前記第２の処理資源は、前記機械学習データインデックスに少なくとも部分的に基づいて前記機械学習データ構造にアクセスすることができることからなる、請求項１のシステム。
【請求項９】
不揮発性メモリに結合された第１の処理資源によって、前記不揮発性メモリの共有メモリ空間に格納されている機械学習データ構造にアクセスするステップと、
前記不揮発性メモリに結合された少なくとも１つのグラフィックス処理コアを含む第２の処理資源によって、前記機械学習データ構造にアクセスするステップと、
前記第２の処理資源の前記少なくとも１つのグラフィックス処理コアによって、前記機械学習データ構造に格納されているデータセットに対して、該機械学習データ構造に格納されている少なくとも２つの機械学習モデルの処理を実行するステップ
を含む方法。
【請求項１０】
前記実行するステップが、
第１のモデル結果を生成するために、前記データセットに対して第１の機械学習モデルの処理を実行することと、
前記第１の機械学習モデルの処理の実行後に、第２のモデル結果を生成するために、前記データセットに対する第２の機械学習モデルの処理の実行に切り替えること
を含むことからなる、請求項９の方法。
【請求項１１】
前記第１のモデル結果に少なくとも部分的に基づいて、前記第１の機械学習モデルを更新するステップと、
前記第２のモデル結果に少なくとも部分的に基づいて、前記第２の機械学習モデルを更新するステップと、
前記第１及び第２の機械学習モデルを更新した後に、更新された第１のモデル結果及び更新された第２のモデル結果を生成するために、前記データセットに対して前記第１の機械学習モデル及び前記第２の機械学習モデルの処理を実行するステップ
をさらに含む請求項１０の方法。
【請求項１２】
前記データセットはリアルタイムデータストリームであり、
第１の処理資源によって前記機械学習データ構造にアクセスする前記ステップが、前記第１の処理資源によって、前記機械学習データ構造に前記リアルタイムデータストリームを格納することを含み、前記リアルタイムデータストリームに対する前記少なくとも２つの機械学習モデルの前記処理は、前記第１の処理資源によって前記機械学習データ構造に前記リアルタイムデータストリームを格納するのと並行して、前記少なくとも１つのグラフィックス処理コアによって実行される、請求項９の方法。
【請求項１３】
前記機械学習データ構造は一組の機械学習モデルを格納し、
前記方法がさらに、
前記データセットのデータタイプに少なくとも部分的に基づいて、前記データセットに対して実行するための前記少なくとも２つの機械学習モデルを決定するステップ
を含む、請求項１０の方法。
【請求項１４】
システムの処理資源によって実行可能な命令を含む非一時的な機械可読記憶媒体であって、
前記命令は、前記システムに、
前記システムの第１の処理資源によって、該システムの不揮発性メモリの共有メモリ空間に格納されている機械学習データ構造にアクセスするステップと、
前記第１の処理資源によって、前記機械学習データ構造に格納されているデータセットに対して実行するための、前記機械学習データ構造に格納されている一組の機械学習モデルを決定するステップと、
少なくとも１つのグラフィックス処理コアを備える前記システムの第２の処理資源によって、前記機械学習データ構造にアクセスするステップと、
前記一組の機械学習モデルのそれぞれの機械学習モデルについてモデル結果を生成するために、前記第２の処理資源の前記少なくとも１つのグラフィックス処理コアによって前記データセットに対して前記一組の機械学習モデルの処理を実行するステップ
を実行させることからなる、機械可読記憶媒体。
【請求項１５】
前記少なくとも１つのグラフィックス処理コアによって前記データセットに対して前記一組の機械学習モデルの処理を実行するステップを実行させる前記命令が、前記システムに、
前記データセットの各データサブセットについて、前記一組の機械学習モデルのそれぞれの機械学習モデルの処理を実行した後に、前記第２の処理ユニットの前記少なくとも１つのグラフィックス処理コアによる前記一組の機械学習モデルのうちの次のそれぞれの機械学習モデルの処理の実行に切り替えさせる
ための命令を含むことからなる、請求項１４の機械可読記憶媒体。
【請求項１６】
前記データセットはリアルタイムデータストリームであり、
前記機械可読記憶媒体はさらに、前記システムに、
前記第１の処理資源によって、前記不揮発性メモリの前記機械学習データ構造に前記リアルタイムデータストリームを格納するステップ
を実行させるための命令を含み、
前記システムは、前記機械学習データ構造に前記リアルタイムデータストリームを格納するのと並行して、前記第２の処理ユニットの前記少なくとも１つのグラフィックス処理コアによって、前記リアルタイムデータストリームに対して前記一組の機械学習モデルの処理を実行することができることからなる、請求項１４の機械可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
いくつかのデータ処理システムは、データセットに対して機械学習を実行して結果を生成することができる。機械学習の例は、分類、回帰、クラスタ化、密度推定、次元削減（dimensionality reduction）、及び／又はその他のそのようなタイプの分析を含みうる。そのような例では、データ処理システムは、機械学習モデルに基づいてデータセットを分析することができる。
【図面の簡単な説明】
【０００２】
【図１Ａ】本開示を利用することができる例示的なシステムのいくつかの構成要素のブロック図である。
【図１Ｂ】本開示を利用することができる例示的なシステムのいくつかの構成要素のブロック図である。
【図２】本開示を利用することができる例示的なシステムのいくつかの構成要素のブロック図である。
【図３】例示的なシステムのいくつかの構成要素のブロック図である。
【図４】例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。
【図５】例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。
【図６】例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。
【図７】例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャートである。  図面を通じて、同じ参照番号は類似するが必ずしも同じではない要素を示している。さらに、それらの図面は、本説明と整合する例及び／又は実施例を提供している。しかしながら、本説明は、それらの図面に提供されている例及び／又は実施例に限定されない。
【発明を実施するための形態】
【０００３】
例示的なデータ処理システムは、機械学習データ構造を格納するための不揮発性メモリを備えることができる。該機械学習データ構造を、第１の処理資源及び第２の処理資源の共有メモリ空間に対応付けることができ、ここで、該第２の処理資源は、少なくとも１つのグラフィックス処理コアを備えることができる。いくつかの例では、該不揮発性メモリは、該第１の処理資源及び該第２の処理資源が、該機械学習メモリ構造内の命令及びデータを直接処理することができるようなアクセス速度を有することができる。本明細書で使用されている「データ処理システム」には、たとえば、パーソナルコンピューター、ポータブルコンピューティング装置（たとえば、ラップトップ、タブレット型コンピューター、スマートフォン）、サーバー、サーバーブレード、サーバーの処理ノード、システムオンチップ（ＳＯＣ）コンピューティング装置、ＳＯＣ装置の処理ノード、及び／又はその他のそのようなデータ処理装置／システムを含めることができる。本明細書では、「データ処理システム」を、コンピューティングシステム、または、単にシステムと呼ぶ場合もある。
【０００４】
本明細書における例は、機械学習を実行することができるデータ処理システムの改善された処理効率、低減された資源（リソース）利用、及び／又は増大した計算複雑度を容易にすることができる。本明細書に記載されている例は、機械学習データ構造を格納するための不揮発性メモリ資源を含むことができる。該機械学習データ構造は、少なくとも１つの機械学習モデルを含むことができる。機械学習モデルは、データセットに対するモデル結果を生成するために、該機械学習モデルのモデルパラメータに少なくとも部分的に基づいて該データセットに対して実行される複数の処理を含むことができる。
【０００５】
機械学習モデルの例は、回帰ベースモデル（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）、及び／又はその他のそのようなタイプの機械学習モデルを含むことができる。理解されるように、いくつかの例では、機械学習データ構造は、複数のタイプの機械学習モデルを格納することができる。説明されているように、それぞれの機械学習モデルは一組のモデルパラメータを含むことができる。いくつかの例は、学習データセットに対して該機械学習モデルの処理を実行して、該学習データセットから生成されたモデル結果に基づいてモデルパラメータを更新することによって、該モデルパラメータを調整することができる。
【０００６】
不揮発性メモリ（ＮＶＭ）の例は、読み出し専用メモリ（ＲＯＭ）（たとえば、マスクＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなど）、フラッシュメモリ、固体メモリ、不揮発性ＳＲＡＭ（ｎｖＳＲＡＭ）、バッテリバックアップＳＲＡＭ、強誘電体ＲＡＭ（ＦＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、相変化メモリ（ＰＣＭ）、磁気テープ、光学式ドライブ、ハードディスクドライブ、３Ｄクロスポイントメモリ（３ＤＸPoint）、プログラマブル金属化セル（ＰＣＭ）メモリ、シリコン−酸化物−窒化物−酸化物−シリコン（ＳＯＮＯＳ）メモリ、抵抗変化メモリ（ＲＲＡＭ）、磁壁メモリ（ＤＷＭ）、ナノＲＡＭ、フローティング接合ゲートランダムアクセスメモリ（ＦＪＧＲＡＭ）、メモリスタメモリ、スピン注入メモリ（spin transfer torque RAM：ＳＴＴ−ＲＡＭ）、並びに、電力サイクル（たとえばオン／オフ）全体にわたって格納されている情報を保持するその他の記憶装置／モジュールを含むことができる。電力サイクル全体にわたってデータを格納（記憶）する不揮発性メモリを、永続データメモリと呼ぶこともできる。本明細書で使用されている「不揮発性メモリ資源」は、１つのデバイス（ないし装置）及び／又はモジュール、またはデバイス（ないし装置）及び／又はモジュールの組み合わせを含むことができる。
【０００７】
いくつかの例では、不揮発性メモリ資源を、ストレージクラスメモリ（ＳＣＭ）と呼ばれるあるクラス（種類）の不揮発性メモリに対応付ける（ないし合致させる）ことができる。それらの例では、該ＳＣＭ不揮発性メモリは、バイト単位でアドレス指定可能であり、処理資源と同期し、及び、処理資源のコヒーレント領域内にある。さらに、ＳＣＭ不揮発性メモリは、ハードドライブや磁気テープ記憶装置などの他のタイプの不揮発性メモリよりも比較的速い読み出し／書込み速度を有するメモリのタイプを含むことができる。ＳＣＭ不揮発性メモリの例には、いくつかのタイプのフラシュメモリ、ＲＲＡＭ、メモリスタ、ＰＣＭ、ＭＲＡＭ、ＳＴＴ−ＲＡＭ、並びに、その他のタイプの読み出し／書込み速度がより高速な永続データ記憶装置が含まれる。理解されるように、回転ディスクハードドライブ、ＮＡＮＤ型フラッシュメモリ、磁気テープドライブなどのいくつかのタイプの不揮発性メモリの比較的遅い読み出し及び書込み速度に起因して、処理資源は、それらのタイプの不揮発性メモリに対して命令及びデータを直接処理できない場合がある。しかしながら、処理資源は、ＳＣＭ不揮発性メモリに対しては命令及びデータを直接処理することができる。
【０００８】
さらに、例は、該不揮発メモリ資源に結合された処理資源を備えることができる。具体的には、例示的なシステムは、機械学習データ構造にアクセスするために該不揮発性メモリに結合された第１の処理資源を備えることができ、該例示的なシステムは、該機械学習データ構造にアクセスするために該不揮発性メモリに結合された第２の処理資源を備えることができる。したがって、該不揮発性メモリ資源の機械学習データ構造は、該第１の処理資源と該第２の処理資源の共有メモリ空間である。本明細書に記載されているいくつかの例では、共有メモリ空間は、該第１の処理資源と該第２の処理資源が、該機械学習データ構造に対してデータを直接読み出し／書き込むことができることを示している。さらに、共有メモリ空間に対して、該第１の処理資源と該第２の処理資源が、該機械学習データ構造に同時にアクセスする（たとえばデータの読み出し／書き込みを行う）ことができることが理解されよう。
【０００９】
例示的なデータ処理システムでは、該第１の処理資源は複数の処理資源を有することができ、同様に、該第２の処理資源は複数の処理資源を有することができる。いくつかの例では、該第１の処理資源を、少なくとも１つの処理コアを備える中央処理装置（ＣＰＵ）などの汎用のデータ処理装置に対応付ける（ないし合致させる）ことができる。いくつかの例では、該第１の処理資源は、特定用途向け集積回路（ＡＳＩＣ）、及び／又は、その他のそのようなデータ処理のための論理的構成要素からなる構成を備えることができる。いくつかの例では、該第１の処理資源は、並列に及び／又は同期して及び／又は同時に（ないし並行して）及び／又はインタリーブ方式で及び／又はその他のそのような命令実行方式で、命令を処理／実行することができる複数の処理コアを備えることができる。いくつかの例では、（しばしばマルチスレッドコアと呼ばれる）それぞれの処理コアは、２以上の命令スレッドを実行することができる。
【００１０】
該第２の処理資源は、専用グラフィックス処理コアと呼ばれる場合がある少なくとも１つのグラフィックス処理コアを備えることができる。いくつかの例では、該第２の処理資源をグラフィックス処理ユニット（ＧＰＵ）に対応付ける（ないし合致させる）ことができる。そのような例では、グラフィックス処理コアは、画像／ビデオ及び／又はデジタル信号ベースのデータを処理するための専用の回路及びロジックを備えることができる。いくつかの例では、該第２の処理ユニットは、大きなデータブロックを並列に処理することができる複数のグラフィックス処理コアを備えることができる。いくつかの例では、該第２の処理ユニットは、専用のグラフィックス処理コアを用いて（ないし該コアによって）ストリーム及び／又はベクトル処理を実行することができる。理解されるように、いくつかの例では、該第２の処理ユニット及びそれの少なくとも１つのグラフィックス処理コアを用いて、（しばしば、ＧＰＵ上の汎用コンピューティングと呼ばれる）グラフィックスベースの処理には対応しない場合があるさまざまタイプの処理を実行することができる。いくつかの例では、該不揮発性メモリの機械学習データ構造に格納されている少なくとも１つの機械学習モデルの処理（ないし動作）を、該第２の処理資源の該少なくとも１つのグラフィックス処理コアを用いて、データセットに対して実行することができる。
【００１１】
ここで、図面、特に図１Ａ及び図１Ｂを参照すると、これらの図面は、システム１００の例を示すブロック図を提供している。本明細書及び／又は図面において開示されているシステムの例には、パーソナルコンピューター、携帯型電子機器（たとえば、スマートフォン、タブレット、ラップトップ、ウェアラブルデバイスなど）、ワークステーション、スマートデバイス、サーバー、サーバーの処理ノード、複数のサーバーを備えるデータセンター、及び／又はその他のそのようなデータ処理装置が含まれる。図１Ａ及び図１Ｂの例では、システム１００は、第１の処理資源１０２、第２の処理資源１０４、及び処理資源１０２、１０４に結合された不揮発性メモリ１０８を備えている。
【００１２】
図示されているように、第１の処理資源１０２は、少なくとも１つの処理コア１１０を備えており、第２の処理資源１０４は、少なくとも１つのグラフィックス処理コア１１２を備えている。不揮発性メモリ１０８は、少なくとも１つの機械学習モデル１１６を含むことができる機械学習データ構造１１４を格納することができる。本明細書及び／又は図面に記載されている例では、第１の処理資源１０２は、少なくとも１つのハードウェアベースのプロセッサを備えることができる。さらに、処理資源１０２は、１つのプロセッサまたは複数のプロセッサを備えることができ、この場合、それらのプロセッサを、単一のシステム１００内に構成ないし配置することができ、または、ローカルで及び／もしくは遠隔で接続された複数のシステムに分散させることができる。
【００１３】
上述したように、第２の処理資源１０４は、少なくとも１つのグラフィックス処理コア１１２を備えることができる。いくつかの例では、第２の処理資源１０４は、マルチコアグラフィックス処理ユニット（ＧＰＵ）を備えることができる。いくつかの例では、該グラフィックス処理コアは、浮動小数点演算を実行するための（しばしば、浮動小数点演算装置と呼ばれる）実行パイプライン及びグラフィックス処理コアを備えることができる。
【００１４】
図１Ｂに提供されている例においてさらに示されているように、システム１００はさらに、処理エンジン１１７を備えることができる。そのような例では、処理エンジン１１７は、第１の処理資源１０２を用いて（または該処理資源によって）該少なくとも１つの学習モデル１１６の実行を調整することができる。処理エンジン１１７は、そのような調整と同時に（ないし並行して）、第２の処理資源１０４の該少なくとも１つのグラフィックス処理コア１１２を用いて（ないし該コアによって）、該少なくとも１つの機械学習モデル１１６の処理（ないし動作）を実行することができる。したがって、第１の処理資源１０２は、第２の処理資源１０４のグラフィックス処理コア１１２による実行のために機械学習モデル１１６に関連する命令発行を調整できることが理解されよう。いくつかの例では、該第１の処理資源を用いて（または該処理資源によって）該少なくとも１つの機械学習モデル１１６の実行を調整することは、第２の処理資源１０４の該少なくとも１つのグラフィックス処理コア１１２における少なくとも２つの機械学習モデル１１６の実行を切り替えることを含むことができる。
【００１５】
図１Ｂの例示的なシステムでは、機械学習データ構造１１４はさらに、少なくとも１つのデータセット１１８を含むことができ、該少なくとも１つのデータセット１１８は少なくとも１つのデータサブセット１２０を含むことができる。理解されるように、データセットは、一般に、関連する情報の集合を意味し、データサブセットは、一般に、そのようなデータセットの個別の要素を意味する。データセットを、データの種々のタイプ、またはデータのタイプの組み合わせに対応付けることができる。
【００１６】
たとえば、データセットは、ビデオカメラ周辺装置で捉えられて、機械学習データ構造１１４に格納されたビデオデータを含むことができる。この例では、そのようなビデオデータのデータサブセットは、そのようなビデオデータのタイムスライスを含むことができ、ここで、タイムスライスは、該ビデオデータの持続時間の増分（きざみ幅）でありうる。たとえば、ビデオデータのデータサブセットを１０秒、１秒、５００ミリ秒（ｍｓ）、１０ｍｓ、１ｍｓなどの持続時間を有するタイムスライスとすることができる。別の例では、データセットを、ビデオデータとオーディオデータの組み合わせなどのマルチメディアデータに対応付けることができる。この例では、データサブセットを、そのようなマルチメディアデータのタイムスライスに対応付けることができる。他の例では、データセットを、種々のタイプのセンサー（たとえば、温度センサー、圧力センサーなど）で検出された、ある期間（ないし時間）にわたる種々の環境測定値（たとえば、温度、圧力など）に対応付けることができる。他の例では、データセットを、種々のタイプのセンサー（たとえば、光センサー、電波センサー、紫外線センサーなど）で検出された、ある期間（ないし時間）にわたる種々のタイプの電磁放射の測定値に対応付けることができる。理解されるように、データセットを、その他の種々のタイプのセンサー及び／又は装置によって収集されたその他の種々のタイプのデータに対応付けることができる。
【００１７】
さらに、不揮発性メモリ１０８は、第１の処理資源１０２及び／又は第２の処理資源１０４が、機械学習データ構造１１４内のデータの読み取り及び／又は該構造１１４へのデータの書き込みを調整することができるように、機械学習データ構造１１４に格納されている種々のタイプのデータを指し示すために使用することができる機械学習データインデックス１２２を含むことができる。この例では、機械学習データインデックス１２２は、機械学習データ構造１１４内に格納されているものとして示されているが、他の例では、機械学習データインデックス１２２を、不揮発性メモリ１０８の他の場所に格納することができる。理解されるように、いくつかの例では、機械学習データインデックス１２２を、永続的構造インデックス及び／又は永続的オブジェクトインデックスとすることができる。いくつかの例では、仮想アドレス指定方式を、処理資源１０２、１０４、及び不揮発性メモリ１０８用に実施できることが理解されよう。そのような例では、機械学習データインデックス１２２は、不揮発性メモリ１０８の物理メモリアドレスに対する仮想アドレス変換を容易にすることができる。
【００１８】
図１Ｂにおいて、例示的なシステム１００は、データ入力部１２４を備えており、該データ入力部で、センサー、画像／ビデオ（映像）キャプチャ装置、オーディオキャプチャ装置、及び／又はその他のそのような周辺入力装置などの周辺装置からデータを受け取ることができる。いくつかの例では、データ入力部１２４は、リアルタイムデータストリームの捕捉（キャプチャ）及び格納を容易にすることができる。それらの例では、該リアルタイムデータストリームを、第１の処理資源１０２によって、データセット１１８として機械学習データ構造１１４に格納することができる。第１の処理資源１０２によるそのようなリアルタイムデータストリームの格納と同時に（ないし並行して）、第２の処理資源１０４は、該少なくとも１つのグラフィックス処理コア１１２を用いて（ないし該コアによって）、リアルタイムデータのデータセット１１８のデータサブセット１２０に対して、該少なくとも１つの機械学習モデル１１６の処理（ないし動作）を実行することができる。したがって、いくつかの例は、少なくとも１つの機械学習モデルを用いたリアルタイムデータストリームのリアルタイム処理を容易にすることができる。理解されるように、リアルタイム機械学習処理は、種々のタイプのデータ処理作業を容易にすることができる。たとえば、機械学習モデルを物体認識に対応付けることができ、ビデオデータストリームを、物体認識機械学習モデルを用いて分析することができる。
【００１９】
図１Ｂに示されているように、不揮発性メモリ１０８はさらに、システムメモリ１２６、読み出し専用メモリ（ＲＯＭ）１２８、及び／又は記憶装置１３０を備えることができる。理解されるように、不揮発性メモリ１０８に追加的に割り当てられたそれらのメモリ１２６〜１３０を、第１の処理資源１０２及び第２の処理資源１０４によってアクセスする（すなわち共用する）ことができる。しかしながら、いくつかの例では、追加的に割り当てられたメモリ１２６〜１３０を、第１の処理資源１０２と第２の処理資源１０４とで共用しなくてもよい。たとえば、システムメモリ１２６には、第１の処理資源１０２だけがアクセスすることができる。理解されるように、他の例では、不揮発性メモリ１０８の他の例示的な割り当てを実施することができる。
【００２０】
さらに、システム１００は、揮発性メモリ１３２を備えることができる。理解されるように、揮発性メモリ１３２は、電力サイクル全体にわたってはデータを保持しないランダムアクセスメモリ（ＲＡＭ）またはその他のそのようなメモリを含むことができる。図１Ｂの例は、システムメモリ１２６、ＲＯＭ１２８、及び記憶装置１３０を不揮発性メモリ１０８に格納されているものとして示しているが、他の例では、そのようなデータを揮発性メモリ１３２に格納できることが理解されよう。いくつかの例では、該揮発性メモリは、第１の処理資源１０２及び第２の処理資源１０４によってアクセスできる共用（共有）メモリ部を有することができる。いくつかの例では、不揮発性メモリ１０８及び／又は揮発性メモリ１３２は、第１の処理資源１０２と第２の処理資源１０４によって共用されないメモリ部を有することができる。
【００２１】
図１Ａ及び図１Ｂには示されていないが、いくつかの例示的なシステムは、ユーザーまたはオペレータとのインターフェースのために、１以上のユーザー入力／出力装置（たとえば、１以上のボタン、表示装置（ディスプレイ）、タッチスクリーン、スピーカーなど）を組み込んだユーザーインターフェースを備えることができる。したがって、該ユーザーインターフェースは、該処理資源にデータを伝え、及び該処理資源からデータを受け取ることができる。たとえば、ユーザーは、該ユーザーインターフェースを介して１以上の選択物を入力することができ、該処理資源は、該ユーザーインターフェースの画面もしくはその他の出力装置にデータを出力させることができる。さらに、該システムは、ネットワークインターフェース装置を備えることができる。理解されるように、該ネットワークインターフェース装置は、ネットワークインターフェースカードなどの、１以上の通信ネットワークを介してデータを伝えるための１以上のハードウェア装置を備えている。
【００２２】
さらに、図１Ａ及び図１Ｂの例示的なシステムなどの例示的なシステムは、エンジンを備えることができ、（処理エンジン１１７などの）そのようなエンジンを、それぞれのエンジンの機能を実施するためのハードウェアとプログラミングの任意の組み合わせとすることができる。本明細書及び／又は図面に記載されているいくつかの例では、ハードウェアとプログラミングの組み合わせを、いくつかの異なるやり方で実施することができる。たとえば、それらのエンジンのプログラミングを、非一時な機械可読記憶媒体に格納されているプロセッサ実行可能命令とすることができ、それらのエンジンのハードウェアは、それらの命令を処理して実行するための処理資源を備えることができる。
【００２３】
いくつかの例では、そのようなエンジンを実装しているシステムは、それらの命令を格納している機械可読記憶媒体、及びそれらの命令を処理するための処理資源を備えることができ、または、該機械可読記憶媒体を、別個に設けて、該システム及び該処理資源によってアクセス可能なものとすることができる。いくつかの例では、エンジンを回路で実施することができる。さらに、エンジンを実施するために使用される処理資源は、少なくとも１つの中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、専用コントローラ（たとえばメモリコントローラ）、及び／又は、データ処理用に実施することができるその他のそのようなタイプの論理的構成要素を備えることができる。
【００２４】
図２は、例示的なシステム２００を示すブロック図を提示している。この例では、システム２００は、少なくとも１つの処理資源２０２、及び機械可読記憶媒体２０４を備えている。機械可読記憶媒体２０４は、例示的なシステム１００の主記憶装置を含む（ないし構成する）ランダムアクセスメモリ（ＲＡＭ）デバイス、並びに、補助レベルのメモリ（たとえば、キャッシュメモリ、不揮発性のもしくはバックアップ用のメモリ（たとえば、プログラム可能なメモリまたはフラッシュメモリ）、読み出し専用メモリなど）を表すことができる。さらに、機械可読記憶媒体２０４を、どこか他の場所に物理的に配置された記憶装置（たとえばマイクロプロセッサ内の任意のキャッシュメモリ）、並びに、仮想メモリとして使用される（たとえば、大容量記憶装置に、または例示的なシステム２００と通信する別のシステムに設けられている）任意の記憶容量を含むものとみなすことができる。さらに、機械可読記憶媒体２０４を非一時的なものとすることができる。いくつかの例では、処理資源２０２及び機械可読記憶媒体２０４を、少なくとも１つのサーバー内に配置された処理装置及び記憶装置に対応付けることができる。他の例では、処理資源２０２及び該機械可読記憶媒体をシステムオンチップ装置内に配置することができる。
【００２５】
さらに、機械可読記憶媒体２０４は、処理資源２０２によって実行することができる命令で符号化されることができ、及び／又は該命令を格納することができる。ここで、そのような命令の実行は、処理資源２０２及び／又はシステム２００に、本明細書に記載されている機能、プロセス、及び／又は一連の処理を実行させることができる。図２の例では、機械可読記憶媒体２０４は、第１の処理資源によって（ないし該処理資源を用いて）機械学習データ構造にアクセスするための命令２０６を含んでいる。さらに、機械可読記憶媒体２０４は、第１の処理資源によって（ないし該処理資源を用いて）、該機械学習データ構造に格納されているデータセットに対して実行するための、該機械学習データ構造に格納されている一組の機械学習モデルを決定するための命令２０８を含んでいる。さらに、機械可読記憶媒体２０４は、少なくとも１つのグラフィックス処理コアを備える第２の処理資源によって（ないし該処理資源を用いて）機械学習データ構造にアクセスするための命令２１０を含んでいる。機械可読記憶媒体２０４はまた、該一組の機械学習モデルのそれぞれの機械学習モデルについてそれぞれのモデル結果を生成するために、該第２の処理資源の該少なくとも１つのグラフィックス処理コアによって（ないし該コアを用いて）、該機械学習データ構造に格納されているデータセットに対して該一組の機械学習モデルの処理（ないし動作）を実行するための命令を含んでいる。
【００２６】
図３は、例示的なシステム３００のいくつかの構成要素を示すブロック図を提示している。説明されているように、いくつかの例では、処理資源は中央処理装置（ＣＰＵ）を備えており、この例では、システム３００は、少なくとも１つのコア３０４を有するＣＰＵ３０２を備えている。いくつかの例では、ＣＰＵ３０２は１つのコア３０４を備えることができ、他の例では、ＣＰＵ３０２は２つのコア３０４（デュアルコア構成と呼ばれる）、４つのコア（クアッドコア構成と呼ばれる）などを備えることができる。さらに、システム３００は、少なくとも１つのグラフィックス処理コア３０８を有するグラフィックス処理ユニット（ＧＰＵ）３０６を備えている。理解されるように、いくつかの例では、ＧＰＵ３０６は、２つのグラフィックス処理コア、４つのグラフィックス処理コア、８個のグラフィックス処理コア、１６個のグラフィックス処理コアなどを有することができる。この例では、ＣＰＵ３０２とＧＰＵ３０６は別個の構成要素として示されているが、いくつかの例では、ＣＰＵの汎用処理コアとＧＰＵのグラフィックス処理コアを単一の構成要素に統合できることが理解されよう。したがって、それらの例では、第１の処理資源を、該単一の構成要素の汎用処理コアと呼ぶことができ、第２の処理資源を、該単一の構成要素のグラフィックス処理コアと呼ぶことができる。
【００２７】
上述したように、グラフィックス処理コアは、浮動小数点演算を実行するためのロジック（論理回路）及び関連する回路を備えることができる。さらに、グラフィックス処理ユニット３０６は、グラフィックス処理ユニット３０６が複数の演算（ないし処理）を並列に実行できるように、複数のグラフィックス処理コア及び関連する命令実行パイプラインを備えることができる。並列処理アーキテクチャの例には、単一命令多重データ（ＳＩＭＤ）処理、または複数命令・複数データ処理アーキテクチャ（ＭＩＭＤ）が含まれる。いくつかの例では、ＧＰＵ３０６は、複数の異なるデータソースに対して浮動小数点演算を同時に（ないし並行して）実行するために使用することができるベクトル処理を実行できる複数のグラフィックス処理コアを有することができる。
【００２８】
図示されているように、ＣＰＵ３０２及びＧＰＵ３０６はさらに、キャッシュメモリ３１０を備えることができる。理解されるように、ＣＰＵ３０２及びＧＰＵ３０６内に示されているキャッシュメモリを専用メモリ（すなわち共用されないメモリ）とすることができ、この場合、そのようなキャッシュメモリ３１０は、命令キャッシュ、データキャッシュ、及び／又はトランスレーションルックアサイドバッファ（translation look aside buffer）を含むことができる。さらに、ＣＰＵ３０２及びＧＰＵ３０６が共用キャッシュメモリ（共有キャッシュメモリともいう）３１２に同時にアクセスできるように、ＣＰＵ３０２及びＧＰＵ３０６を、共用キャッシュメモリ３１２に直接接続することができる。理解されるように、いくつかの例では、該ＧＰＵが機械学習モデルの処理（ないし動作）を実行するのと同時に（ないし並行して）、ＣＰＵ３０２は、該機械学習モデルの処理（ないし動作）に関連する命令及びデータを取り出す（フェッチする）ことができる。したがって、いくつかの例では、機械学習モデルの実行を調整することは、ＧＰＵ３０６が該機械学習モデルの処理（ないし動作）を実行しているときに、ＣＰＵ３０２によって、該機械学習モデルに対応する命令及び／又はデータを取り出すことを含むことができる。
【００２９】
さらに、ＣＰＵ３０２及びＧＰＵ３０６は、メモリバス３１６及びメモリコントローラ３１８を介して不揮発性メモリ３１４に接続されている。理解されるように、メモリコントローラ３１８は、不揮発性メモリ３１４に対するデータの読み出し及び書き込みを容易にすることができる。この例では、メモリコントローラ３１８は別個の構成要素として示されているが、いくつかの例では、メモリコントローラ３１８を、不揮発性メモリモジュールに配置することができ、または、ＣＰＵ３０２及び／又はＧＰＵ３０６などの別の論理的構成要素に組み込むことができることが理解されよう。図示されているように、該不揮発性メモリは、ＣＰＵ３０２とＧＰＵ３０６の共用メモリ空間（共有メモリ空間ともいう）である機械学習データ構造３２０を含むことができる。図示されていないが、不揮発性メモリ３１４は、他のデータ構造を格納することができ、この場合、そのような他のデータ構造を、ＣＰＵ３０２とＧＰＵ３０６の共用メモリ空間とすることができ、及び／又は、そのような他のデータ構造を、ＣＰＵ３０２またはＧＰＵ３０６の専用のメモリ空間とすることができる。
【００３０】
さらに、いくつかの例では、ＣＰＵ３０２及びＧＰＵ３０６を、追加のメモリコントローラ３２４及びメモリバス３１６を介して、追加のメモリ資源３２２（たとえば、ＲＡＭ、ハードドライブなど）に接続することができる。理解されるように、追加のメモリ資源３２２は、ＣＰＵ３０２とＧＰＵ３０６の他の共用メモリ空間、並びにＣＰＵ３０２またはＧＰＵ３０６の専用のメモリ空間を有することができる。
【００３１】
理解されるように、ＣＰＵ３０２のコア３０４及びＧＰＵ３０６のグラフィックス処理コア３０８は、フェッチ−デコード−実行サイクルと呼ばれる場合もある命令サイクルを実施するための処理を実行することができる。本明細書で使用されている「命令を処理する」は、命令のフェッチ（取り出し）、デコード、及び実行を行うことを意味しうる。同様に、「処理（ないし動作）を実行する」は、命令のフェッチ、デコード、及び実行を行うことを意味しうる。たとえば、グラフィックス処理コア３０８が、データセットに対して、機械学習モデルに対応する命令をフェッチし、デコードし、及び実行しているときに、グラフィックス処理コア３０８を、該機械学習モデルの処理（ないし動作）を実行していると表現することができる。
【００３２】
図４〜図７は、例示的なプロセス及び方法を実行するために、例示的なシステム及び／又は該システムの処理資源によって実行することができる例示的な一連の処理（ないし動作）を示すフローチャートを提示している。いくつかの例では、それらのフローチャートに含まれている処理を、処理資源によって実行することができる命令の形態で、（図２の例示的な機械可読記憶媒体２０４などの）メモリ資源において具現化することができ、これによって、該システム（たとえば、図１Ａ及び図１Ｂのシステム１００、図２のシステム２００、図３のシステム３００）に、それらの命令に対応する処理を実行させることができる。さらに、図４〜図７に示されている例を、システム、及び／又は機械可読記憶媒体、及び／又はプロセス、及び／又は方法において具現化することができる。いくつかの例では、図４〜図７のフローチャートに開示されている例示的なプロセス及び／又は方法を、システムに実装されている１以上のエンジンによって実行することができる。
【００３３】
図４は、例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャート４００を提示している。図示されているように、該システムは、第１の処理資源によって（ないし該処理資源を用いて）、不揮発性メモリの共用メモリ空間に格納されている機械学習データ構造にアクセスすることができる（ブロック４０２）。さらに、該システムは、少なくとも１つのグラフィックス処理コアを備える第２の処理資源によって（ないし該処理資源を用いて）、該共用メモリ空間に格納されている該機械学習データ構造にアクセスすることができる（ブロック４０４）。該システムは、該第２の処理資源の少なくとも１つのグラフィックス処理コアによって（ないし該コアを用いて）、該機械学習データ構造に格納されているデータセットに対して、該機械学習データ構造に格納されている少なくとも１つの機械学習モデルの処理（ないし動作）を実行することができる（ブロック４０６）。
【００３４】
したがって、図４の例によって示されているように、該機械学習データ構造の共用メモリ空間は、該第１の処理資源と該第２の処理資源による該機械学習データ構造の同時（ないし並行）アクセスを容易にすることができる。さらに、該第２の処理資源の該少なくとも１つのグラフィックス処理コアを用いて、該機械学習モデルの処理（ないし動作）を実行することができ、これは、ＣＰＵのコアなどの汎用処理コアで該機械学習モデルの処理（ないし動作）を実行するのに比べて、改善された処理効率を容易にすることができる。さらに、該機械学習モデルに対する共用アクセスと組み合わせられた該不揮発性メモリへの機械学習モデルの格納（記憶）は、処理のために記憶場所に機械学習モデルを格納し及びそのような機械学習モデルを揮発性メモリにロードすることに比べて、処理効率の改善を容易にすることができる。
【００３５】
図５は、例示的なシステムによって実行することができる例示的な一連の処理を示すフローチャート４５０を提示している。この例では、該システムは、第１の処理資源によって（ないし該処理資源を用いて）、不揮発性メモリに格納されている機械学習データ構造に格納されているデータセットに対して実行するための一組の機械学習モデルを決定することができる（ブロック４５２）。いくつかの例では、不揮発性メモリの機械学習データ構造は、複数の機械学習モデルを格納することができる。それらの例では、該システムは、分析対象のデータセットに対して実行するための一組の少なくとも１つの機械学習モデルを決定することができる。たとえば、該システムは、該データセットのデータのタイプに少なくとも部分的に基づいて、実行するための一組の機械学習モデルを決定することができる。たとえば、該データセットがマルチメディアデータ（たとえば、ビデオ（映像）データ及びオーディオ（音声）データ）に対応する（ないし一致する）場合には、該システムは、特定の組の機械学習モデルを選択することができる。別の例として、該データセットがセンサーデータ（たとえば、測定された温度や測定された電磁放射強度など）に対応する（ないし一致する）場合には、該システムは、特定の組の機械学習モデルを選択することができる。理解されるように、該システムは、該システムが、機械学習分析のために受け取ることができるそれぞれのタイプのデータについて少なくとも１つの機械学習モデルを格納することができる。
【００３６】
データセットに対して、該システムは、機械学習モデルの該組のそれぞれの機械学習モデルについてそれぞれのモデル結果を生成するために、第２の処理資源の少なくとも１つのグラフィックス処理コアによって（ないし該コアを用いて）、機械学習データ構造に格納されているデータセットに対して、該組のそれぞれの機械学習モデルの処理（ないし動作）を実行することができる（ブロック４５４）。それらの例では、機械学習モデルの該組が２つ以上の機械学習モデルを含んでいる場合には、該第２の処理資源のグラフィックス処理コアは、該組の機械学習モデル間で実行を切り替えることができることが理解されよう。該組のそれぞれの機械学習モデルついてのそれぞれのモデル結果に基づいて、該システムは、該機械学習データ構造に格納されている少なくとも１つの機械学習モデルを更新することができる（ブロック４５６）。
【００３７】
したがって、図５に示されている例に類似するいくつかの例では、特定のデータセットの分析から生成されたモデル結果に基づいて、機械学習モデルを更新することができる。理解されるように、該特定のデータセットがトレーニングデータセットに対応する（ないし合致する）場合には、いくつかの機械学習モデルを調節し、これによって、そのように調節された機械学習モデルのパラメータをさらに改良して、該機械学習モデルの実行における正確さ及び効率の改善を容易にすることができる。
【００３８】
図６は、例示的なシステムによって実行することができる一連の処理を示すフローチャート５００を提示している。データセットに対して実行するための一組の機械学習モデル（ブロック５０２）について、該システムは、該データセットのそれぞれのデータサブセットに対するモデル結果を生成するために、第２の処理資源のグラフィックス処理コアによって（ないし該コアを用いて）、該それぞれのデータサブセットに対して該組のそれぞれの機械学習モデルを実行することができる（ブロック５０４）。該それぞれのデータサブセットに対して該それぞれの機械学習モデルを実行した後に、該システムは、第１の処理資源によって（ないし該処理資源を用いて）、実行されるべき追加の機械学習モデルが残っているか否かを判定することができる（ブロック５０６）。該システムは、該それぞれのデータサブセットに対して実行されるべき該組の追加の機械学習モデルがあると判定した（ブロック５０６の「Ｙ」分岐）ことに応答して、実行されるべき該組の次の機械学習モデルに切り替えて（ブロック５０８）、該それぞれの機械学習モデルとして該組の該次の機械学習モデルの実行を続ける（ブロック５０６）。
【００３９】
該システムが、該第１の処理資源によって（ないし該処理資源を用いて）、該組の全ての機械学習モデルが、該それぞれのデータサブセットに対して実行されたと判定すると（ブロック５０６の「Ｎ」分岐）、該システムは、該第１の処理資源によって（ないし該処理資源を用いて）、該組の機械学習モデルを用いて分析するためのデータサブセットが残っているか否かを判定する（ブロック５１０）。該データセットのデータのサブセットが残っている場合には、該システムは、該組の機械学習モデルを用いて該次のデータのサブセットを分析することに進む（ブロック５１２）。いくつかの例では、該システムは、該第１の処理資源によって（ないし該処理資源を用いて）それぞれのデータのサブセットについて生成されたそれぞれのモデル結果を処理することができる（ブロック５１４）。
【００４０】
これらの例では、該システムは、ＣＰＵなどの第１の処理資源、及び、グラフィックス処理コアを有する第２の処理資源を備えることができることが理解されよう。したがって、実行すべき一組の機械学習モデルについて、該第１の処理資源は、それぞれのデータサブセットに対する該組の実行を調整することができる。そのような例では、該第１の処理資源は、該第２の処理資源のグラフィックス処理コアによる（ないし該コアを用いた）該組のそれぞれの機械学習モデルの実行への切り替えを容易にすることができる。
【００４１】
たとえば、一組の機械学習モデルは、第１の機械学習モデル、第２の機械学習モデル、及び第３の機械学習モデルを含んでいる。この例では、データセットは、第１のデータサブセット、第２のデータサブセット、及び第３のデータサブセットを含むことができる。理解されるように、該データセット及び該組の機械学習モデルを、不揮発性メモリに格納されている機械学習データ構造に格納することができ、この場合、該機械学習データ構造は、第１の処理資源と第２の処理資源の共用メモリ空間である。該第２の処理資源は、複数のグラフィックス処理コアを含むことができる。この例では、該第１の処理資源は、該第２の処理資源のグラフィックス処理コアによる（ないし該コアを用いた）該第１の機械学習モデルの処理（ないし動作）の実行を調整することができる。該グラフィックス処理コアは、該第１のデータサブセットに対して該第１の機械学習モデルの処理（ないし動作）を実行して、該第１のデータサブセットについて第１のモデル結果を生成することができる。該第１のデータサブセットについての該第１のモデル結果を、該第２の処理資源によって、該機械学習データ構造に格納することができる。
【００４２】
該第１の機械学習モデルの実行が完了すると、該第１の処理資源は、該第２の機械学習モデルの実行に切り替えるように該グラフィックス処理コアを調整することができる。該第２の処理資源のグラフィックス処理コアは、該第１のデータサブセットに対して該第２の機械学習モデルの処理（ないし動作）を実行して、該第１のデータサブセットについて第２のモデル結果を生成することができる。該第１のデータサブセットについての該第２のモデル結果を、該第２の処理資源によって該機械学習データ構造に格納することができる。該第２の機械学習モデルの実行が完了すると、該第１の処理資源は、該第３の機械学習モデルへの実行の切り替えを調整する（たとえば、該第３の機械学習モデルの実行に切り替えるように調整する）ことができる。該第２の処理資源のグラフィックス処理コアは、該第１のデータサブセットに対して該第３の機械学習モデルの処理（ないし動作）を実行して、該第１のデータサブセットについて第３のモデル結果を生成することができる。該第１のデータサブセットについての該第３のモデル結果を、該第２の処理資源によって、該機械学習データ構造に格納することができる。
【００４３】
前記第１のデータサブセットに対する該第３の機械学習モデルの実行が完了すると、該第１の処理資源は、該第２のデータサブセットに対する該第１の機械学習モデルへの実行の切り替えを調整する（たとえば、該第１の機械学習モデルの実行に切り替えるように調整する）ことができる。該第２の処理資源のグラフィックス処理コアは、該第２のデータサブセットに対して該第１の機械学習モデルの処理（ないし動作）を実行して、該第２のデータサブセットについて第１のモデル結果を生成することができる。該第２のデータサブセットについての該第１のモデル結果を機械学習データ構造に格納することができる。理解されるように、該例に関して説明した処理を、残りの機械学習モデル及び該第３のデータサブセットに対して実行することができる。
【００４４】
該例は、機械学習モデル間の切り替えが、実行中に、それぞれの機械学習モデルをグラフィックス処理コアの専用のメモリ空間にロードすることを必要としうるシステムに比べて、機械学習構造の共用メモリ空間は、異なる機械学習モデルの実行間の切り替えにおけるローレイテンシー（短い待ち時間）を容易にすることを示している。さらに、不揮発性メモリは、（ストレージクラスメモリ（storage-class memory）などの）該不揮発性メモリにおける命令及びデータを直接処理するのを容易にするのに十分速い読み出し／書き込み速度を有することができるので、いくつかの例は、実行のためにそれぞれのモデルを揮発性メモリに対して順次ロード／アンロードしうるシステムに比べて、実行のための機械学習モデル間の切り替えに関連する時間を短くすることができる。さらに、不揮発性メモリは、電力サイクル全体にわたってデータを保持するので、機械学習モデル及び関連するパラメータを不揮発性メモリに格納することができる。
【００４５】
したがって、いくつかの例では、それぞれのモデルがデータ及び命令の直接処理をサポートしない読み出し／書き込み速度を有する記憶装置に格納されるシステムに比べて、機械学習モデルにアクセスして該モデルを実行する速さを速くすることができる。そのようなシステムでは、それぞれのモデルは、ＣＰＵによって直接アクセスできるＲＡＭなどのメモリにロードされ、該ＣＰＵによってアクセス可能なメモリにロードした後、該モデルを、グラフィックス処理コアがアクセスできる専用メモリにロードすることができる。したがって、理解されるように、高速アクセス不揮発性メモリ内の機械学習データ構造の直接かつ共有のアクセス可能性（アクセシビリティ）は、機械学習モデルの実行に関連するローディング時間及びアクセス時間を短くする。複数の機械学習モデルを切り替えることができる例では、高速アクセス不揮発性メモリ内の機械学習データ構造の直接かつ共有のアクセス可能性はさらに、機械学習モデル間の切り替えに関連する時間を短くすることができる。そのため、機械学習モデルの実行に関連する電力消費を低減することができる。
【００４６】
理解されるように、短くされた処理時間及び高められた処理効率は、機械学習モデルを用いたリアルタイムデータの処理を容易にすることができ、この場合、さらに、そのような処理から得られたモデル結果を同時に（ないし並行して）処理することができる。図７は、例示的なシステムによって実行することができる一連の処理を示すフローチャート５５０を提示している。この例では、該システムは、該システムの不揮発性メモリの機械学習データ構造にリアルタイムデータストリームを格納することができる（ブロック５５２）。この例では、該機械学習データ構造を、該第１の処理資源と第２の処理資源の共用メモリ空間とすることができ、ここで、該第２の処理資源は、少なくとも１つのグラフィックス処理コアを備えることができる。さらに、該第１の処理資源及び該第２の処理資源は、該不揮発性メモリに対して命令及びデータを直接処理することができる。たとえば、該不揮発性メモリを、ストレージクラスメモリの不揮発性メモリとすることができる。さらに、該第１の処理資源は、該システムが本明細書に記載されている追加の処理を実行するのと同時に（ないし並行して）、機械学習データ構造にリアルタイムデータストリームを格納し続けることが理解されよう。
【００４７】
この例では、該システムは、該第２の処理資源のグラフィックス処理コアによって（ないし該コアを用いて）、該データストリームのそれぞれのタイムスライスに対して、一組の機械学習モデルのうちの第１の機械学習モデルの処理（ないし動作）を実行して、該それぞれのタイムスライスついて第１のモデル結果を生成する（ブロック５５４）。上述したように、機械学習モデルの処理（ないし動作）を、該第１の処理資源によるリアルタイムデータストリームの格納と同時に（ないし並行して）、該第２の処理資源のグラフィックス処理コアによって実行することができる。該データストリームのそれぞれのタイムスライスに対する該第１の機械学習モデルの実行が完了すると、該システムは、該第１の処理資源によって（ないし該処理資源を用いて）、実行のための第２の機械学習モデルへの切り替えを調整する（たとえば、第２の機械学習モデルの実行に切り替えるように調整する）ことができる（ブロック５５６）。該システムは、該第２の処理資源のグラフィックス処理コアによって（ないし該コアを用いて）、該データストリームのそれぞれのタイムスライスに対して、該組のうちの第２の機械学習モデルの処理（ないし動作）を実行して、該それぞれのデータのタイムスライスについて第２のモデル結果を生成する（ブロック５５８）。
【００４８】
この例では、該システムは、該第１及び第２の機械学習モデルを用いたリアルタイムデータの処理を続行することができる。したがって、該データストリームのそれぞれのタイムスライスに対して、該第２の機械学習モデルの処理（ないし動作）を実行した後で、該システムは、次のそれぞれのタイムスライスに切り替えて（ブロック５６０）、該システムは、該データストリームの該次のそれぞれのタイムスライスに対してブロック５５４〜５５８に関して説明した処理を繰り返す。
【００４９】
したがって、この例で説明されているように、該第１の処理資源及び該第２の処理資源は、機械学習データ構造の共用メモリ空間に同時にアクセスすることができる。説明されているように、該第１の処理資源は、該第２の処理資源が、一組の機械学習モデルを用いてリアルタイムデータストリームを処理するのと同時に（ないし並行して）、該リアルタイムデータストリームのデータを機械学習データ構造に書き込むことができる。
【００５０】
図７に示されている例に類似の例では、該データストリームのタイムスライスに対して生成されたモデル結果に少なくとも部分的に基づいて、該システムによって追加の処理を実行できることが理解されよう。たとえば、機械学習モデル（該モデルを用いてリアルタイムデータストリームを処理することができる）を、リアルタイムビデオストリームにおける物体認識に対応付けることができる。モデル結果に基づくそのような例では、該システムは、該モデル結果に少なくとも部分的に基づいて該リアルタイムビデオストリームを出力することができる。たとえば、該機械学習モデルをリアルタイムビデオストリームの顔認識及び／又は分析に対応付けることができる。そのような例では、該システムは、出力中に顔を強調することができるように、モデル結果に基づいて、出力中に該リアルタイムビデオストリームを（部分的に）変更することができる。別の例では、該システムは、モデル結果に基づいて、入力周辺機器を制御することができる。たとえば、該システムは、該リアルタイムビデオストリーム内の識別された物体の動きに少なくとも部分的に基づいて、接続されているビデオキャプチャ装置を動かすことができる。別の例として、該システムを可動装置とすることができ、該可動装置は、モデル結果に少なくとも部分的に基づいて、（該装置の動きを制御するために）モーターを作動させることができる。
【００５１】
したがって、本明細書に記載されているシステム、プロセス、方法、及び／又は非一時的な機械可読記憶媒体に格納されている実行可能命令として実現されるコンピュータプログラム製品の例は、機械学習モデルを用いたデータの処理を容易にすることができる。本明細書に記載されている例では、機械学習データ構造を不揮発性メモリ内に実施することができ、この場合、該不揮発性メモリは、格納している命令及びデータの直接処理をサポートするアクセス速度を有することができ、該機械学習データ構造を、（ＣＰＵなどの）第１の処理資源と（ＧＰＵなどの）少なくとも１つのグラフィックス処理コアを有する第２の処理資源の共用メモリ空間とすることができる。
【００５２】
機械学習モデルが、不揮発性メモリ内の共用メモリ空間に格納されて、該共用メモリ空間において直接実行される例では、該機械学習モデルのロード及び切り替えの実行に関連する処理の非効率性を低減することができる。さらに、グラフィックス処理コアによる、該不揮発性メモリ内での機械学習モデルの直接実行は、汎用処理コアによる機械学習モデルの実行に比べて、機械学習モデルの実行に関連する処理速度を向上させることができる。さらに、共用メモリ空間における機械学習モデルの直接実行は、処理時間を短くできるように、異なる処理資源（たとえば、第１の処理資源と第２の処理資源）間の処理のコヒーレンス（一貫性）を改善することができる。さらに、比較的低電力の処理システムでは、不揮発性メモリの共用メモリ空間内の機械学習モデルを用いたデータの直接処理は、機械学習モデルが、記憶装置からメインメモリ（たとえば揮発性ＲＡＭ）にロードされ、その後、該メインメモリから専用メモリにロードされるシステムと比べて、電力消費を低減することができる。
【００５３】
さらに、種々の例が本明細書に記載されているが、本明細書において考慮されている種々の例に対して、要素及び／又は要素の組み合わせを、組み合わせることができ及び／又は除去することができる。たとえば、図４〜図７のフローチャートにおいて本明細書で提供されている例示的な処理を、順次に、または同時に（ないし並行して）、または異なる順番で実行することができる。さらに、それらのフローチャートのいくつかの例示的な処理を他のフローチャートに加えることができ、及び／又は、いくつかの例示的な処理をフローチャートから除去することができる。さらに、いくつかの例では、図１Ａ〜図３の例示的なシステムの種々の構成要素を除去することができ、及び／又は、他の構成要素を加えることができる。同様に、いくつかの例では、図２の例示的なメモリ及び／又は機械可読記憶媒体の種々の命令を除去することができ、及び／又は（図４〜図７の例示的な処理に対応する命令などの）他の命令を加えることができる。
【００５４】
上記の説明は、記載されている原理の例を例示して説明するために提示されたものである。この説明は、例を網羅することも、開示された形態そのものにそれらの例を限定することも意図していない。この説明に照らして、多くの修正及び変形が可能である。
【図１Ａ】
2019525277.tif 000003
【図１Ｂ】
2019525277.tif 000004
【図２】
2019525277.tif 000005
【図３】
2019525277.tif 000006
【図４】
2019525277.tif 000007
【図５】
2019525277.tif 000008
【図６】
2019525277.tif 000009
【図７】
2019525277.tif 000010
【国際調査報告】
2019525277.tif 000011
2019525277.tif 000012