JP2020119564A - 多重経路ニューラルネットワーク及びそのレイヤにリソースを割り当てる方法並びに多重経路ニューラルネットワークアナライザ - Google Patents

多重経路ニューラルネットワーク及びそのレイヤにリソースを割り当てる方法並びに多重経路ニューラルネットワークアナライザ Download PDF

Info

Publication number
JP2020119564A
JP2020119564A JP2020006404A JP2020006404A JP2020119564A JP 2020119564 A JP2020119564 A JP 2020119564A JP 2020006404 A JP2020006404 A JP 2020006404A JP 2020006404 A JP2020006404 A JP 2020006404A JP 2020119564 A JP2020119564 A JP 2020119564A
Authority
JP
Japan
Prior art keywords
neural network
path
allocation
layer
path neural
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.)
Pending
Application number
JP2020006404A
Other languages
English (en)
Inventor
ベナム ポウルガセミ,
Pourghassemi Behnam
ベナム ポウルガセミ,
ジュ ファン イ,
Joo Hwan Lee
ジュ ファン イ,
ヤン ソク キ,
Yang Seok Ki
ヤン ソク キ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2020119564A publication Critical patent/JP2020119564A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • 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)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】多重経路ニューラルネットワークの多様な経路における多様なレイヤにコンピューティングリソースを割り当てるためのシステム及び方法を提供する。【解決手段】本発明の多重経路ニューラルネットワークアナライザは、多重経路ニューラルネットワークを受信するインタフェースと、多重経路ニューラルネットワークを実行するコンピューティングリソースの第1割り当てが行われる多重経路ニューラルネットワークを介する臨界経路の1つ以上のレイヤを含む多重経路ニューラルネットワークを生成する処理装置と、を備え、臨界経路は多重経路ニューラルネットワークの処理量を制限し、コンピューティングリソースの第1割り当ては多重経路ニューラルネットワークの実行時間をコンピューティングリソースの第2割り当ての基準実行時間未満に減少させ、臨界経路の第1レイヤに対するコンピューティングリソースの第1割り当ては臨界経路の第1レイヤに対するコンピューティングリソースの第2割り当てと相違する。【選択図】図1

Description

本発明は、ニューラルネットワークに関し、より詳細には、GPU演算の同時実行のためのプラットフォームとして、多重経路ニューラルネットワークの多様な経路における多様なレイヤにコンピューティングリソースを割り当てるための多重経路ニューラルネットワークシステム及びその方法並びに多重経路ニューラルネットワークアナライザに関する。
通常のグラフィック処理装置(GPU)プラットフォームでは、GPU演算を同時に実行することができない。通常のGPUで複数の演算を同時に起動させるためには、各々の演算を別途のプログラム、即ちCUDAプログラミングモデルの別途のストリームに割り当てなければならない。しかし、殆どの一般的なGPUカーネルにおいて、2つ以上のGPUカーネルを同時に実行することは略不可能である。一般的なカーネルは、(レジスタ及び共有メモリを含む)全てのGPUコアリソースを占め、GPUスケジューラが同一コア上の他のカーネルからブロックを実行することを不可能にする。従来のGPUプラットフォームでは、スケジューリングのために多くのブロックを用いるため、他のGPU演算の同時実行は、ブロック数が少ない場合にのみ可能である。殆どのGPUカーネルには、一般的に、使用可能な全てのGPUコアを占めるのに十分な数のブロックがあるため、最初のカーネルが完了するまで他のGPUカーネルの実行が延期され、2つの演算が順次行われるという結果をもたらす。従って、従来のGPUプラットフォームは、個別のレイヤ(カーネル)のために装置(例:GPU)コアを100%活用することにより、独立したカーネルの同時実行を防止する。
従来のGPUプラットフォームに関する他の弱点は、非効率的なリソースの活用である。GPUカーネルは特定の入力及びGPUマイクロアーキテクチャの実行に合わせて最適化することができるが、計算効率性及びDRAM活用度は一部の入力における多重GPUアルゴリズムに対して十分最適化されない。例えば、一部のコンボリューション(convolution)(主にGEMMベース)の実行時間は、制限された数のコアで飽和し、更なるコアでコンボリューションを実行すると、コアの活用度が低下するという結果が発生する。複数の演算を同時に実行することにより、アルゴリズム、入力データ、データレイアウト、及びマイクロアーキテクチャを考慮して、1つのGPU演算において活用率の低いリソースが他のGPU演算に使用される。
従来のGPUプラットフォームに関するまた別の弱点は、既存のGPUプラットフォームが、GPU装置が演算を受信する方式順に演算を順次行い、先に要請された演算の待ち時間を減らすために優先順位が決定されることである。このようなスケジューリング方法は、多数のアプリケーションにおけるGPU演算の平均待ち時間を増加させる。例えば、完了するのに相当な時間がかかるGPU演算が、完了するのにそれほど時間がかからない他のGPU演算が到着する前にGPU装置に到着する場合、2番目のGPU演算の待ち時間(又は応答時間)は不必要に長くなる。
従来のGPUプラットフォームに関するまた別の弱点は、従来のGPUプラットフォームが多重経路を有する作業に最適化されていないということである。GPU作業は、方向性非循環グラフ(DAG:Directed Acyclic Graph)を形成し、ここで、各ノードは演算を表し、ノードAからノードBへの方向性エッジは、ノードAとBとの間の入出力依存性を表す。即ち、ノードBは、ノードAの後に実行されなければならない。最近、多重経路の計算グラフを有するGPU作業が一般化されている。多重経路作業は、単一のユーザ、GPUプラットフォームを共有する複数のユーザ、又は複数経路を有する単一のGPUアプリケーションにより起動された多様なGPUアプリケーションから発生する。多重経路ニューラルネットワークは、多重経路を有する単一のGPUアプリケーションの一例である。
多重経路ニューラルネットワークは、現実の機械学習(ML)問題をより良く表現することで、機械学習コミュニティで大きな注目を集めている。一般的に、ニューラルネットワークの経路と並列に、ニューラルネットワーク全体の処理量を制限する臨界経路と指称される1つの経路がある。ニューラルネットワークを介するシグナルフローは、一連の従属レイヤを介するシグナルフローとして特徴付けられる。通常、ニューラルネットワークが実行される際、特定レイヤへの入力が順序において直前のレイヤに依存するようにレイヤが順次繰り返し実行される。
従来のディープラーニングのフレームワークは、多様な経路間又は多様な経路を実行するカーネル間のリソース割り当てに基づいて多重経路ニューラルネットワークの実行を最適化するように構成されていない。カーネルの実行に必要なワークスペースメモリの総量がニューラルネットワークを実行する装置で使用可能なメモリよりも大きい場合、非効率的なメモリの割り当てにより、多重経路ニューラルネットワークのカーネルが同時に実行されない可能性がある。多重経路ニューラルネットワークの臨界経路における非効率的なコンピューティングリソースの割り当ては、ニューラルネットワーク全体の処理量に悪影響を与える。
国際公開第2014/040003号
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、コンピューティングリソースを割り当てるための多重経路ニューラルネットワークシステム及びそのレイヤにリソースを割り当てる方法並びに多重経路ニューラルネットワークアナライザを提供することにある。
上記目的を達成するためになされた本発明の一態様による多重経路ニューラルネットワークは、多重経路ニューラルネットワークを介する2つ以上の経路と、前記多重経路ニューラルネットワークの処理量を制限する前記多重経路ニューラルネットワークを介する臨界経路を含む1つ以上のレイヤを含む第1経路と、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第1割り当てが行われる前記臨界経路の第1レイヤと、前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第2割り当ての基準実行時間よりも短く減少させ、前記第1レイヤに対する前記コンピューティングリソースの第2割り当てと相違する前記コンピューティングリソースの第1割り当てと、を有する。
一実施形態において、多重経路ニューラルネットワークの実行前に、第1レイヤに対するコンピューティングリソースの第1割り当てを行う。
他の実施形態において、多重経路ニューラルネットワークの実行中に、第1レイヤに対するコンピューティングリソースの第1割り当てを行う。
上記目的を達成するためになされた本発明の一態様による多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法は、多重経路ニューラルネットワークを介する2つ以上の経路を含む多重経路ニューラルネットワークに、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースを割り当てるコンピューティングリソースの第1コンピューティングリソース割り当てに基づいて、前記多重経路ニューラルネットワークの基準実行時間を決定する段階と、前記2つ以上の経路に対して1つ以上であると共に、各々が前記第1コンピューティングリソース割り当てと相違する第2コンピューティングリソース割り当てに対して、前記多重経路ニューラルネットワークを介する2つ以上の経路の実行時間を繰り返し決定する段階と、前記多重経路ニューラルネットワークの全体の基準実行時間よりも短い前記多重経路ニューラルネットワークの全体の実行時間を提供する第1経路の第1レイヤに対する第2コンピューティングリソース割り当てを識別する段階と、を有する。
上記目的を達成するためになされた本発明の一態様による多重経路ニューラルネットワークアナライザは、多重経路ニューラルネットワークを介する2つ以上の経路と1つ以上のレイヤを含む2つ以上の経路の第1経路とを含む前記多重経路ニューラルネットワークを受信するインタフェースと、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第1割り当てが行われる前記多重経路ニューラルネットワークを介する臨界経路の1つ以上のレイヤを含む多重経路ニューラルネットワークを生成する処理装置と、を備え、前記臨界経路は、前記多重経路ニューラルネットワークの処理量を制限し、前記コンピューティングリソースの第1割り当ては、前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第2割り当ての基準実行時間未満に減少させる、前記臨界経路の第1レイヤに対する前記コンピューティングリソースの第1割り当ては、前記臨界経路の第1レイヤに対するコンピューティングリソースの第2割り当てと相違する。
本発明によれば、多重経路ニューラルネットワークシステム及びそのレイヤにリソースを割り当てる方法を通じて、コンピューティングリソースを割り当てることができる。
本発明の一実施形態による多重経路ニューラルネットワークの多様な経路における多様なレイヤへのコンピューティングリソースの割り当て又は分割を最適化する多重経路ニューラルネットワークアナライザの機能ブロック図である。 (A)は本発明の一実施形態による修正カーネル起動関数を用いて多数のGPU演算が同時にスケジューリングされた4つのコアを有するGPUなどのプロセッシングユニットを示す図であり、(B)は修正されたカーネル起動関数を用いて第2カーネルが起動した後のGPUを示す図である。 一実施形態による入力と意思決定モジュールとの間に2つの経路を有する多重経路ニューラルネットワークを示す図である。 (A)は一実施形態による多重経路ニューラルネットワークを介する2つの経路の一部の相対的な基準実行時間及びシーケンスを示す図であり、(B)はコンボリューションレイヤに4.5GBを割り当てた2つの経路における相対的な実行時間及びシーケンスを示す図であり、(C)はコンボリューションレイヤに4.0GBのメモリを割り当てた2つの経路における相対的な実行時間及びシーケンスを示す図である。 本発明の一実施形態によるレイヤのウィンドウベースのリソース割り当て分析を示す図である。 図1の多重経路ニューラルネットワークアナライザの具現に用いられるデータ処理システムの例示的なアーキテクチャのブロック図である。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
本発明は、単一のGPU装置で同時に実行されるカーネルの間にコンピューティングリソースを効率的に割り当てるか又は分割するためのシステム及び方法に関する。本発明のシステムは、コアの割り当て及び/又はコアの再分配により、単一のGPU装置で多数のGPU演算の並列及び/又は同時実行をスケジューリングする。システムに対するアプリケーション・プログラミング・インターフェース(API:Application Programming Interface)を通じて、ユーザは、同時に実行するGPU演算を選択し、同時演算のためのコンピューティングリソースを割り当てることが可能である。
本発明のシステム及び方法は、多重経路ニューラルネットワークの性能を最適化するためにコンピューティングリソースを割り当てるのに用いられる。一実施形態において、多重経路ニューラルネットワークの多様な経路における多様なレイヤに対して同時実行が可能である。多重経路ニューラルネットワークアプリケーションの自動最適化は、因果関係リソースプロファイリング技術(causal resource profiling technique)に基づいて提供される。一実施形態において、因果関係リソースプロファイリング技術は、多重経路ニューラルネットワークの自動性能最適化を提供する。最適なリソースの割り当ては、コンピューティングリソースと、コンピューティングリソースの割り当てレベルに影響されるニューラルネットワークにおけるレイヤの実行時間との関係に基づいて識別される。
また、因果関係リソースプロファイリングは、多重経路ニューラルネットワークを介する臨界経路、及びコンピューティングリソースとコンピューティングリソースに関する実行時間との関係に基づいている。コストモデルテンプレートは、性能分析のために用いられ、最適なリソースの割り当てを決定するための分析の複雑さを減少させるために、1つ以上の発見法(heuristics)が用いられる。更に、多重経路ニューラルネットワークアプリケーションの実行のスケジューリングは、因果関係リソースプロファイリング技術を用いて最適化される。
本発明のリソース割り当ての技術は、ニューラルネットワーク全体の性能結果を向上させるために、多重経路ニューラルネットワークのレイヤとの間にコンピューティングリソースを割り当てることが可能である。多重経路ニューラルネットワークのレイヤに対するリソース活用率の修正に基づいてネットワークの性能が分析され、性能分析が特定のコンピューティングリソース割り当てに基づいて性能改善を示す場合、個別のレイヤのリソース活用率がアップデートされるか又は再構成される。
本発明は、コンピューティングリソースをカーネルの間に分割するプログラミングインタフェースを提供する。同時実行のためのプログラマーへの支援が制限され、カーネルのGPUコアの数を決定するために実行されるスレッド(thread)ブロックの数に依存する従来のGPUプラットフォームと異なり、本発明は、同時に実行されるGPU演算及び同時演算のためのリソース割り当てをプログラマーが定義するプログラミングインタフェースを提供する。
本発明のシステム及び方法により、静的リソースの割り当て及び動的リソースの割り当てを支援する。静的割り当ての場合、アプリケーションの実行前にリソースを個別のレイヤに割り当てる。動的割り当ての場合、トポロジー(topology)、入力、バッチサイズなどの変化のようなネットワークの変化に基づく柔軟性を提供するために、実行時間(runtime)中にリソースを割り当てる。
図1は、本発明の一実施形態による多重経路ニューラルネットワークの多様な経路における多様なレイヤへのコンピューティングリソースの割り当て又は分割を最適化する多重経路ニューラルネットワークアナライザ100の機能ブロック図である。一実施形態において、多重経路ニューラルネットワークアナライザ100は、好適なソフトウェアを実行するデータ処理システムとして実施される。多重経路ニューラルネットワークアナライザ100は、多重経路ニューラルネットワークアナライザ100に利用することが可能なコンピューティングリソースを用いて、実行のための入力として多重経路ニューラルネットワーク101を受信する。多重経路ニューラルネットワーク101は、完全精度の学習済み(full−precision trained)ニューラルネットワークである。代案として、多重経路ニューラルネットワーク101は、学習中のニューラルネットワークである。多重経路ニューラルネットワークアナライザ100は、因果関係リソースプロファイリングを用いて、多重経路ニューラルネットワーク101の多様な経路における多様なレイヤを分析し、多重経路ニューラルネットワーク101が最小時間内に実行又は作動するように、コンピューティングリソースの最適な割り当て又は分割を決定する。
一実施形態において、多重経路ニューラルネットワークアナライザ100は、多重経路ニューラルネットワークの実行前に、多重経路ニューラルネットワークの1つ以上の経路における1つ以上のレイヤに対して、コンピューティングリソースの最適化された割り当てを生成する。ニューラルネットワークの実行の際、コンピューティングリソースの最適化された割り当てを用いる。他の実施形態において、多重経路ニューラルネットワークアナライザ100は、ニューラルネットワークがコンピューティング装置でインスタンス化されるとき、ニューラルネットワークが最適に構成されるように、ニューラルネットワークに関する多重経路ニューラルネットワークの1つ以上の経路における1つ以上のレイヤに対してコンピューティングリソースを定義するパラメータを最適化する。また別の実施形態において、多重経路ニューラルネットワークアナライザ100は、多重経路ニューラルネットワークの実行中、多重経路ニューラルネットワークの1つ以上の経路における1つ以上のレイヤに対してコンピューティングリソースの割り当てを動的にアップデートし、トポロジー、入力、バッチサイズなどの変化のようなネットワークの変化に基づく柔軟性を提供する。
初めに、図1の102を参照すると、多重経路ニューラルネットワークアナライザ100は、順次依存する1つ以上のレイヤを有する多重経路ニューラルネットワーク101の多様な経路に、対応するストリームを割り当てる。図1の103において、多重経路ニューラルネットワークアナライザ100は、基準リソースの割り当て状態を生成する。図5を参照して後述するように、コンピューティングリソースの多様な割り当てに対して因果関係リソースプロファイリングを行う複雑さを減少させるために、ウィンドウ、グルーピング、又はサイズが更に生成される。図1の104において、多重経路ニューラルネットワークアナライザ100は、最適なコンピューティングリソースの割り当てを決定するために、多様なコンピューティングリソースの割り当ての性能分析を行う。装置リソース制約105は、利用可能なコンピューティングリソースに制約及び/又は境界をおくユーザ入力から受信される。装置リソース制約105は、多重経路ニューラルネットワーク101を受信する前にユーザから受信される。性能分析は、103で生成されたウィンドウ、グルーピング、又はサイズを用いる。分析される多様なコンピューティングリソースの割り当て個数は、最適な性能ソリューションを提供しない可能性があるコンピューティングリソースの割り当てを枝刈り(pruning)又は廃棄することにより、106で減少する。性能分析中に、レイヤリソースのコストモデルテンプレート107が用いられる。
スケジューラ108は、分析される多様なレイヤと経路の一部、及び/又は分析される多重経路ニューラルネットワーク101の処理量全体の性能をシミュレーションする。図1の109において、より良いコンピューティングリソースの割り当てが多様なレイヤ及び/又は経路に対して決定され、より良いスケジューリングの割り当てが多重経路ニューラルネットワーク101に対して決定されることにより、多重経路ニューラルネットワークアナライザ100は、図1の103において、より良い割り当てによってレイヤの基準リソース割り当てをアップデートし、より良いスケジューリング割り当てが多重経路ニューラルネットワーク101の実行の際に用いられる。
演算において、多重経路ニューラルネットワークアナライザ100は、多重経路ニューラルネットワークの実行に利用可能なコンピューティングリソースに対する制約をユーザが選択的に設定することを可能にするAPIを介して装置リソース制約105を受信する。一実施形態において、プロセッシングユニット又はコンピューティングユニットの最小コア数及び/又は最大コア数は、プロセッシングユニット上で多重経路ニューラルネットワークの経路を実行する1つ以上のカーネルに対してユーザが選択する。下記表1は、本発明の一実施形態において、カーネルに用いられる最小コア数及び最大コア数などのリソース制限を提供し、OpenCLプログラミングフレームワークで用いられる修正カーネル起動関数を示す。カーネル起動コマンドclEnqueueNDRangeKernelは、例えば、引数「min_cores」、引数「max_cores」という2つの更なる引数を含むように修正される。特に、引数「const cl_uint min_cores」及び引数「const cl_uint max_cores」は、OpenCLフレームワークのカーネル起動コマンドclEnqueueNDRangeKernelに追加される。カーネル起動コマンドclEnqueueNDRangeKernelの引数リストの最後に2つの更なる変数設定引数を示す。
引数「min_cores」は、他のカーネルと共に実行される際にカーネルに活用されるプロセッシングユニットの最小コア数を定義するのに用いられ、引数「max_cores」は、単独で実行される際にカーネルに活用されるプロセッシングユニットの最大コア数を定義するのに用いられる。ユーザは、カーネルのスレッドブロック数に拘らず、カーネルに活用されるコアの数を定義する。
<修正カーネル起動関数>
Figure 2020119564
図2(A)は、本発明の一実施形態による修正カーネル起動関数を用いて多数のGPU演算が同時にスケジューリングされた4つのコア(コア1〜コア4)を有するGPUなどのプロセッシングユニットを示す図であり、図2(B)は修正されたカーネル起動関数を用いて第2カーネルが起動した後のGPUを示す図である。先ず、修正カーネル起動関数は、カーネル201の最小/最大_コア引数を2/3に設定するのに用いられる。一実施形態において、図2(A)のように、カーネル201は、コア1〜コア3に分配され、且つGPUコア1〜コア4で実行される12個のスレッドブロックを有する。
第2カーネル202は、最小/最大_コア引数を2/4に設定するように構成される。図2Bのように、カーネル202がGPU装置で起動する際、GPUスケジューラ(図示せず)はスレッドブロックの移行を行い、コア3に予め割り当てられたカーネル201のスレッドブロックは、先に実行されたカーネル201及び新たに実行される第2カーネル202の両方の最小/最大_コア引数に基づいて、コア1及びコア2に移行する。この場合、2つのカーネルの最小コア引数は何れも2であるため、カーネル201及び第2カーネル202の各々を実行させるために、少なくとも2つずつのGPUコアを設定する。それぞれ異なるコア1〜コア4は、それぞれ異なる数のスレッドブロックを実行する。更に、特定のコアは、図2(A)又は図2(B)に示しているものと異なるように割り当てられる。
ユーザによって入力された装置リソース制約105に基づいて、多重経路ニューラルネットワークアナライザ100は、因果関係リソースプロファイリングを用いて、多重経路ニューラルネットワーク101を実行するための最適なコンピューティングリソースの割り当て又は分割を決定する。一実施形態において、因果関係リソースプロファイリングは、コンピューティングリソースの割り当ての変化が、例えば臨界経路を介する実行時間にどのような影響を与えるかを識別するために、多重経路ニューラルネットワーク101を介する臨界経路で行われる。また、因果関係リソースプロファイリングは、多重経路ニューラルネットワーク101の多様な経路におけるコンピューティングリソースの割り当ての変化が多重経路ニューラルネットワーク101の全体の実行時間にどのような影響を与えるか識別するのに用いられる。
図3は、一実施形態による入力303と意思決定モジュール304との間に2つの経路(301、302)を有する多重経路ニューラルネットワーク300を示す図である。第1経路301は順次依存する5つのレイヤを含み、第2経路302は順次依存する4つのレイヤを含む。例えば、図3に示すニューラルネットワークの場合、第2経路302は、多重経路ニューラルネットワーク300の全体の処理量を制限する多重経路ニューラルネットワーク300を介する臨界経路である。即ち、第2経路302による計算及び処理は、第1経路301による計算及び処理に比べて、完了に更に長い時間がかかる。因果関係リソースプロファイリングは、先ずコンピューティングリソースの基準割り当てに基づいて、臨界経路302を介する基準実行時間を決定する。多重経路ニューラルネットワーク300の他の経路の各々を介する基準実行時間もまた、コンピューティングリソースの基準割り当てに基づいて決定される。コンピューティングリソースの割り当ての変化が臨界経路の実行時間にどのような影響を与えるかを決定するために、コンピューティングリソースの割り当てが臨界経路のレイヤによって変わる。
因果関係リソースプロファイリングは、ニューラルネットワークのレイヤ実行時間がリソースの割り当てに依存することから、リソースの割り当てと実行時間との間のマッピングを含む。例えば、臨界経路302における特定の関数(即ち、レイヤ)の20%の加速は、多重経路ニューラルネットワーク300アプリケーションの全体のランタイム(runtime)を5%まで潜在的に改善させる(即ち、減少させる)。
因果関係リソースプロファイリングは、多重経路ニューラルネットワークの多様な経路の多様なレイヤに割り当てられたコンピューティングリソースの変化が臨界経路に関する実行時間をどのように変化させるかを決定するために、多重経路ニューラルネットワークの他の経路を分析するように拡張される。多重経路ニューラルネットワークの特定レイヤに対して更に少ない装置コアを割り当てると、該当レイヤの実行時間は増加するが、他の経路における他のレイヤの実行時間を有利に減少させるようにコンピューティングリソースを解放する。
一実施形態において、多重経路ニューラルネットワークの多様なレイヤ及び経路に対する多様なコンピューティングリソースの割り当てに基づいて多重経路ニューラルネットワークの性能を決定するために、複数のシミュレーションが実行される。最適なリソースの割り当ては、多様なコンピューティングリソースの割り当てに対する多重経路ニューラルネットワークの推定実行時間に基づいて決定される。
図4(A)は、一実施形態による多重経路ニューラルネットワークを介する2つの経路の一部の相対的な基準実行時間及びシーケンスを示す図である。第1データストリーム401は、多重経路ニューラルネットワークを介する第1経路を示す一連のレイヤ(関数)(例えば、マックスプール(Maxpool)レイヤ及び完全結合(Fully connected:FC)レイヤ)により実行される。第2データストリーム402は、多重経路ニューラルネットワークを介する第2経路を示す一連のレイヤ(例えば、コンボリューションレイヤ及び正規化線形ユニット(ReLu:Rectified linear unit)レイヤ)により実行される。どの経路も臨界経路として識別されないが、図4(A)を参照すると、上部経路が下部経路に比べて、実行を完了(破線)するのにより長い時間がかかる。
図4(A)を参照すると、各々のレイヤ又は関数は、レイヤの関数に割り当てられた表示メモリコンピューティングリソースを含む。例えば、マックスプールレイヤに1GBのメモリを割り当て、FCレイヤに0.5GBを割り当てる。コンボリューションレイヤには5GBを割り当て、ReLuレイヤには1GBを割り当てる。この場合、最大5GBのメモリを任意の経路の任意のレイヤに割り当ててもよい。従って、図4(A)に示すメモリの割り当てでは、利用可能な5GBのメモリを全てコンボリューションレイヤに割り当てているため、2つの経路のうちのどのレイヤも、コンボリューションレイヤと同時に実行されない。
図4(B)は、一実施形態によるコンボリューションレイヤに4.5GBを割り当てた2つの経路における相対的な実行時間及びシーケンスを示す図である。下部経路(第2データストリーム402)のコンボリューションレイヤに割り当てられたメモリの量を基準割り当て(図4A)から10%減少させることにより、上部経路(第1データストリーム401)のFCレイヤがコンボリューションレイヤと同時に実行される。0.5GBのメモリによりFCレイヤの実行が可能であり、FCレイヤがコンボリューションレイヤと同時に実行されるため、多重経路ニューラルネットワーク(即ち、両経路)の全体の実行時間(破線)も減少する。
図4(C)は、一実施形態によるコンボリューションレイヤに4.0GBのメモリを割り当てた2つの経路における相対的な実行時間及びシーケンスを示す図である。下部経路(第2データストリーム402)のコンボリューションレイヤに割り当てられたメモリの量を基準割り当て(図4A)から20%まで減少させることにより、上部経路(第1データストリーム401)のマックスプールレイヤが下部経路のコンボリューションレイヤと同時に実行される。また、上部経路のFCレイヤは、マックスプールレイヤが完了するときに、コンボリューションレイヤと同時に実行される。下部経路のReLuレイヤは、コンボリューションレイヤが完了するときに、FCレイヤと同時に実行される。コンボリューションレイヤへのメモリの割り当てを減少させることにより、多重経路ニューラルネットワーク(即ち、両経路)の全体の実行時間(破線)が更に減少する。図4(B)及び図4(C)に詳細に示していないが、減少したメモリの割り当てに基づいて、コンボリューションレイヤの実行にもう少し時間がかかるが、両経路における全体の実行時間はかなり減少する。コンボリューションレイヤへのメモリの割り当ての例示的な減少が多重経路ニューラルネットワークに静的に適用されるため、多重経路ニューラルネットワークの各々の後続するインスタンス化は全体的に減少した実行時間により行われる。代案として、メモリの割り当ての例示的な減少は、動的に決定され、トポロジー、入力、バッチサイズなどの変化のようなネットワークの変化を説明するために、ニューラルネットワークのインスタンス化に適用される。
コストモデルは、各レイヤの実行時間とコンピューティングリソースの活用率とを関連付けるニューラルネットワークにおいて一般に用いられるレイヤの因果関係リソースプロファイリングに用いられる。因果関係リソースプロファイリング中に考慮されるコンピューティングリソースは、装置コンピューティングユニット、メモリ空間、及びメモリ帯域幅を含む。CPUコンピューティングユニットの場合、コア数を考慮する。GPUコンピューティングユニットの場合、ストリーミングマルチプロセッサ(SM:Streaming multiprocessor)の数を考慮する。FPGAの場合、FPGA領域を考慮する。リソース割り当てのユニットは、一般的に離散値(例えば、コア数、レイヤの多様な具現のためのメモリ/作業空間)である。
多重経路ニューラルネットワークの因果関係リソースプロファイリングの性能分析に用いられる1つの定義は、次の通りである。多重経路ニューラルネットワークへの入力のために、k個の実行ストリームをk個の多重経路ニューラルネットワークの経路に各々入力する。各々のストリームsに対して、順次依存するn個のレイヤlが存在する。1つの経路の各々のレイヤl毎にm個の多様な具現方法がある。各々の具現方法には、実行時間tml,k及び活用のためのリソースセット
Figure 2020119564
がある。定義の目的は、下記の数式1のように、多重経路ニューラルネットワークの全体の実行時間を最小化する全てのレイヤの並列スケジューリング及び具現を見付けることである。
Figure 2020119564
ここで、Kはレイヤの総数であり、Wr,lはレイヤlのリソースrの活用であり、Mは多重経路ニューラルネットワークの実行に利用可能な最大のリソースrであり、αl,tは、レイヤlが時間tで実行中の場合は1、そうでない場合は0である。
リソース割り当ての複雑さを減少させるために、いくつかの発見法が用いられる。例えば、検索空間が除去される。例えば、t>tであり、
Figure 2020119564
である、レイヤlの別の具現jが存在する場合、レイヤlの具現iは除去される。実行時間が比較的長い具現も除去される。例えば、実行時間が長い具現は、比較的少ないリソースの利用を提供し得るが、最適なソリューションの一部ではない可能性が高いため、
Figure 2020119564
の場合、レイヤLの具現kは除去される。
リソース割り当ての複雑さを減少させるまた別の技術は、レイヤのウィンドウベースのリソース割り当てを用いることである。即ち、ウィンドウ又はレイヤのグループは、多重経路ニューラルネットワークの各経路及び深さでレイヤの平均実行時間又は公称実行時間に基づいて形成される。各ストリーム又はレイヤのウィンドウサイズは、調整可能な変数を含む。ウィンドウは多重経路ニューラルネットワークの経路に沿ってスライドするように制御され、最適なリソースの割り当てを見付けるために、ウィンドウ内部のレイヤの性能分析が行われる。
図5は、本発明の一実施形態によるレイヤ500のウィンドウベースのリソース割り当て分析を示す図である。図5を参照すると、第1ウィンドウ501は、多重経路ニューラルネットワークの第1経路503のレイヤと第2経路504のレイヤとの因果関係リソースプロファイリングの分析を行うために定義されて用いられる。第2ウィンドウ502は、第1経路503のレイヤと第2経路504のレイヤとの他の因果関係リソースプロファイリングの分析を行うように同様に定義される。各ストリームの実行時間は、同時実行を完全に達成するために、同一のウィンドウ内でできる限り正確に一致させる。
図6は、データ処理システムの例示的なアーキテクチャ600のブロック図である。一実施形態において、アーキテクチャ600は、図1の多重経路ニューラルネットワークアナライザ100を実行するのに用いられる。他の実施形態において、アーキテクチャ600は、多重経路ニューラルネットワークアナライザ100を実行し、多重経路ニューラルネットワークアナライザ100により提供される最適化された多重経路ニューラルネットワークを実行するのに用いられる。
データ処理システムの例示的なアーキテクチャ600は、少なくとも1つのプロセッサ、例えばシステムバス603又は他の好適な回路を介してメモリ要素602に結合されるプロセッサ601(中央処理装置、CPU)を含む。アーキテクチャ600は、メモリ要素602内にプログラムコードを保存する。プロセッサ601は、システムバス603を介してメモリ要素602からアクセスされたプログラムコードを実行する。このように、プロセッサ601は、特殊のプロセッサとして機能する。メモリ要素602は、ローカルメモリ604や1つ以上の大容量記憶装置605などの1つ以上の物理的メモリ装置を含む。ローカルメモリ604は、プログラムコードが実際に実行される間、一般的に用いられるランダムアクセスメモリ(RAM)又は他の非永久的なメモリ装置である。大容量記憶装置605は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、及び/又は他の永久的なデータ記憶装置として具現される。データ処理システムの例示的なアーキテクチャ600は、実行中に大容量記憶装置605から検索されるべきプログラムコードの回数を減少させるために、少なくとも一部のプログラムコードの一時保存を提供する1つ以上のキャッシュメモリ(図示せず)を更に含む。
データ処理システムの例示的なアーキテクチャ600は、キーボード606、ディスプレイ装置607、及び/又はアーキテクチャ600に選択的に結合されるポインティング装置608などの入出力(I/O)装置を更に含む。一実施形態において、1つ以上の入出力装置は、ディスプレイ装置607として用いられるタッチスクリーンに結合される。このようなディスプレイ装置607は、キーボード606及びポインティング装置608を含んでもよい。1つ以上のネットワークアダプタ609をアーキテクチャ600に結合させることにより、アーキテクチャ600がプライベートネットワーク又はパブリックネットワークを介して、他のシステム、コンピュータシステム、遠隔プリンタ、及び/又は遠隔記憶装置に結合される。モデム、ケーブルモデム、イーサネット(登録商標)カード、及び無線トランシーバは、アーキテクチャ600と共に用いられる多様なタイプのネットワークアダプタ609の例示である。上述のアーキテクチャ600により実施された特定装置において、装置によってネットワークアダプタのタイプが変わる。入出力装置は、アーキテクチャ600に直接結合されるか、又は入出力制御器を介して連結される。
図6を参照すると、メモリ要素602は、オペレーティングシステム610及び1つ以上のアプリケーション611を保存する。一実施形態において、実行可能なプログラムコードの形で具現されるオペレーティングシステム610及びアプリケーション611は、アーキテクチャ600により実行される。このように、オペレーティングシステム610及びアプリケーション611は、アーキテクチャ600の統合部分と見ることができる。アーキテクチャ600により使用され、生成され、及び/又は運用されるオペレーティングシステム610、アプリケーション611、並びに任意のデータは、アーキテクチャ600を用いて実行されるシステムの一部として活用される際に機能性を有する機能的データ構造である。
一実施形態において、アプリケーション611は、例示的なアーキテクチャ600又は例示的なアーキテクチャ600に類似するアーキテクチャを用いるシステムにより実行される際に、図1〜5に示す多様な演算及び機能を行う1つ以上のモジュールを含む。1つ以上のモジュールは、多様な構成要素及び/又は多様な機能ブロックと共に本発明の機能を提供するソフトウェア、ファームウェア、及び/又はハードウェアを含む。
他の実施形態において、例示的なアーキテクチャ600は、通信リンク613を介してプラットフォーム612に結合される。例示的なアーキテクチャ600は、ネットワークアダプタ609を介してプラットフォーム612に結合される。例示的なアーキテクチャ600は、アーキテクチャ600をプラットフォーム612に結合するのに用いるUSB(Universal Serial Bus)インタフェース又は他の通信ポートなどの1つ以上の他の入出力装置を含む。プラットフォーム612は、回路ボードであり、これに結合されたニューラルネットワークアクセラレータ614を含む。一実施形態において、ニューラルネットワークアクセラレータ614は、集積回路(IC)又は複数のICとして具現される。例えば、ニューラルネットワークアクセラレータ614は、フィールド・プログラマブル・ゲート・アレイ(Field programmable gate array)、特定用途向けIC(ASIC:Application specific IC)などのような1つ以上のプログラマブルICとして具現される。
アーキテクチャ600は、図1の多重経路ニューラルネットワーク101のような多重経路ニューラルネットワークにおいて、多様な経路の多様なレイヤにコンピューティングリソースを割り当てるために、本発明の演算を行うように構成される。即ち、アーキテクチャ600は、入出力装置を介して多重経路ニューラルネットワーク101を受信し、多重経路ニューラルネットワークの1つ以上のレイヤで演算し、本発明による多重経路ニューラルネットワークに対する最適化されたコンピューティングリソースの構成を出力する。アーキテクチャ600は、実行するのに最適化された多重経路ニューラルネットワーク101の定義をニューラルネットワークアクセラレータ614に提供する。
図6は、1つの例示に過ぎず、本明細書で説明している構成は、本発明を限定しない。場合によって、アーキテクチャ600を用いて実行された特定のシステムは、図示しているものに比べて、より少ない数の構成要素又はより多くの構成要素を含む。また、アーキテクチャ600の一部として含まれる特定のオペレーティングシステム又はアプリケーションは多様である。
以上、図面を参照しながら本発明の実施形態を説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的思想から逸脱しない範囲内で多様に変更実施することが可能である。
100 多重経路ニューラルネットワークアナライザ
101、300 多重経路ニューラルネットワーク
102 レイヤのストリーム割り当て
103 基準状態を生成し、ウィンドウを生成
104 コストモデルを用いた性能分析によるリソース割り当て
105 装置リソース制約
106 枝刈り(pruning)
107 レイヤリソースのコストモデルテンプレート
108 スケジューラ
109 レイヤのリソース割り当てのアップデート
201 カーネル
202 第2カーネル
301 第1経路
302 第2経路、臨界経路
303 入力
304 意思決定モジュール
401 第1データストリーム
402 第2データストリーム
500 レイヤ
501 第1ウィンドウ
502 第2ウィンドウ
503 第1経路
504 第2経路
600 データ処理システムの例示的なアーキテクチャ
601 プロセッサ
602 メモリ要素
603 システムバス
604 ローカルメモリ
605 大容量記憶装置
606 キーボード
607 ディスプレイ装置
608 ポインティング装置
609 ネットワークアダプタ
610 オペレーティングシステム
611 アプリケーション
612 プラットフォーム
613 通信リンク
614 ニューラルネットワークアクセラレータ

Claims (20)

  1. 多重経路ニューラルネットワークを介する2つ以上の経路と、
    前記多重経路ニューラルネットワークの処理量を制限する前記多重経路ニューラルネットワークを介する臨界経路を含む1つ以上のレイヤを含む第1経路と、
    前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第1割り当てが行われる前記臨界経路の第1レイヤと、
    前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第2割り当ての基準実行時間よりも短く減少させ、前記第1レイヤに対する前記コンピューティングリソースの第2割り当てと相違する前記第1レイヤに対する前記コンピューティングリソースの第1割り当てと、を有することを特徴とする多重経路ニューラルネットワーク。
  2. 前記多重経路ニューラルネットワークの実行前に、前記第1レイヤに対する前記コンピューティングリソースの第1割り当てを行うことを特徴とする請求項1に記載の多重経路ニューラルネットワーク。
  3. 前記多重経路ニューラルネットワークの実行中に、前記第1レイヤに対する前記コンピューティングリソースの第1割り当てを行うことを特徴とする請求項1に記載の多重経路ニューラルネットワーク。
  4. 前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースは、多数のコンピューティングユニットコア、メモリサイズ、及びメモリ帯域幅を含むことを特徴とする請求項1に記載の多重経路ニューラルネットワーク。
  5. 前記臨界経路は、コンボリューション関数を提供するレイヤを含むことを特徴とする請求項1に記載の多重経路ニューラルネットワーク。
  6. 多重経路ニューラルネットワークを介する2つ以上の経路を含む多重経路ニューラルネットワークに、前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースを割り当てるコンピューティングリソースの第1コンピューティングリソース割り当てに基づいて、前記多重経路ニューラルネットワークの基準実行時間を決定する段階と、
    前記2つ以上の経路に対して1つ以上であると共に、各々が前記第1コンピューティングリソース割り当てと相違する第2コンピューティングリソース割り当てに対して、前記多重経路ニューラルネットワークを介する2つ以上の経路の実行時間を繰り返し決定する段階と、
    前記多重経路ニューラルネットワークの全体の基準実行時間よりも短い前記多重経路ニューラルネットワークの全体の実行時間を提供する第1経路の第1レイヤに対する第2コンピューティングリソース割り当てを識別する段階と、を有することを特徴とする多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  7. 前記多重経路ニューラルネットワークの全体の基準実行時間は、前記多重経路ニューラルネットワークの処理量を制限する前記多重経路ニューラルネットワークの臨界回路を介する実行時間に対応することを特徴とする請求項6に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  8. 前記多重経路ニューラルネットワークの全体の基準実行時間よりも短い前記多重経路ニューラルネットワークの全体の実行時間を提供するように識別された前記第1経路の前記第1レイヤに対する前記第2コンピューティングリソース割り当てを行う段階を更に含むことを特徴とする請求項6に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  9. 前記多重経路ニューラルネットワークの実行前に、識別された前記第1経路の前記第1レイヤに対する前記2コンピューティングリソース割り当てを行う段階を更に含むことを特徴とする請求項8に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  10. 前記多重経路ニューラルネットワークの実行中に、識別された前記第1経路の前記第1レイヤに対する前記2コンピューティングリソース割り当てを行う段階を更に含むことを特徴とする請求項8に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  11. 前記第2コンピューティングリソース割り当てを識別する段階は、ユーザから前記第2コンピューティングリソース割り当ての選択を受信する段階を更に含むことを特徴とする請求項6に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  12. 前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースは、多数のコンピューティングユニットコア、メモリサイズ、及びメモリ帯域幅を含むことを特徴とする請求項6に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  13. 前記2つ以上の経路のうちの少なくとも1つは、コンボリューション関数を提供するレイヤを含むことを特徴とする請求項6に記載の多重経路ニューラルネットワークのレイヤにリソースを割り当てる方法。
  14. 多重経路ニューラルネットワークを介する2つ以上の経路と1つ以上のレイヤを含む2つ以上の経路の第1経路とを含む多重経路ニューラルネットワークを受信するインタフェースと、
    前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースの第1割り当てが行われる前記多重経路ニューラルネットワークを介する臨界経路の1つ以上のレイヤを含む前記多重経路ニューラルネットワークを生成する処理装置と、を備え、
    前記臨界経路は、前記多重経路ニューラルネットワークの処理量を制限し、
    前記コンピューティングリソースの第1割り当ては、前記多重経路ニューラルネットワークの実行時間を前記多重経路ニューラルネットワークにおけるコンピューティングリソースの第2割り当ての基準実行時間未満に減少させ、
    前記臨界経路の第1レイヤに対する前記コンピューティングリソースの第1割り当ては、前記臨界経路の第1レイヤに対する前記コンピューティングリソースの第2割り当てと相違することを特徴とする多重経路ニューラルネットワークアナライザ。
  15. 前記多重経路ニューラルネットワークを実行することが可能なコンピューティングリソースは、多数のコンピューティングユニットコア、メモリサイズ、及びメモリ帯域幅を含むことを特徴とする請求項14に記載の多重経路ニューラルネットワークアナライザ。
  16. 前記多重経路ニューラルネットワークアナライザは、
    前記多重経路ニューラルネットワークを実行するための前記コンピューティングリソースの第2割り当てに基づいて、前記多重経路ニューラルネットワークを介する2つ以上の経路の基準実行時間を決定し、
    前記2つ以上の経路における少なくとも1つのコンピューティングリソースの第3割り当てに対して、前記多重経路ニューラルネットワークを介する2つ以上の実行時間を繰り返し決定し、
    前記多重経路ニューラルネットワークの基準実行時間よりも短い多重経路ニューラルネットワークの実行時間を提供するコンピューティングリソースの第3割り当てを識別し、
    前記コンピューティングリソースの第3割り当ては、各々前記コンピューティングリソースの第2割り当てと相違することを特徴とする請求項14に記載の多重経路ニューラルネットワークアナライザ。
  17. 前記多重経路ニューラルネットワークの前記基準実行時間は、前記臨界経路における前記コンピューティングリソースの第2割り当てのための前記多重経路ニューラルネットワークの臨界経路を介する実行時間に対応することを特徴とする請求項16に記載の多重経路ニューラルネットワークアナライザ。
  18. 前記処理装置は、前記臨界経路における前記コンピューティングリソースの第3割り当てが前記臨界経路における前記コンピューティングリソースの第1割り当てになるように更に割り当てることを特徴とする請求項16に記載の多重経路ニューラルネットワークアナライザ。
  19. 前記処理装置は、前記多重経路ニューラルネットワークの実行前に、前記臨界経路における前記コンピューティングリソースの第1割り当てを行うことを特徴とする請求項18に記載の多重経路ニューラルネットワークアナライザ。
  20. 前記処理装置は、前記多重経路ニューラルネットワークの実行中に、前記臨界経路における前記コンピューティングリソースの第1割り当てを行うことを特徴とする請求項18に記載の多重経路ニューラルネットワークアナライザ。
JP2020006404A 2019-01-23 2020-01-17 多重経路ニューラルネットワーク及びそのレイヤにリソースを割り当てる方法並びに多重経路ニューラルネットワークアナライザ Pending JP2020119564A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962796071P 2019-01-23 2019-01-23
US62/796,071 2019-01-23
US16/442,440 US11620510B2 (en) 2019-01-23 2019-06-14 Platform for concurrent execution of GPU operations
US16/442,440 2019-06-14

Publications (1)

Publication Number Publication Date
JP2020119564A true JP2020119564A (ja) 2020-08-06

Family

ID=71608978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020006404A Pending JP2020119564A (ja) 2019-01-23 2020-01-17 多重経路ニューラルネットワーク及びそのレイヤにリソースを割り当てる方法並びに多重経路ニューラルネットワークアナライザ

Country Status (5)

Country Link
US (2) US11620510B2 (ja)
JP (1) JP2020119564A (ja)
KR (2) KR20200091790A (ja)
CN (1) CN111476344A (ja)
TW (1) TWI827792B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11537436B2 (en) * 2019-10-02 2022-12-27 Qualcomm Incorporated Method of configuring a memory block allocation of a machine learning network
CN112349419A (zh) * 2020-08-27 2021-02-09 北京颢云信息科技股份有限公司 一种基于医学数据及人工智能的真实世界研究方法
KR20220052546A (ko) * 2020-10-21 2022-04-28 삼성전자주식회사 데이터 처리 방법 및 장치 및 이를 포함한 전자 장치 및 가속기 시스템
US20230071278A1 (en) * 2021-09-03 2023-03-09 International Business Machines Corporation Using a machine learning module to determine a group of execution paths of program code and a computational resource allocation to use to execute the group of execution paths
CN114091688B (zh) * 2021-11-25 2022-05-20 北京九章云极科技有限公司 一种计算资源获取方法、装置、电子设备和存储介质
CN117114055B (zh) * 2023-10-24 2024-04-09 北京航空航天大学 面向工业应用场景的fpga二值神经网络加速方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187309A (ja) * 1992-12-21 1994-07-08 Hitachi Ltd プロセッサ割付制御方式
JP2013171355A (ja) * 2012-02-20 2013-09-02 Hitachi Ltd 計算機システム
JP2018139064A (ja) * 2017-02-24 2018-09-06 日本電信電話株式会社 仮想計算機システムおよびそのリソース割当て方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5704012A (en) 1993-10-08 1997-12-30 International Business Machines Corporation Adaptive resource allocation using neural networks
US7656959B2 (en) * 2001-04-13 2010-02-02 Agere Systems Inc. Pipelined decision-feedback unit in a reduced-state viterbi detector with local feedback
TWI246114B (en) * 2002-09-24 2005-12-21 Asml Netherlands Bv Lithographic apparatus, device manufacturing method, and device manufactured thereby
US20060253677A1 (en) * 2005-05-04 2006-11-09 Arm Limited Data access prediction
US8347293B2 (en) * 2005-10-20 2013-01-01 Network Appliance, Inc. Mutual exclusion domains to perform file system processes on stripes
US7606807B1 (en) * 2006-02-14 2009-10-20 Network Appliance, Inc. Method and apparatus to utilize free cache in a storage system
US20080071755A1 (en) * 2006-08-31 2008-03-20 Barsness Eric L Re-allocation of resources for query execution in partitions
TWI313437B (en) * 2006-09-20 2009-08-11 Nat Chiao Tung Universit Matching method for interdependent scheduling
CN101908003B (zh) * 2009-06-05 2014-10-22 Sap股份公司 并行化查询的多核调度
US8627331B1 (en) * 2010-04-30 2014-01-07 Netapp, Inc. Multi-level parallelism of process execution in a mutual exclusion domain of a processing system
US8868867B2 (en) * 2011-09-15 2014-10-21 The Regents Of The University Of California Method for reducing latency of accessing data stored in a file system on a computer storage device by caching file system permission information in the computer storage device
US20140133574A1 (en) * 2012-11-13 2014-05-15 Mediatek Inc. Method and Apparatus for Sign Data Hiding of Video and Image Data
JP2014179957A (ja) * 2013-03-15 2014-09-25 Toshiba Corp 画像符号化装置および画像復号化装置
WO2015058063A1 (en) * 2013-10-17 2015-04-23 Georgia Tech Research Corporation An improved lattice-reduction-aided k-best algorithm for low complexity and high performance communications
US20150220420A1 (en) * 2014-01-31 2015-08-06 Schlumberger Technology Corporation Performance evaluation and tuning systems and methods
WO2015179632A1 (en) 2014-05-22 2015-11-26 Scheffler Lee J Methods and systems for neural and cognitive processing
US10346941B2 (en) 2014-05-30 2019-07-09 Apple Inc. System and method for unified application programming interface and model
US20160164537A1 (en) * 2014-12-08 2016-06-09 Samsung Electronics Co., Ltd. Method and apparatus for parallel concatenated ldpc convolutional codes enabling power-efficient decoders
US9779469B2 (en) 2015-08-17 2017-10-03 Qualcomm Incorporated Register spill management for general purpose registers (GPRs)
US9443192B1 (en) * 2015-08-30 2016-09-13 Jasmin Cosic Universal artificial intelligence engine for autonomous computing devices and software applications
US20170123799A1 (en) * 2015-11-03 2017-05-04 Intel Corporation Performing folding of immediate data in a processor
US10871536B2 (en) * 2015-11-29 2020-12-22 Arterys Inc. Automated cardiac volume segmentation
US10891540B2 (en) * 2015-12-18 2021-01-12 National Technology & Engineering Solutions Of Sandia, Llc Adaptive neural network management system
US10177782B2 (en) * 2015-12-26 2019-01-08 Intel Corporation Hardware apparatuses and methods for data decompression
US10942673B2 (en) * 2016-03-31 2021-03-09 Hewlett Packard Enterprise Development Lp Data processing using resistive memory arrays
US20180039884A1 (en) * 2016-08-03 2018-02-08 Barnaby Dalton Systems, methods and devices for neural network communications
US10116582B2 (en) * 2016-08-08 2018-10-30 Bank Of America Corporation Resource assignment system with allocation assist
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
WO2018057749A1 (en) * 2016-09-26 2018-03-29 Arizona Board Of Regents On Behalf Of Arizona State University Cascaded computing for convolutional neural networks
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US20180308006A1 (en) 2017-04-24 2018-10-25 William Atkinson Method and Apparatus for Dynamic Evolving Cognitive questioning querying architecture iterative problem solving dynamically evolving feedback loop
US10970630B1 (en) * 2017-06-15 2021-04-06 National Technology & Engineering Solutions Of Sandia, Llc Neuromorphic computing architecture with dynamically accessible contexts
GB2563473B (en) * 2017-06-15 2019-10-02 Accelercomm Ltd Polar coder with logical three-dimensional memory, communication unit, integrated circuit and method therefor
WO2019002474A1 (en) * 2017-06-28 2019-01-03 Deepmind Technologies Limited GENERALIZED MEDICAL IMAGING ANALYSIS USING NEURONAL SEGMENTATION AND CLASSIFICATION NETWORKS
US11694066B2 (en) * 2017-10-17 2023-07-04 Xilinx, Inc. Machine learning runtime library for neural network acceleration
CN107832840B (zh) * 2017-10-31 2020-05-22 中国科学院计算技术研究所 一种用于神经网络处理器的方法
US20190044883A1 (en) * 2018-01-11 2019-02-07 Intel Corporation NETWORK COMMUNICATION PRIORITIZATION BASED on AWARENESS of CRITICAL PATH of a JOB
CN108875752B (zh) * 2018-03-21 2022-06-07 北京迈格威科技有限公司 图像处理方法和装置、计算机可读存储介质
US11568220B2 (en) * 2018-07-25 2023-01-31 International Business Machines Corporation Deep neural network implementation
US20200042856A1 (en) * 2018-07-31 2020-02-06 International Business Machines Corporation Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit
US10963300B2 (en) * 2018-12-06 2021-03-30 Raytheon Company Accelerating dataflow signal processing applications across heterogeneous CPU/GPU systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187309A (ja) * 1992-12-21 1994-07-08 Hitachi Ltd プロセッサ割付制御方式
JP2013171355A (ja) * 2012-02-20 2013-09-02 Hitachi Ltd 計算機システム
JP2018139064A (ja) * 2017-02-24 2018-09-06 日本電信電話株式会社 仮想計算機システムおよびそのリソース割当て方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ジュロン・オーレリアン, SCIKIT−LEARNとTENSORFLOWによる実践機械学習, vol. 初版, JPN6023038542, 25 April 2018 (2018-04-25), pages 348 - 349, ISSN: 0005158042 *

Also Published As

Publication number Publication date
US11620510B2 (en) 2023-04-04
TW202029064A (zh) 2020-08-01
KR20200091789A (ko) 2020-07-31
KR20200091790A (ko) 2020-07-31
US20200234115A1 (en) 2020-07-23
CN111476344A (zh) 2020-07-31
US11687771B2 (en) 2023-06-27
US20200234146A1 (en) 2020-07-23
TWI827792B (zh) 2024-01-01

Similar Documents

Publication Publication Date Title
JP2020119564A (ja) 多重経路ニューラルネットワーク及びそのレイヤにリソースを割り当てる方法並びに多重経路ニューラルネットワークアナライザ
JP5509107B2 (ja) 再構成可能なプログラマブルロジックデバイスコンピュータシステム
JP5934094B2 (ja) データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング
US7584465B1 (en) Memory mapping for single and multi-processing implementations of code generated from a block diagram model
US9563474B2 (en) Methods for managing threads within an application and devices thereof
RU2530345C2 (ru) Экземпляры планировщика в процессе
US20160202999A1 (en) A Computing Platform, A Reconfigurable Hardware Device And A Method for Simultaneously Executing Processes On Dynamically Reconfigurable Hardware Device, Such As An FPGA, As Well As Instruction Set Processors, Such As A CPU, And A Related Computer Readable Medium
JP2020537784A (ja) ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ
US8707280B2 (en) Using parallel processing constructs and dynamically allocating program portions
CN111522640A (zh) 计算图的并行执行方法和设备
Lee et al. Orchestrating multiple data-parallel kernels on multiple devices
TW202109285A (zh) 用以致能工作負載之靜態映射的亂序管線化執行之方法及設備
US20080126761A1 (en) Method and apparatus for scheduling optimization
US11221979B1 (en) Synchronization of DMA transfers for large number of queues
KR102238600B1 (ko) 스케쥴러 컴퓨팅 장치, 그것을 포함하는 분산 컴퓨팅 시스템의 데이터 노드 및 그것의 방법
WO2014027444A1 (ja) スケジューリング装置、及び、スケジューリング方法
CN117355819A (zh) 一种计算模型的处理方法及装置
Kaufmann et al. The {HCl} Scheduler: Going all-in on Heterogeneity
CN108241508B (zh) 处理OpenCL内核的方法及用于该方法的计算设备
Tabish et al. X-Stream: Accelerating streaming segments on MPSoCs for real-time applications
US11442794B1 (en) Event assignment for synchronization of concurrent execution engines
Rubini et al. Modeling shared-memory multiprocessor systems with AADL
Kaneko et al. A SYCL-based high-level programming framework for HPC programmers to use remote FPGA clusters
Majumder et al. Task allocation strategies for fpga based heterogeneous system on chip
JP2024040198A (ja) 同期プロセッサのためのシャーディング

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240319