(57)【要約】【課題】多重経路ニューラルネットワークの多様な経路における多様なレイヤにコンピューティングリソースを割り当てるためのシステム及び方法を提供する。【解決手段】本発明の多重経路ニューラルネットワークアナライザは、多重経路ニューラルネットワークを受信するインタフェースと、多重経路ニューラルネットワークを実行するコンピューティングリソースの第１割り当てが行われる多重経路ニューラルネットワークを介する臨界経路の１つ以上のレイヤを含む多重経路ニューラルネットワークを生成する処理装置と、を備え、臨界経路は多重経路ニューラルネットワークの処理量を制限し、コンピューティングリソースの第１割り当ては多重経路ニューラルネットワークの実行時間をコンピューティングリソースの第２割り当ての基準実行時間未満に減少させ、臨界経路の第１レイヤに対するコンピューティングリソースの第１割り当ては臨界経路の第１レイヤに対するコンピューティングリソースの第２割り当てと相違する。【選択図】図１
2020119564.tif 000002
【特許請求の範囲】
【請求項１】
多重経路ニューラルネットワークを介する２つ以上の経路と、
前記多重経路ニューラルネットワークの処理量を制限する前記多重経路ニューラルネットワークを介する臨界経路を含む１つ以上のレイヤを含む第１経路と、
前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第１割り当てが行われる前記臨界経路の第１レイヤと、
前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第２割り当ての基準実行時間よりも短く減少させ、前記第１レイヤに対する前記コンピューティングリソースの第２割り当てと相違する前記第１レイヤに対する前記コンピューティングリソースの第１割り当てと、を有することを特徴とする多重経路ニューラルネットワーク。
【請求項２】
前記多重経路ニューラルネットワークの実行前に、前記第１レイヤに対する前記コンピューティングリソースの第１割り当てを行うことを特徴とする請求項１に記載の多重経路ニューラルネットワーク。
【請求項３】
前記多重経路ニューラルネットワークの実行中に、前記第１レイヤに対する前記コンピューティングリソースの第１割り当てを行うことを特徴とする請求項１に記載の多重経路ニューラルネットワーク。
【請求項４】
前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースは、多数のコンピューティングユニットコア、メモリサイズ、及びメモリ帯域幅を含むことを特徴とする請求項１に記載の多重経路ニューラルネットワーク。
【請求項５】
前記臨界経路は、コンボリューション関数を提供するレイヤを含むことを特徴とする請求項１に記載の多重経路ニューラルネットワーク。
【請求項６】
多重経路ニューラルネットワークを介する２つ以上の経路を含む多重経路ニューラルネットワークに、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースを割り当てるコンピューティングリソースの第１コンピューティングリソース割り当てに基づいて、前記多重経路ニューラルネットワークの基準実行時間を決定する段階と、
前記２つ以上の経路に対して１つ以上であると共に、各々が前記第１コンピューティングリソース割り当てと相違する第２コンピューティングリソース割り当てに対して、前記多重経路ニューラルネットワークを介する２つ以上の経路の実行時間を繰り返し決定する段階と、
前記多重経路ニューラルネットワークの全体の基準実行時間よりも短い前記多重経路ニューラルネットワークの全体の実行時間を提供する第１経路の第１レイヤに対する第２コンピューティングリソース割り当てを識別する段階と、を有することを特徴とする多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項７】
前記多重経路ニューラルネットワークの全体の基準実行時間は、前記多重経路ニューラルネットワークの処理量を制限する前記多重経路ニューラルネットワークの臨界回路を介する実行時間に対応することを特徴とする請求項６に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項８】
前記多重経路ニューラルネットワークの全体の基準実行時間よりも短い前記多重経路ニューラルネットワークの全体の実行時間を提供するように識別された前記第１経路の前記第１レイヤに対する前記第２コンピューティングリソース割り当てを行う段階を更に含むことを特徴とする請求項６に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項９】
前記多重経路ニューラルネットワークの実行前に、識別された前記第１経路の前記第１レイヤに対する前記２コンピューティングリソース割り当てを行う段階を更に含むことを特徴とする請求項８に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項１０】
前記多重経路ニューラルネットワークの実行中に、識別された前記第１経路の前記第１レイヤに対する前記２コンピューティングリソース割り当てを行う段階を更に含むことを特徴とする請求項８に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項１１】
前記第２コンピューティングリソース割り当てを識別する段階は、ユーザから前記第２コンピューティングリソース割り当ての選択を受信する段階を更に含むことを特徴とする請求項６に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項１２】
前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースは、多数のコンピューティングユニットコア、メモリサイズ、及びメモリ帯域幅を含むことを特徴とする請求項６に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項１３】
前記２つ以上の経路のうちの少なくとも１つは、コンボリューション関数を提供するレイヤを含むことを特徴とする請求項６に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
【請求項１４】
多重経路ニューラルネットワークを介する２つ以上の経路と１つ以上のレイヤを含む２つ以上の経路の第１経路とを含む多重経路ニューラルネットワークを受信するインタフェースと、
前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第１割り当てが行われる前記多重経路ニューラルネットワークを介する臨界経路の１つ以上のレイヤを含む前記多重経路ニューラルネットワークを生成する処理装置と、を備え、
前記臨界経路は、前記多重経路ニューラルネットワークの処理量を制限し、
前記コンピューティングリソースの第１割り当ては、前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第２割り当ての基準実行時間未満に減少させ、
前記臨界経路の第１レイヤに対する前記コンピューティングリソースの第１割り当ては、前記臨界経路の第１レイヤに対する前記コンピューティングリソースの第２割り当てと相違することを特徴とする多重経路ニューラルネットワークアナライザ。
【請求項１５】
前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースは、多数のコンピューティングユニットコア、メモリサイズ、及びメモリ帯域幅を含むことを特徴とする請求項１４に記載の多重経路ニューラルネットワークアナライザ。
【請求項１６】
前記多重経路ニューラルネットワークアナライザは、
前記多重経路ニューラルネットワークを実行するための前記コンピューティングリソースの第２割り当てに基づいて、前記多重経路ニューラルネットワークを介する２つ以上の経路の基準実行時間を決定し、
前記２つ以上の経路における少なくとも１つのコンピューティングリソースの第３割り当てに対して、前記多重経路ニューラルネットワークを介する２つ以上の実行時間を繰り返し決定し、
前記多重経路ニューラルネットワークの基準実行時間よりも短い多重経路ニューラルネットワークの実行時間を提供するコンピューティングリソースの第３割り当てを識別し、
前記コンピューティングリソースの第３割り当ては、各々前記コンピューティングリソースの第２割り当てと相違することを特徴とする請求項１４に記載の多重経路ニューラルネットワークアナライザ。
【請求項１７】
前記多重経路ニューラルネットワークの前記基準実行時間は、前記臨界経路における前記コンピューティングリソースの第２割り当てのための前記多重経路ニューラルネットワークの臨界経路を介する実行時間に対応することを特徴とする請求項１６に記載の多重経路ニューラルネットワークアナライザ。
【請求項１８】
前記処理装置は、前記臨界経路における前記コンピューティングリソースの第３割り当てが前記臨界経路における前記コンピューティングリソースの第１割り当てになるように更に割り当てることを特徴とする請求項１６に記載の多重経路ニューラルネットワークアナライザ。
【請求項１９】
前記処理装置は、前記多重経路ニューラルネットワークの実行前に、前記臨界経路における前記コンピューティングリソースの第１割り当てを行うことを特徴とする請求項１８に記載の多重経路ニューラルネットワークアナライザ。
【請求項２０】
前記処理装置は、前記多重経路ニューラルネットワークの実行中に、前記臨界経路における前記コンピューティングリソースの第１割り当てを行うことを特徴とする請求項１８に記載の多重経路ニューラルネットワークアナライザ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークに関し、より詳細には、ＧＰＵ演算の同時実行のためのプラットフォームとして、多重経路ニューラルネットワークの多様な経路における多様なレイヤにコンピューティングリソースを割り当てるための多重経路ニューラルネットワークシステム及びその方法並びに多重経路ニューラルネットワークアナライザに関する。
【背景技術】
【０００２】
通常のグラフィック処理装置（ＧＰＵ）プラットフォームでは、ＧＰＵ演算を同時に実行することができない。通常のＧＰＵで複数の演算を同時に起動させるためには、各々の演算を別途のプログラム、即ちＣＵＤＡプログラミングモデルの別途のストリームに割り当てなければならない。しかし、殆どの一般的なＧＰＵカーネルにおいて、２つ以上のＧＰＵカーネルを同時に実行することは略不可能である。一般的なカーネルは、（レジスタ及び共有メモリを含む）全てのＧＰＵコアリソースを占め、ＧＰＵスケジューラが同一コア上の他のカーネルからブロックを実行することを不可能にする。従来のＧＰＵプラットフォームでは、スケジューリングのために多くのブロックを用いるため、他のＧＰＵ演算の同時実行は、ブロック数が少ない場合にのみ可能である。殆どのＧＰＵカーネルには、一般的に、使用可能な全てのＧＰＵコアを占めるのに十分な数のブロックがあるため、最初のカーネルが完了するまで他のＧＰＵカーネルの実行が延期され、２つの演算が順次行われるという結果をもたらす。従って、従来のＧＰＵプラットフォームは、個別のレイヤ（カーネル）のために装置（例：ＧＰＵ）コアを１００％活用することにより、独立したカーネルの同時実行を防止する。
【０００３】
従来のＧＰＵプラットフォームに関する他の弱点は、非効率的なリソースの活用である。ＧＰＵカーネルは特定の入力及びＧＰＵマイクロアーキテクチャの実行に合わせて最適化することができるが、計算効率性及びＤＲＡＭ活用度は一部の入力における多重ＧＰＵアルゴリズムに対して十分最適化されない。例えば、一部のコンボリューション（ｃｏｎｖｏｌｕｔｉｏｎ）（主にＧＥＭＭベース）の実行時間は、制限された数のコアで飽和し、更なるコアでコンボリューションを実行すると、コアの活用度が低下するという結果が発生する。複数の演算を同時に実行することにより、アルゴリズム、入力データ、データレイアウト、及びマイクロアーキテクチャを考慮して、１つのＧＰＵ演算において活用率の低いリソースが他のＧＰＵ演算に使用される。
【０００４】
従来のＧＰＵプラットフォームに関するまた別の弱点は、既存のＧＰＵプラットフォームが、ＧＰＵ装置が演算を受信する方式順に演算を順次行い、先に要請された演算の待ち時間を減らすために優先順位が決定されることである。このようなスケジューリング方法は、多数のアプリケーションにおけるＧＰＵ演算の平均待ち時間を増加させる。例えば、完了するのに相当な時間がかかるＧＰＵ演算が、完了するのにそれほど時間がかからない他のＧＰＵ演算が到着する前にＧＰＵ装置に到着する場合、２番目のＧＰＵ演算の待ち時間（又は応答時間）は不必要に長くなる。
【０００５】
従来のＧＰＵプラットフォームに関するまた別の弱点は、従来のＧＰＵプラットフォームが多重経路を有する作業に最適化されていないということである。ＧＰＵ作業は、方向性非循環グラフ（ＤＡＧ：Ｄｉｒｅｃｔｅｄ  Ａｃｙｃｌｉｃ  Ｇｒａｐｈ）を形成し、ここで、各ノードは演算を表し、ノードＡからノードＢへの方向性エッジは、ノードＡとＢとの間の入出力依存性を表す。即ち、ノードＢは、ノードＡの後に実行されなければならない。最近、多重経路の計算グラフを有するＧＰＵ作業が一般化されている。多重経路作業は、単一のユーザ、ＧＰＵプラットフォームを共有する複数のユーザ、又は複数経路を有する単一のＧＰＵアプリケーションにより起動された多様なＧＰＵアプリケーションから発生する。多重経路ニューラルネットワークは、多重経路を有する単一のＧＰＵアプリケーションの一例である。
【０００６】
多重経路ニューラルネットワークは、現実の機械学習（ＭＬ）問題をより良く表現することで、機械学習コミュニティで大きな注目を集めている。一般的に、ニューラルネットワークの経路と並列に、ニューラルネットワーク全体の処理量を制限する臨界経路と指称される１つの経路がある。ニューラルネットワークを介するシグナルフローは、一連の従属レイヤを介するシグナルフローとして特徴付けられる。通常、ニューラルネットワークが実行される際、特定レイヤへの入力が順序において直前のレイヤに依存するようにレイヤが順次繰り返し実行される。
【０００７】
従来のディープラーニングのフレームワークは、多様な経路間又は多様な経路を実行するカーネル間のリソース割り当てに基づいて多重経路ニューラルネットワークの実行を最適化するように構成されていない。カーネルの実行に必要なワークスペースメモリの総量がニューラルネットワークを実行する装置で使用可能なメモリよりも大きい場合、非効率的なメモリの割り当てにより、多重経路ニューラルネットワークのカーネルが同時に実行されない可能性がある。多重経路ニューラルネットワークの臨界経路における非効率的なコンピューティングリソースの割り当ては、ニューラルネットワーク全体の処理量に悪影響を与える。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２０１４／０４０００３号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、コンピューティングリソースを割り当てるための多重経路ニューラルネットワークシステム及びそのレイヤにリソースを割り当てる方法並びに多重経路ニューラルネットワークアナライザを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた本発明の一態様による多重経路ニューラルネットワークは、多重経路ニューラルネットワークを介する２つ以上の経路と、前記多重経路ニューラルネットワークの処理量を制限する前記多重経路ニューラルネットワークを介する臨界経路を含む１つ以上のレイヤを含む第１経路と、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第１割り当てが行われる前記臨界経路の第１レイヤと、前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第２割り当ての基準実行時間よりも短く減少させ、前記第１レイヤに対する前記コンピューティングリソースの第２割り当てと相違する前記コンピューティングリソースの第１割り当てと、を有する。
一実施形態において、多重経路ニューラルネットワークの実行前に、第１レイヤに対するコンピューティングリソースの第１割り当てを行う。
他の実施形態において、多重経路ニューラルネットワークの実行中に、第１レイヤに対するコンピューティングリソースの第１割り当てを行う。
【００１１】
上記目的を達成するためになされた本発明の一態様による多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法は、多重経路ニューラルネットワークを介する２つ以上の経路を含む多重経路ニューラルネットワークに、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースを割り当てるコンピューティングリソースの第１コンピューティングリソース割り当てに基づいて、前記多重経路ニューラルネットワークの基準実行時間を決定する段階と、前記２つ以上の経路に対して１つ以上であると共に、各々が前記第１コンピューティングリソース割り当てと相違する第２コンピューティングリソース割り当てに対して、前記多重経路ニューラルネットワークを介する２つ以上の経路の実行時間を繰り返し決定する段階と、前記多重経路ニューラルネットワークの全体の基準実行時間よりも短い前記多重経路ニューラルネットワークの全体の実行時間を提供する第１経路の第１レイヤに対する第２コンピューティングリソース割り当てを識別する段階と、を有する。
【００１２】
上記目的を達成するためになされた本発明の一態様による多重経路ニューラルネットワークアナライザは、多重経路ニューラルネットワークを介する２つ以上の経路と１つ以上のレイヤを含む２つ以上の経路の第１経路とを含む前記多重経路ニューラルネットワークを受信するインタフェースと、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第１割り当てが行われる前記多重経路ニューラルネットワークを介する臨界経路の１つ以上のレイヤを含む多重経路ニューラルネットワークを生成する処理装置と、を備え、前記臨界経路は、前記多重経路ニューラルネットワークの処理量を制限し、前記コンピューティングリソースの第１割り当ては、前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第２割り当ての基準実行時間未満に減少させる、前記臨界経路の第１レイヤに対する前記コンピューティングリソースの第１割り当ては、前記臨界経路の第１レイヤに対するコンピューティングリソースの第２割り当てと相違する。
【発明の効果】
【００１３】
本発明によれば、多重経路ニューラルネットワークシステム及びそのレイヤにリソースを割り当てる方法を通じて、コンピューティングリソースを割り当てることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による多重経路ニューラルネットワークの多様な経路における多様なレイヤへのコンピューティングリソースの割り当て又は分割を最適化する多重経路ニューラルネットワークアナライザの機能ブロック図である。
【図２】（Ａ）は本発明の一実施形態による修正カーネル起動関数を用いて多数のＧＰＵ演算が同時にスケジューリングされた４つのコアを有するＧＰＵなどのプロセッシングユニットを示す図であり、（Ｂ）は修正されたカーネル起動関数を用いて第２カーネルが起動した後のＧＰＵを示す図である。
【図３】一実施形態による入力と意思決定モジュールとの間に２つの経路を有する多重経路ニューラルネットワークを示す図である。
【図４】（Ａ）は一実施形態による多重経路ニューラルネットワークを介する２つの経路の一部の相対的な基準実行時間及びシーケンスを示す図であり、（Ｂ）はコンボリューションレイヤに４．５ＧＢを割り当てた２つの経路における相対的な実行時間及びシーケンスを示す図であり、（Ｃ）はコンボリューションレイヤに４．０ＧＢのメモリを割り当てた２つの経路における相対的な実行時間及びシーケンスを示す図である。
【図５】本発明の一実施形態によるレイヤのウィンドウベースのリソース割り当て分析を示す図である。
【図６】図１の多重経路ニューラルネットワークアナライザの具現に用いられるデータ処理システムの例示的なアーキテクチャのブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
本発明は、単一のＧＰＵ装置で同時に実行されるカーネルの間にコンピューティングリソースを効率的に割り当てるか又は分割するためのシステム及び方法に関する。本発明のシステムは、コアの割り当て及び／又はコアの再分配により、単一のＧＰＵ装置で多数のＧＰＵ演算の並列及び／又は同時実行をスケジューリングする。システムに対するアプリケーション・プログラミング・インターフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を通じて、ユーザは、同時に実行するＧＰＵ演算を選択し、同時演算のためのコンピューティングリソースを割り当てることが可能である。
【００１６】
本発明のシステム及び方法は、多重経路ニューラルネットワークの性能を最適化するためにコンピューティングリソースを割り当てるのに用いられる。一実施形態において、多重経路ニューラルネットワークの多様な経路における多様なレイヤに対して同時実行が可能である。多重経路ニューラルネットワークアプリケーションの自動最適化は、因果関係リソースプロファイリング技術（ｃａｕｓａｌ  ｒｅｓｏｕｒｃｅ  ｐｒｏｆｉｌｉｎｇ  ｔｅｃｈｎｉｑｕｅ）に基づいて提供される。一実施形態において、因果関係リソースプロファイリング技術は、多重経路ニューラルネットワークの自動性能最適化を提供する。最適なリソースの割り当ては、コンピューティングリソースと、コンピューティングリソースの割り当てレベルに影響されるニューラルネットワークにおけるレイヤの実行時間との関係に基づいて識別される。
【００１７】
また、因果関係リソースプロファイリングは、多重経路ニューラルネットワークを介する臨界経路、及びコンピューティングリソースとコンピューティングリソースに関する実行時間との関係に基づいている。コストモデルテンプレートは、性能分析のために用いられ、最適なリソースの割り当てを決定するための分析の複雑さを減少させるために、１つ以上の発見法（ｈｅｕｒｉｓｔｉｃｓ）が用いられる。更に、多重経路ニューラルネットワークアプリケーションの実行のスケジューリングは、因果関係リソースプロファイリング技術を用いて最適化される。
【００１８】
本発明のリソース割り当ての技術は、ニューラルネットワーク全体の性能結果を向上させるために、多重経路ニューラルネットワークのレイヤとの間にコンピューティングリソースを割り当てることが可能である。多重経路ニューラルネットワークのレイヤに対するリソース活用率の修正に基づいてネットワークの性能が分析され、性能分析が特定のコンピューティングリソース割り当てに基づいて性能改善を示す場合、個別のレイヤのリソース活用率がアップデートされるか又は再構成される。
【００１９】
本発明は、コンピューティングリソースをカーネルの間に分割するプログラミングインタフェースを提供する。同時実行のためのプログラマーへの支援が制限され、カーネルのＧＰＵコアの数を決定するために実行されるスレッド（ｔｈｒｅａｄ）ブロックの数に依存する従来のＧＰＵプラットフォームと異なり、本発明は、同時に実行されるＧＰＵ演算及び同時演算のためのリソース割り当てをプログラマーが定義するプログラミングインタフェースを提供する。
【００２０】
本発明のシステム及び方法により、静的リソースの割り当て及び動的リソースの割り当てを支援する。静的割り当ての場合、アプリケーションの実行前にリソースを個別のレイヤに割り当てる。動的割り当ての場合、トポロジー（ｔｏｐｏｌｏｇｙ）、入力、バッチサイズなどの変化のようなネットワークの変化に基づく柔軟性を提供するために、実行時間（ｒｕｎｔｉｍｅ）中にリソースを割り当てる。
【００２１】
図１は、本発明の一実施形態による多重経路ニューラルネットワークの多様な経路における多様なレイヤへのコンピューティングリソースの割り当て又は分割を最適化する多重経路ニューラルネットワークアナライザ１００の機能ブロック図である。一実施形態において、多重経路ニューラルネットワークアナライザ１００は、好適なソフトウェアを実行するデータ処理システムとして実施される。多重経路ニューラルネットワークアナライザ１００は、多重経路ニューラルネットワークアナライザ１００に利用することが可能なコンピューティングリソースを用いて、実行のための入力として多重経路ニューラルネットワーク１０１を受信する。多重経路ニューラルネットワーク１０１は、完全精度の学習済み（ｆｕｌｌ−ｐｒｅｃｉｓｉｏｎ  ｔｒａｉｎｅｄ）ニューラルネットワークである。代案として、多重経路ニューラルネットワーク１０１は、学習中のニューラルネットワークである。多重経路ニューラルネットワークアナライザ１００は、因果関係リソースプロファイリングを用いて、多重経路ニューラルネットワーク１０１の多様な経路における多様なレイヤを分析し、多重経路ニューラルネットワーク１０１が最小時間内に実行又は作動するように、コンピューティングリソースの最適な割り当て又は分割を決定する。
【００２２】
一実施形態において、多重経路ニューラルネットワークアナライザ１００は、多重経路ニューラルネットワークの実行前に、多重経路ニューラルネットワークの１つ以上の経路における１つ以上のレイヤに対して、コンピューティングリソースの最適化された割り当てを生成する。ニューラルネットワークの実行の際、コンピューティングリソースの最適化された割り当てを用いる。他の実施形態において、多重経路ニューラルネットワークアナライザ１００は、ニューラルネットワークがコンピューティング装置でインスタンス化されるとき、ニューラルネットワークが最適に構成されるように、ニューラルネットワークに関する多重経路ニューラルネットワークの１つ以上の経路における１つ以上のレイヤに対してコンピューティングリソースを定義するパラメータを最適化する。また別の実施形態において、多重経路ニューラルネットワークアナライザ１００は、多重経路ニューラルネットワークの実行中、多重経路ニューラルネットワークの１つ以上の経路における１つ以上のレイヤに対してコンピューティングリソースの割り当てを動的にアップデートし、トポロジー、入力、バッチサイズなどの変化のようなネットワークの変化に基づく柔軟性を提供する。
【００２３】
初めに、図１の１０２を参照すると、多重経路ニューラルネットワークアナライザ１００は、順次依存する１つ以上のレイヤを有する多重経路ニューラルネットワーク１０１の多様な経路に、対応するストリームを割り当てる。図１の１０３において、多重経路ニューラルネットワークアナライザ１００は、基準リソースの割り当て状態を生成する。図５を参照して後述するように、コンピューティングリソースの多様な割り当てに対して因果関係リソースプロファイリングを行う複雑さを減少させるために、ウィンドウ、グルーピング、又はサイズが更に生成される。図１の１０４において、多重経路ニューラルネットワークアナライザ１００は、最適なコンピューティングリソースの割り当てを決定するために、多様なコンピューティングリソースの割り当ての性能分析を行う。装置リソース制約１０５は、利用可能なコンピューティングリソースに制約及び／又は境界をおくユーザ入力から受信される。装置リソース制約１０５は、多重経路ニューラルネットワーク１０１を受信する前にユーザから受信される。性能分析は、１０３で生成されたウィンドウ、グルーピング、又はサイズを用いる。分析される多様なコンピューティングリソースの割り当て個数は、最適な性能ソリューションを提供しない可能性があるコンピューティングリソースの割り当てを枝刈り（ｐｒｕｎｉｎｇ）又は廃棄することにより、１０６で減少する。性能分析中に、レイヤリソースのコストモデルテンプレート１０７が用いられる。
【００２４】
スケジューラ１０８は、分析される多様なレイヤと経路の一部、及び／又は分析される多重経路ニューラルネットワーク１０１の処理量全体の性能をシミュレーションする。図１の１０９において、より良いコンピューティングリソースの割り当てが多様なレイヤ及び／又は経路に対して決定され、より良いスケジューリングの割り当てが多重経路ニューラルネットワーク１０１に対して決定されることにより、多重経路ニューラルネットワークアナライザ１００は、図１の１０３において、より良い割り当てによってレイヤの基準リソース割り当てをアップデートし、より良いスケジューリング割り当てが多重経路ニューラルネットワーク１０１の実行の際に用いられる。
【００２５】
演算において、多重経路ニューラルネットワークアナライザ１００は、多重経路ニューラルネットワークの実行に利用可能なコンピューティングリソースに対する制約をユーザが選択的に設定することを可能にするＡＰＩを介して装置リソース制約１０５を受信する。一実施形態において、プロセッシングユニット又はコンピューティングユニットの最小コア数及び／又は最大コア数は、プロセッシングユニット上で多重経路ニューラルネットワークの経路を実行する１つ以上のカーネルに対してユーザが選択する。下記表１は、本発明の一実施形態において、カーネルに用いられる最小コア数及び最大コア数などのリソース制限を提供し、ＯｐｅｎＣＬプログラミングフレームワークで用いられる修正カーネル起動関数を示す。カーネル起動コマンドｃｌＥｎｑｕｅｕｅＮＤＲａｎｇｅＫｅｒｎｅｌは、例えば、引数「ｍｉｎ＿ｃｏｒｅｓ」、引数「ｍａｘ＿ｃｏｒｅｓ」という２つの更なる引数を含むように修正される。特に、引数「ｃｏｎｓｔ  ｃｌ＿ｕｉｎｔ  ｍｉｎ＿ｃｏｒｅｓ」及び引数「ｃｏｎｓｔ  ｃｌ＿ｕｉｎｔ  ｍａｘ＿ｃｏｒｅｓ」は、ＯｐｅｎＣＬフレームワークのカーネル起動コマンドｃｌＥｎｑｕｅｕｅＮＤＲａｎｇｅＫｅｒｎｅｌに追加される。カーネル起動コマンドｃｌＥｎｑｕｅｕｅＮＤＲａｎｇｅＫｅｒｎｅｌの引数リストの最後に２つの更なる変数設定引数を示す。
【００２６】
引数「ｍｉｎ＿ｃｏｒｅｓ」は、他のカーネルと共に実行される際にカーネルに活用されるプロセッシングユニットの最小コア数を定義するのに用いられ、引数「ｍａｘ＿ｃｏｒｅｓ」は、単独で実行される際にカーネルに活用されるプロセッシングユニットの最大コア数を定義するのに用いられる。ユーザは、カーネルのスレッドブロック数に拘らず、カーネルに活用されるコアの数を定義する。
【００２７】
＜修正カーネル起動関数＞
【表１】
2020119564.tif 000003
【００２８】
図２（Ａ）は、本発明の一実施形態による修正カーネル起動関数を用いて多数のＧＰＵ演算が同時にスケジューリングされた４つのコア（コア１〜コア４）を有するＧＰＵなどのプロセッシングユニットを示す図であり、図２（Ｂ）は修正されたカーネル起動関数を用いて第２カーネルが起動した後のＧＰＵを示す図である。先ず、修正カーネル起動関数は、カーネル２０１の最小／最大＿コア引数を２／３に設定するのに用いられる。一実施形態において、図２（Ａ）のように、カーネル２０１は、コア１〜コア３に分配され、且つＧＰＵコア１〜コア４で実行される１２個のスレッドブロックを有する。
【００２９】
第２カーネル２０２は、最小／最大＿コア引数を２／４に設定するように構成される。図２Ｂのように、カーネル２０２がＧＰＵ装置で起動する際、ＧＰＵスケジューラ（図示せず）はスレッドブロックの移行を行い、コア３に予め割り当てられたカーネル２０１のスレッドブロックは、先に実行されたカーネル２０１及び新たに実行される第２カーネル２０２の両方の最小／最大＿コア引数に基づいて、コア１及びコア２に移行する。この場合、２つのカーネルの最小コア引数は何れも２であるため、カーネル２０１及び第２カーネル２０２の各々を実行させるために、少なくとも２つずつのＧＰＵコアを設定する。それぞれ異なるコア１〜コア４は、それぞれ異なる数のスレッドブロックを実行する。更に、特定のコアは、図２（Ａ）又は図２（Ｂ）に示しているものと異なるように割り当てられる。
【００３０】
ユーザによって入力された装置リソース制約１０５に基づいて、多重経路ニューラルネットワークアナライザ１００は、因果関係リソースプロファイリングを用いて、多重経路ニューラルネットワーク１０１を実行するための最適なコンピューティングリソースの割り当て又は分割を決定する。一実施形態において、因果関係リソースプロファイリングは、コンピューティングリソースの割り当ての変化が、例えば臨界経路を介する実行時間にどのような影響を与えるかを識別するために、多重経路ニューラルネットワーク１０１を介する臨界経路で行われる。また、因果関係リソースプロファイリングは、多重経路ニューラルネットワーク１０１の多様な経路におけるコンピューティングリソースの割り当ての変化が多重経路ニューラルネットワーク１０１の全体の実行時間にどのような影響を与えるか識別するのに用いられる。
【００３１】
図３は、一実施形態による入力３０３と意思決定モジュール３０４との間に２つの経路（３０１、３０２）を有する多重経路ニューラルネットワーク３００を示す図である。第１経路３０１は順次依存する５つのレイヤを含み、第２経路３０２は順次依存する４つのレイヤを含む。例えば、図３に示すニューラルネットワークの場合、第２経路３０２は、多重経路ニューラルネットワーク３００の全体の処理量を制限する多重経路ニューラルネットワーク３００を介する臨界経路である。即ち、第２経路３０２による計算及び処理は、第１経路３０１による計算及び処理に比べて、完了に更に長い時間がかかる。因果関係リソースプロファイリングは、先ずコンピューティングリソースの基準割り当てに基づいて、臨界経路３０２を介する基準実行時間を決定する。多重経路ニューラルネットワーク３００の他の経路の各々を介する基準実行時間もまた、コンピューティングリソースの基準割り当てに基づいて決定される。コンピューティングリソースの割り当ての変化が臨界経路の実行時間にどのような影響を与えるかを決定するために、コンピューティングリソースの割り当てが臨界経路のレイヤによって変わる。
【００３２】
因果関係リソースプロファイリングは、ニューラルネットワークのレイヤ実行時間がリソースの割り当てに依存することから、リソースの割り当てと実行時間との間のマッピングを含む。例えば、臨界経路３０２における特定の関数（即ち、レイヤ）の２０％の加速は、多重経路ニューラルネットワーク３００アプリケーションの全体のランタイム（ｒｕｎｔｉｍｅ）を５％まで潜在的に改善させる（即ち、減少させる）。
【００３３】
因果関係リソースプロファイリングは、多重経路ニューラルネットワークの多様な経路の多様なレイヤに割り当てられたコンピューティングリソースの変化が臨界経路に関する実行時間をどのように変化させるかを決定するために、多重経路ニューラルネットワークの他の経路を分析するように拡張される。多重経路ニューラルネットワークの特定レイヤに対して更に少ない装置コアを割り当てると、該当レイヤの実行時間は増加するが、他の経路における他のレイヤの実行時間を有利に減少させるようにコンピューティングリソースを解放する。
【００３４】
一実施形態において、多重経路ニューラルネットワークの多様なレイヤ及び経路に対する多様なコンピューティングリソースの割り当てに基づいて多重経路ニューラルネットワークの性能を決定するために、複数のシミュレーションが実行される。最適なリソースの割り当ては、多様なコンピューティングリソースの割り当てに対する多重経路ニューラルネットワークの推定実行時間に基づいて決定される。
【００３５】
図４（Ａ）は、一実施形態による多重経路ニューラルネットワークを介する２つの経路の一部の相対的な基準実行時間及びシーケンスを示す図である。第１データストリーム４０１は、多重経路ニューラルネットワークを介する第１経路を示す一連のレイヤ（関数）（例えば、マックスプール（Ｍａｘｐｏｏｌ）レイヤ及び完全結合（Ｆｕｌｌｙ  ｃｏｎｎｅｃｔｅｄ：ＦＣ）レイヤ）により実行される。第２データストリーム４０２は、多重経路ニューラルネットワークを介する第２経路を示す一連のレイヤ（例えば、コンボリューションレイヤ及び正規化線形ユニット（ＲｅＬｕ：Ｒｅｃｔｉｆｉｅｄ  ｌｉｎｅａｒ  ｕｎｉｔ）レイヤ）により実行される。どの経路も臨界経路として識別されないが、図４（Ａ）を参照すると、上部経路が下部経路に比べて、実行を完了（破線）するのにより長い時間がかかる。
【００３６】
図４（Ａ）を参照すると、各々のレイヤ又は関数は、レイヤの関数に割り当てられた表示メモリコンピューティングリソースを含む。例えば、マックスプールレイヤに１ＧＢのメモリを割り当て、ＦＣレイヤに０．５ＧＢを割り当てる。コンボリューションレイヤには５ＧＢを割り当て、ＲｅＬｕレイヤには１ＧＢを割り当てる。この場合、最大５ＧＢのメモリを任意の経路の任意のレイヤに割り当ててもよい。従って、図４（Ａ）に示すメモリの割り当てでは、利用可能な５ＧＢのメモリを全てコンボリューションレイヤに割り当てているため、２つの経路のうちのどのレイヤも、コンボリューションレイヤと同時に実行されない。
【００３７】
図４（Ｂ）は、一実施形態によるコンボリューションレイヤに４．５ＧＢを割り当てた２つの経路における相対的な実行時間及びシーケンスを示す図である。下部経路（第２データストリーム４０２）のコンボリューションレイヤに割り当てられたメモリの量を基準割り当て（図４Ａ）から１０％減少させることにより、上部経路（第１データストリーム４０１）のＦＣレイヤがコンボリューションレイヤと同時に実行される。０．５ＧＢのメモリによりＦＣレイヤの実行が可能であり、ＦＣレイヤがコンボリューションレイヤと同時に実行されるため、多重経路ニューラルネットワーク（即ち、両経路）の全体の実行時間（破線）も減少する。
【００３８】
図４（Ｃ）は、一実施形態によるコンボリューションレイヤに４．０ＧＢのメモリを割り当てた２つの経路における相対的な実行時間及びシーケンスを示す図である。下部経路（第２データストリーム４０２）のコンボリューションレイヤに割り当てられたメモリの量を基準割り当て（図４Ａ）から２０％まで減少させることにより、上部経路（第１データストリーム４０１）のマックスプールレイヤが下部経路のコンボリューションレイヤと同時に実行される。また、上部経路のＦＣレイヤは、マックスプールレイヤが完了するときに、コンボリューションレイヤと同時に実行される。下部経路のＲｅＬｕレイヤは、コンボリューションレイヤが完了するときに、ＦＣレイヤと同時に実行される。コンボリューションレイヤへのメモリの割り当てを減少させることにより、多重経路ニューラルネットワーク（即ち、両経路）の全体の実行時間（破線）が更に減少する。図４（Ｂ）及び図４（Ｃ）に詳細に示していないが、減少したメモリの割り当てに基づいて、コンボリューションレイヤの実行にもう少し時間がかかるが、両経路における全体の実行時間はかなり減少する。コンボリューションレイヤへのメモリの割り当ての例示的な減少が多重経路ニューラルネットワークに静的に適用されるため、多重経路ニューラルネットワークの各々の後続するインスタンス化は全体的に減少した実行時間により行われる。代案として、メモリの割り当ての例示的な減少は、動的に決定され、トポロジー、入力、バッチサイズなどの変化のようなネットワークの変化を説明するために、ニューラルネットワークのインスタンス化に適用される。
【００３９】
コストモデルは、各レイヤの実行時間とコンピューティングリソースの活用率とを関連付けるニューラルネットワークにおいて一般に用いられるレイヤの因果関係リソースプロファイリングに用いられる。因果関係リソースプロファイリング中に考慮されるコンピューティングリソースは、装置コンピューティングユニット、メモリ空間、及びメモリ帯域幅を含む。ＣＰＵコンピューティングユニットの場合、コア数を考慮する。ＧＰＵコンピューティングユニットの場合、ストリーミングマルチプロセッサ（ＳＭ：Ｓｔｒｅａｍｉｎｇ  ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ）の数を考慮する。ＦＰＧＡの場合、ＦＰＧＡ領域を考慮する。リソース割り当てのユニットは、一般的に離散値（例えば、コア数、レイヤの多様な具現のためのメモリ／作業空間）である。
【００４０】
多重経路ニューラルネットワークの因果関係リソースプロファイリングの性能分析に用いられる１つの定義は、次の通りである。多重経路ニューラルネットワークへの入力のために、ｋ個の実行ストリームをｋ個の多重経路ニューラルネットワークの経路に各々入力する。各々のストリームｓに対して、順次依存するｎｓ個のレイヤｌが存在する。１つの経路の各々のレイヤｌ毎にｍｌ個の多様な具現方法がある。各々の具現方法には、実行時間ｔｍｌ，ｋ及び活用のためのリソースセット
2020119564.tif 000004
がある。定義の目的は、下記の数式１のように、多重経路ニューラルネットワークの全体の実行時間を最小化する全てのレイヤの並列スケジューリング及び具現を見付けることである。
【００４１】
【数１】
2020119564.tif 000005
【００４２】
ここで、Ｋはレイヤの総数であり、Ｗｒ，ｌはレイヤｌのリソースｒの活用であり、Ｍｒは多重経路ニューラルネットワークの実行に利用可能な最大のリソースｒであり、αｌ，ｔは、レイヤｌが時間ｔで実行中の場合は１、そうでない場合は０である。
【００４３】
リソース割り当ての複雑さを減少させるために、いくつかの発見法が用いられる。例えば、検索空間が除去される。例えば、ｔｉ＞ｔｊであり、
2020119564.tif 000006
である、レイヤｌの別の具現ｊが存在する場合、レイヤｌの具現ｉは除去される。実行時間が比較的長い具現も除去される。例えば、実行時間が長い具現は、比較的少ないリソースの利用を提供し得るが、最適なソリューションの一部ではない可能性が高いため、
2020119564.tif 000007
の場合、レイヤＬの具現ｋは除去される。
【００４４】
リソース割り当ての複雑さを減少させるまた別の技術は、レイヤのウィンドウベースのリソース割り当てを用いることである。即ち、ウィンドウ又はレイヤのグループは、多重経路ニューラルネットワークの各経路及び深さでレイヤの平均実行時間又は公称実行時間に基づいて形成される。各ストリーム又はレイヤのウィンドウサイズは、調整可能な変数を含む。ウィンドウは多重経路ニューラルネットワークの経路に沿ってスライドするように制御され、最適なリソースの割り当てを見付けるために、ウィンドウ内部のレイヤの性能分析が行われる。
【００４５】
図５は、本発明の一実施形態によるレイヤ５００のウィンドウベースのリソース割り当て分析を示す図である。図５を参照すると、第１ウィンドウ５０１は、多重経路ニューラルネットワークの第１経路５０３のレイヤと第２経路５０４のレイヤとの因果関係リソースプロファイリングの分析を行うために定義されて用いられる。第２ウィンドウ５０２は、第１経路５０３のレイヤと第２経路５０４のレイヤとの他の因果関係リソースプロファイリングの分析を行うように同様に定義される。各ストリームの実行時間は、同時実行を完全に達成するために、同一のウィンドウ内でできる限り正確に一致させる。
【００４６】
図６は、データ処理システムの例示的なアーキテクチャ６００のブロック図である。一実施形態において、アーキテクチャ６００は、図１の多重経路ニューラルネットワークアナライザ１００を実行するのに用いられる。他の実施形態において、アーキテクチャ６００は、多重経路ニューラルネットワークアナライザ１００を実行し、多重経路ニューラルネットワークアナライザ１００により提供される最適化された多重経路ニューラルネットワークを実行するのに用いられる。
【００４７】
データ処理システムの例示的なアーキテクチャ６００は、少なくとも１つのプロセッサ、例えばシステムバス６０３又は他の好適な回路を介してメモリ要素６０２に結合されるプロセッサ６０１（中央処理装置、ＣＰＵ）を含む。アーキテクチャ６００は、メモリ要素６０２内にプログラムコードを保存する。プロセッサ６０１は、システムバス６０３を介してメモリ要素６０２からアクセスされたプログラムコードを実行する。このように、プロセッサ６０１は、特殊のプロセッサとして機能する。メモリ要素６０２は、ローカルメモリ６０４や１つ以上の大容量記憶装置６０５などの１つ以上の物理的メモリ装置を含む。ローカルメモリ６０４は、プログラムコードが実際に実行される間、一般的に用いられるランダムアクセスメモリ（ＲＡＭ）又は他の非永久的なメモリ装置である。大容量記憶装置６０５は、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、及び／又は他の永久的なデータ記憶装置として具現される。データ処理システムの例示的なアーキテクチャ６００は、実行中に大容量記憶装置６０５から検索されるべきプログラムコードの回数を減少させるために、少なくとも一部のプログラムコードの一時保存を提供する１つ以上のキャッシュメモリ（図示せず）を更に含む。
【００４８】
データ処理システムの例示的なアーキテクチャ６００は、キーボード６０６、ディスプレイ装置６０７、及び／又はアーキテクチャ６００に選択的に結合されるポインティング装置６０８などの入出力（Ｉ／Ｏ）装置を更に含む。一実施形態において、１つ以上の入出力装置は、ディスプレイ装置６０７として用いられるタッチスクリーンに結合される。このようなディスプレイ装置６０７は、キーボード６０６及びポインティング装置６０８を含んでもよい。１つ以上のネットワークアダプタ６０９をアーキテクチャ６００に結合させることにより、アーキテクチャ６００がプライベートネットワーク又はパブリックネットワークを介して、他のシステム、コンピュータシステム、遠隔プリンタ、及び／又は遠隔記憶装置に結合される。モデム、ケーブルモデム、イーサネット（登録商標）カード、及び無線トランシーバは、アーキテクチャ６００と共に用いられる多様なタイプのネットワークアダプタ６０９の例示である。上述のアーキテクチャ６００により実施された特定装置において、装置によってネットワークアダプタのタイプが変わる。入出力装置は、アーキテクチャ６００に直接結合されるか、又は入出力制御器を介して連結される。
【００４９】
図６を参照すると、メモリ要素６０２は、オペレーティングシステム６１０及び１つ以上のアプリケーション６１１を保存する。一実施形態において、実行可能なプログラムコードの形で具現されるオペレーティングシステム６１０及びアプリケーション６１１は、アーキテクチャ６００により実行される。このように、オペレーティングシステム６１０及びアプリケーション６１１は、アーキテクチャ６００の統合部分と見ることができる。アーキテクチャ６００により使用され、生成され、及び／又は運用されるオペレーティングシステム６１０、アプリケーション６１１、並びに任意のデータは、アーキテクチャ６００を用いて実行されるシステムの一部として活用される際に機能性を有する機能的データ構造である。
【００５０】
一実施形態において、アプリケーション６１１は、例示的なアーキテクチャ６００又は例示的なアーキテクチャ６００に類似するアーキテクチャを用いるシステムにより実行される際に、図１〜５に示す多様な演算及び機能を行う１つ以上のモジュールを含む。１つ以上のモジュールは、多様な構成要素及び／又は多様な機能ブロックと共に本発明の機能を提供するソフトウェア、ファームウェア、及び／又はハードウェアを含む。
【００５１】
他の実施形態において、例示的なアーキテクチャ６００は、通信リンク６１３を介してプラットフォーム６１２に結合される。例示的なアーキテクチャ６００は、ネットワークアダプタ６０９を介してプラットフォーム６１２に結合される。例示的なアーキテクチャ６００は、アーキテクチャ６００をプラットフォーム６１２に結合するのに用いるＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェース又は他の通信ポートなどの１つ以上の他の入出力装置を含む。プラットフォーム６１２は、回路ボードであり、これに結合されたニューラルネットワークアクセラレータ６１４を含む。一実施形態において、ニューラルネットワークアクセラレータ６１４は、集積回路（ＩＣ）又は複数のＩＣとして具現される。例えば、ニューラルネットワークアクセラレータ６１４は、フィールド・プログラマブル・ゲート・アレイ（Ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、特定用途向けＩＣ（ＡＳＩＣ：Ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ＩＣ）などのような１つ以上のプログラマブルＩＣとして具現される。
【００５２】
アーキテクチャ６００は、図１の多重経路ニューラルネットワーク１０１のような多重経路ニューラルネットワークにおいて、多様な経路の多様なレイヤにコンピューティングリソースを割り当てるために、本発明の演算を行うように構成される。即ち、アーキテクチャ６００は、入出力装置を介して多重経路ニューラルネットワーク１０１を受信し、多重経路ニューラルネットワークの１つ以上のレイヤで演算し、本発明による多重経路ニューラルネットワークに対する最適化されたコンピューティングリソースの構成を出力する。アーキテクチャ６００は、実行するのに最適化された多重経路ニューラルネットワーク１０１の定義をニューラルネットワークアクセラレータ６１４に提供する。
【００５３】
図６は、１つの例示に過ぎず、本明細書で説明している構成は、本発明を限定しない。場合によって、アーキテクチャ６００を用いて実行された特定のシステムは、図示しているものに比べて、より少ない数の構成要素又はより多くの構成要素を含む。また、アーキテクチャ６００の一部として含まれる特定のオペレーティングシステム又はアプリケーションは多様である。
【００５４】
以上、図面を参照しながら本発明の実施形態を説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的思想から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００５５】
１００    多重経路ニューラルネットワークアナライザ
１０１、３００    多重経路ニューラルネットワーク
１０２    レイヤのストリーム割り当て
１０３    基準状態を生成し、ウィンドウを生成
１０４    コストモデルを用いた性能分析によるリソース割り当て
１０５    装置リソース制約
１０６    枝刈り（ｐｒｕｎｉｎｇ）
１０７    レイヤリソースのコストモデルテンプレート
１０８    スケジューラ
１０９    レイヤのリソース割り当てのアップデート
２０１    カーネル
２０２    第２カーネル
３０１    第１経路
３０２    第２経路、臨界経路
３０３    入力
３０４    意思決定モジュール
４０１    第１データストリーム
４０２    第２データストリーム
５００    レイヤ
５０１    第１ウィンドウ
５０２    第２ウィンドウ
５０３    第１経路
５０４    第２経路
６００    データ処理システムの例示的なアーキテクチャ
６０１    プロセッサ
６０２    メモリ要素
６０３    システムバス
６０４    ローカルメモリ
６０５    大容量記憶装置
６０６    キーボード
６０７    ディスプレイ装置
６０８    ポインティング装置
６０９    ネットワークアダプタ
６１０    オペレーティングシステム
６１１    アプリケーション
６１２    プラットフォーム
６１３    通信リンク
６１４    ニューラルネットワークアクセラレータ
【図１】
2020119564.tif 000008
【図２】
2020119564.tif 000009
【図３】
2020119564.tif 000010
【図４】
2020119564.tif 000011
【図５】
2020119564.tif 000012
【図６】
2020119564.tif 000013