JP7461433B2 - リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法 - Google Patents

リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法 Download PDF

Info

Publication number
JP7461433B2
JP7461433B2 JP2022163999A JP2022163999A JP7461433B2 JP 7461433 B2 JP7461433 B2 JP 7461433B2 JP 2022163999 A JP2022163999 A JP 2022163999A JP 2022163999 A JP2022163999 A JP 2022163999A JP 7461433 B2 JP7461433 B2 JP 7461433B2
Authority
JP
Japan
Prior art keywords
tiling
hierarchy
virtual
resource
neural network
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
JP2022163999A
Other languages
English (en)
Other versions
JP2023059847A (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.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
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
Priority claimed from KR1020220092237A external-priority patent/KR20230054259A/ko
Application filed by Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of JP2023059847A publication Critical patent/JP2023059847A/ja
Application granted granted Critical
Publication of JP7461433B2 publication Critical patent/JP7461433B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/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/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法に関する。
最近、深層ニューラルネットワークは多様な分野で高い正確度を示し、多様な装置と応用に広く活用されている。深層ニューラルネットワークは、既存の機械学習手法とは異なり、データから分類器のみならず、特徴を学習して高い正確度を示す。
一方、深層ニューラルネットワークを用いるためには、多くの格納空間と高い計算性能を必要とする問題があり、このような問題を解決するための一方策として、クラウドコンピューティングベースで深層ニューラルネットワークを活用することがある。しかし、クラウドコンピューティングは、サーバと装置との間の通信によって電力消耗が非常に大きいという問題がある。
このために、オンデバイスにおいて深層ニューラルネットワークを活用できるようにするための深層ニューラルネットワーク加速器が提案された。深層ニューラルネットワーク加速器の場合、深層ニューラルネットワーク推論加速機能を内蔵することでコンピューティングリソースに比べて深層ニューラルネットワーク推論時間を短縮できるだけでなく、既存の高性能サーバに比べて費用が安価で電力消費を低減できるというメリットがある。
しかし、初期の深層ニューラルネットワーク加速器は、限られたデータフローのみを行うように設計されていて、深層ニューラルネットワーク応用による最適なデータフローを使用できない問題がある。
韓国公開特許公報第10-2021-0039921号
本発明が解決しようとする課題は、深層ニューラルネットワーク加速器において、推論を行う途中にメモリ、コアなどのリソースを再設定できるようにして推論中の消耗電力を調整できる、リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法を提供することである。
ただし、本発明が解決しようとする課題は上記の課題に限定されず、さらに他の課題が存在し得る。
上述した課題を解決するための、本発明の第1側面によるリソース再設定可能な深層ニューラルネットワーク加速器は、外部メモリ階層における深層ニューラルネットワークパラメータデータ(以下、データ)を複数のタイルに分割してロードするスクラッチパッドメモリ階層と、前記スクラッチパッドメモリ階層のタイリングされたデータをロードするレジスタファイルメモリ階層とを含むメモリ階層と、前記レジスタファイルメモリ階層にロードされたデータに対する推論演算を処理する複数のコアとを含み、前記メモリ階層は、所定のタイリングサイズに相応するように、前のメモリ階層からタイリングされたデータをロードする任意の位置に追加された仮想タイリング階層を含む。
また、本発明の第2側面による深層ニューラルネットワーク加速器におけるリソース再設定方法は、当該ループが行われることにより、仮想タイリングレジスタの値を読出すステップと、前記読出された仮想タイリングレジスタの値に基づいて仮想タイリング階層のタイリングサイズを設定するステップと、前記仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換するステップと、前記タイリングサイズに応じて使用量が調整された関連リソースのうち未使用の関連リソースのリソース割当を解除するステップとを含む。
さらに、本発明の第3側面によるリソース再設定システムは、スクラッチパッドメモリ階層、レジスタファイルメモリ階層、およびコアの少なくとも1つを含む関連リソースと、仮想タイリングレジスタの値に基づいてタイリングサイズが設定される仮想タイリング階層とを含む深層ニューラルネットワーク加速器と、前記深層ニューラルネットワーク加速器の推論実行中に仮想タイリングレジスタの値を設定して関連リソースの活性化の有無を決定するホストシステムとを含む。
上述した課題を解決するための、本発明の他の側面によるコンピュータプログラムは、ハードウェアであるコンピュータと結合されてリソース再設定方法を実行し、コンピュータ読取可能記録媒体に格納される。
本発明のその他の具体的な事項は詳細な説明および図面に含まれている。
上述した本発明の一実施例によれば、ホストシステムは、深層ニューラルネットワーク加速器が推論を行っている途中にもリソースの一部を非活性化または再活性化して加速器の消耗電力を制御することができる。このような機能は、1秒あたり数回から数十回のPower offが発生するインターミテントコンピューティング環境など電力消耗を積極的に管理しなければならないシステムの管理効率を増大させることができる。
本発明の効果は以上に言及された効果に制限されず、言及されていないさらに他の効果は以下の記載から当業者に明確に理解されるであろう。
深層ニューラルネットワーク加速器におけるデータフローの一例を示す図である。 本発明の一実施例によるリソース再設定システムのブロック図である。 仮想タイリング階層によるデータフローの一例を示す図である。 仮想タイリング階層によるデータフローの他の例を示す図である。 本発明の一実施例によるリソース再設定方法のフローチャートである。
本発明の利点および特徴、そしてそれらを達成する方法は添付した図面とともに詳細に後述する実施例を参照すれば明確になる。しかし、本発明は以下に開示される実施例に制限されるものではなく、互いに異なる多様な形態で実現可能であり、単に本実施例は本発明の開示が完全となるようにし、本発明の属する技術分野における当業者に本発明の範疇を完全に知らせるために提供されるものであり、本発明は請求項の範疇によってのみ定義される。
本明細書で使われた用語は実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数形は、文言で特に言及しない限り、複数形も含む。明細書で使われる「含む(comprises)」および/または「含む(comprising)」は、言及された構成要素のほか、1つ以上の他の構成要素の存在または追加を排除しない。明細書全体にわたって同一の図面符号は同一の構成要素を指し示し、「および/または」は、言及された構成要素のそれぞれおよび1つ以上のすべての組み合わせを含む。「第1」、「第2」などが多様な構成要素を述べるために使われるが、これらの構成要素はこれらの用語によって制限されないことはもちろんである。これらの用語は、単に1つの構成要素を他の構成要素と区別するために使うものである。したがって、以下に言及される第1構成要素は、本発明の技術的思想内で第2構成要素であってもよいことはもちろんである。
他に定義されなければ、本明細書で使われるすべての用語(技術および科学的用語を含む)は、本発明の属する技術分野における当業者に共通して理解できる意味で使われるであろう。また、一般的に使われる事前に定義されている用語は、明らかに特に定義されていない限り、理想的または過度に解釈されない。
以下、まず、当業者の理解のために、本発明が着目した背景について説明した後、本発明について詳しく説明する。
深層ニューラルネットワーク加速器は、深層ニューラルネットワークによる推論を迅速に行うための装置である。深層ニューラルネットワーク加速器では、小さなレジスタファイル(Register File)と演算ユニット(Functional Unit)を含むコアが並列的に演算を処理する。また、深層ニューラルネットワーク加速器は、メモリ階層を含むことができ、一般的に、外部メモリ-内部スクラッチパッドメモリ(Scratchpad Memory)-レジスタファイルのメモリ階層を含む。
深層ニューラルネットワークは、複数段階のネストされたループ(Nested Loop)で構成されており、多量のパラメータデータを含んでいる。このとき、深層ニューラルネットワーク加速器内のスクラッチパッドメモリは、深層ニューラルネットワークのすべてのパラメータデータを一度にロードできないので、パラメータデータをより小さいサイズに分割した後に順次にロードする。これをタイリング(Tiling)という。このようなタイリングは、スクラッチパッドメモリとコア内のレジスタファイルメモリとの間でも発生する。
また、深層ニューラルネットワークのループは、前のループとの依存性が存在しないため、任意にアクセス順序を変更しても(Loop Interchange)、最終結果が同一の性質を有する。したがって、深層ニューラルネットワークは、タイリングとループのネストされた順序によって非常に多い方法で推論を行うことができ、このような推論を行う方法をデータフロー(Dataflow)という。
図1は、深層ニューラルネットワーク加速器におけるデータフローの一例を示す図である。
図1は、4個のコアを有する深層ニューラルネットワーク加速器のデータフローを単純化して示す図である。図1のデータフローでは、外部メモリ階層(L1)における深層ニューラルネットワークパラメータデータ(以下、データ)を2個の単位に分けてスクラッチパッドメモリ階層(L2)にロードし、スクラッチパッドメモリ階層(L2)を2個の単位に分けて4個のコア(L3)でデータに対する推論演算を行っている。ロードされていないデータは時間によって順次に処理して、図1の例においては、計4回の反復によりデータ全体を処理することができる。
一方、初期の深層ニューラルネットワーク加速器は、限られた種類のデータフローのみを行うように設計されていて、深層ニューラルネットワークの応用特性によって最適なデータフローを使用できない場合が発生した。
このような限界を改善するために、NoC(Network on Chip)の構成を任意に変更できるようにするなどの再設定可能な深層ニューラルネットワーク加速器アーキテクチャが研究されている。
しかし、このようなアーキテクチャの場合、深層ニューラルネットワーク加速器が推論を行う途中にリソースに対する再設定を行うことが不可能である。
このような問題を解消するために、本発明の一実施例は、深層ニューラルネットワーク加速器が推論を行う途中にリソース再設定を実行可能にして、推論の正確度を維持しながらもシステムが精密に電力を管理できるようにする。このような特性は、1秒に最大数十回の電力枯渇が発生するインターミテントコンピューティング(intermittent computing)のような環境の実行効率を高めるのに役立つことができる。
以下、図2~図4を参照して、本発明の一実施例によるリソース再設定システム1および深層ニューラルネットワーク加速器100について説明する。
図2は、本発明の一実施例によるリソース再設定システム1のブロック図である。図3は、仮想タイリング階層(L3)によるデータフローの一例を示す図である。図4は、仮想タイリング階層(L2)によるデータフローの他の例を示す図である。
本発明の一実施例によるリソース再設定システム1は、深層ニューラルネットワーク加速器100と、ホストシステム200とを含む。
深層ニューラルネットワーク加速器100は、スクラッチパッドメモリ110、レジスタファイルメモリ(図示せず)、およびコア130の少なくとも1つを含む関連リソースと、仮想タイリングレジスタ120により提供される仮想タイリング階層とを含む。ここで、関連リソースは、仮想タイリング階層によって調整されるリソースを意味する。
本発明の一実施例において、複数のコア130は、レジスタファイルメモリ階層にロードされたデータに対する推論演算を行う。
本発明の一実施例において、メモリ階層は、外部メモリ階層と、深層ニューラルネットワーク加速器100の内部のスクラッチパッドメモリ階層と、レジスタファイルメモリ階層とで構成される。
スクラッチパッドメモリ階層は、外部メモリ階層におけるデータを複数のタイルに分割してロードする。そして、レジスタファイルメモリ階層は、スクラッチパッドメモリ階層のタイリングされたデータをロードする。
ここで、本発明の一実施例による深層ニューラルネットワーク加速器100は、仮想タイリング階層を追加的に備えることを特徴とする。仮想タイリング階層は、所定のタイリングサイズに相応するように、前のメモリ階層からタイリングされたデータをロードし、メモリ階層内の任意の位置に追加される。
一実施例として、仮想タイリング階層は、予め構成されたデータフローに追加されて、推論演算の実行中に変更可能なタイリング階層である。本発明の一実施例は、仮想タイリング階層のタイリングサイズに基づいて関連リソースの使用量を調整することができる。
そして、関連リソースの使用量が調整されることにより、未使用の関連リソースはリソース割当が解除される。一例として、仮想タイリングによって使用されない関連リソースは、パワーゲーティング(Power Gating)のような電力遮断手法により電力消耗を制限することができる。
図3の実施例において、仮想タイリング階層(L3)は、スクラッチパッドメモリ階層(L2)とレジスタファイルメモリ階層(L4)との間に存在し、これによってコア130の使用量を調整している。
このとき、仮想タイリング階層(L3)のタイリングサイズは、毎ループを開始する度にアップデートされ、これによって使用するコア130の数が変更可能である。
図3の実施例では、コア130が関連リソースに設定されて、仮想タイリング階層(L3)のタイリングサイズの変化に反比例して作動するコア130の数が調整される。すなわち、当該ループの実行時、タイリングサイズがN(Nは2以上の自然数)個に決定される場合、複数のコア130のうち1/N個のコアが当該ループを行うためのリソースに割当てられる。
例えば、スクラッチパッドメモリ階層(L2)の1番目のタイルを処理する時には、仮想タイリング階層(L3)のタイリングサイズが2個に設定され、これによって4個のコア130のうち半分のコアのみを使用する代わりに2倍の反復推論演算を行う。
これに対し、スクラッチパッドメモリ階層(L2)の2番目のタイルを処理する時には、仮想タイリング階層(L3)のタイリングサイズが4個に変更設定され、これによって4個のコア130のうち1つのコアのみが活性化された状態で推論演算を行い、4回の反復演算を行う。
本発明の一実施例において、関連リソースは、コア130のほかにも、スクラッチパッドメモリ階層、レジスタファイルメモリ階層などになってもよい。
他の例として、仮想タイリング階層(L2)は、外部メモリ階層(L1)とスクラッチパッドメモリ階層(L3)との間に存在して、スクラッチパッドメモリ110の使用を調整するように設定可能である。
図4の実施例では、スクラッチパッドメモリ110が関連リソースに設定されて、仮想タイリング階層(L2)のタイリングサイズの変化に反比例して作動するスクラッチパッドメモリ110の数が調整される。すなわち、当該ループの実行時、タイリングサイズがN(Nは2以上の自然数)個に決定される場合、スクラッチパッドメモリ階層(L3)は、1/N個が当該ループを行うためのリソースに割当てられる。
例えば、外部メモリ階層(L1)の1番目のタイルを処理する時には、仮想タイリング階層(L2)のタイリングサイズが2個に設定され、これによってスクラッチパッドメモリ階層(L3)は半分のみがリソースとして使用され、これに対応するように4個のコア130のうち半分のコアのみが使用され、その代わりに2倍の反復推論演算を行う。この時、スクラッチパッドメモリ階層(L3)は、仮想タイリング階層(L2)が設定される前には、図1に示されるように、コア130の個数、または外部メモリ階層(L1)のタイリングサイズに比例して分割設定されていてもよい。
これに対し、外部メモリ階層(L1)の2番目のタイルを処理する時には、仮想タイリング階層(L2)のタイリングサイズが4個に変更設定され、これによってスクラッチパッドメモリ階層(L3)は4個の単位に分割されて使用され、これに対応するように4個のコア130のうち1つのコアのみが活性化された状態で推論演算を行い、4回の反復演算を行う。
このように、本発明の一実施例は、スクラッチパッドメモリ階層、レジスタファイルメモリ階層、コアなどの個別関連リソースのリソース割当を仮想タイリング階層により調整することができ、実施例により、複数の関連リソースを同時に調整することもできる。
上述のように、1つのリソースが関連づけられている場合、タイリングサイズがN個の場合、関連リソースの大きさは1/N個になる。これとは異なり、複数のリソースが関連づけられている場合、関連リソースをアップデートする規則が必要であり、これはハードウェアまたはソフトウェア的に提供可能である。
一方、本発明の一実施例において、仮想タイリング階層の位置は、ハードウェアまたはソフトウェア的に設定可能である。一実施例として、仮想タイリング階層は、ハードウェア的にスクラッチパッドメモリ階層とコア(レジスタファイルメモリ階層)との間に配置して深層ニューラルネットワーク加速器100を設計することができる。他の実施例としては、ソフトウェアインターフェースを介して仮想タイリングの位置をホストシステム200が設定できるように実現可能である。
再度図2を参照すれば、仮想タイリングレジスタ120は、深層ニューラルネットワーク加速器100の構造に追加されるレジスタまたはメモリの特定アドレスであって、ホストシステム200は、非同期的に仮想タイリングレジスタ120の値を変更することができる。
この時、ホストシステム200は、任意のアルゴリズムによりタイリングレジスタの値を決定することができる。一実施例として、ホストシステム200は、目標電力レベルに応じたタイリングサイズを予め計算したテーブルを用いることができる。他の実施例として、ホストシステム200は、カーネルを介してリアルタイムにタイリングサイズを計算して深層ニューラルネットワーク加速器100のタイリングレジスタの値をアップデートすることができる。
ホストシステム200によって仮想タイリングレジスタ120の値が決定されると、深層ニューラルネットワーク加速器100は、仮想タイリング階層の実行を開始する前、仮想タイリングレジスタ120の値に基づいてタイリングサイズを設定し、関連リソースのタイリングサイズを変更する。
一実施例として、仮想タイリング階層のタイリングサイズは、深層ニューラルネットワークの毎ループを行う度にアップデートされる。毎度のループが行われる前、深層ニューラルネットワーク加速器100は、仮想タイリングレジスタ120の値を読出し、読出された仮想タイリングレジスタ120の値に基づいてタイリングサイズを設定する。これにより、関連リソースのタイリングサイズが決定され、関連リソースのタイリングサイズが決定された後には、未使用の関連リソースに対するリソース割当は解除するなど関連リソースに対する処理を行う。
ただし、本発明の実施例において、タイリングサイズは、全体ループに同一にアップデートされて全体ループが行われてもよいことはもちろんである。
以下、図5を参照して、本発明の一実施例によるリソース再設定システム1の深層ニューラルネットワーク加速器100により行われるリソース再設定方法について説明する。
図5は、本発明の一実施例によるリソース再設定方法のフローチャートである。
深層ニューラルネットワーク加速器100は、当該ループが開始されることにより(S105)、仮想タイリング階層が存在するか否かを確認する(S110)。
確認の結果、仮想タイリング階層が存在しない場合(S110-N)、一般的な手順でループを行う(S135)。
これとは異なり、確認の結果、仮想タイリング階層が存在する場合(S110-Y)、仮想タイリングレジスタ120の値を読出す(S115)。
そして、読出された仮想タイリングレジスタ120の値に基づいて仮想タイリング階層のタイリングサイズを設定する(S120)。
次に、仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換し(S125)、タイリングサイズに応じて使用量が調整された関連リソースのうち未使用の関連リソースのリソース割当を解除する(S130)。以後、深層ニューラルネットワーク加速器100は、再設定されたリソースで当該ループを行う(S135)。
上述した過程は、全体ループ実行が完了するまで反復で行われる(S140)。
一方、上述した説明において、ステップS105~S140は、本発明の実施形態により、追加的なステップにさらに分割されるか、より少ないステップに組み合わされてもよい。また、一部のステップは、必要に応じて省略されてもよく、ステップ間の順序が変更されてもよい。これとともに、その他省略された内容であっても、図2~図4の内容は図5のリソース再設定方法にも適用可能である。
以上、上述した本発明の一実施例は、ハードウェアであるコンピュータと結合されて実行されるために、プログラム(またはアプリケーション)で実現されて媒体に格納される。
上述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムで実現された前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み込み可能なC、C++、JAVA(登録商標)、Ruby、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行する必要な機能を定義した関数などに関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順どおりに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加情報やメディアが前記コンピュータの内部または外部メモリのどの位置(アドレス番地)で参照されるべきかに対するメモリ参照関連コードをさらに含むことができる。さらに、前記コンピュータのプロセッサが前記機能を実行させるために、遠隔(Remote)にある何らかの他のコンピュータやサーバなどと通信が必要な場合、コードは、前記コンピュータの通信モジュールを用いて遠隔にあるどのような他のコンピュータやサーバなどとどのように通信すべきか、通信時にどのような情報やメディアを送受信すべきか、などに対する通信関連コードをさらに含むことができる。
前記格納される媒体は、レジスタ、キャッシュ、メモリなどのように、短い瞬間にデータを格納する媒体ではなく、半永続的にデータを格納し、機器によって読取(reading)可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶装置などがあるが、これらに制限されない。すなわち、前記プログラムは、前記コンピュータ接続可能な多様なサーバ上の多様な記録媒体またはユーザの前記コンピュータ上の多様な記録媒体に格納されてもよい。また、前記媒体は、ネットワークで連結されたコンピュータシステムに分散して、分散方式でコンピュータ読出可能なコードが格納されてもよい。
上述した本発明の説明は例示のためのものであり、本発明の属する技術分野における当業者は、本発明の技術的思想や必須の特徴を変更することなく他の具体的な形態で容易に変形可能であることを理解するであろう。そのため、以上に述べた実施例は、あらゆる面で例示的であり、限定的ではないと理解しなければならない。例えば、単一形で説明されている各構成要素は分散して実施されてもよいし、同様に、分散したと説明されている構成要素も結合された形態で実施されてもよい。
本発明の範囲は、上記の詳細な説明よりは後述する特許請求の範囲によって示され、特許請求の範囲の意味および範囲、そしてその均等概念から導出されるあらゆる変更または変形された形態が本発明の範囲に含まれると解釈されなければならない。
1:リソース再設定システム
100:深層ニューラルネットワーク加速器
110:スクラッチパッドメモリ
120:仮想タイリングレジスタ
130:コア
200:ホストシステム

Claims (19)

  1. リソース再設定可能な深層ニューラルネットワーク加速器であって、
    外部メモリ階層における深層ニューラルネットワークパラメータデータを複数のタイルに分割してロードするスクラッチパッドメモリ階層と、前記スクラッチパッドメモリ階層のタイリングされた深層ニューラルネットワークパラメータデータをロードするレジスタファイルメモリ階層とを含むメモリ階層と、
    前記レジスタファイルメモリ階層にロードされた深層ニューラルネットワークパラメータデータに対する推論演算を処理する複数のコアと、
    を含み、
    前記メモリ階層は、所定のタイリングサイズに相応するように、前のメモリ階層からタイリングされた深層ニューラルネットワークパラメータデータをロードする任意の位置に追加された仮想タイリング階層を提供する仮想タイリングレジスタを含む、
    リソース再設定可能な深層ニューラルネットワーク加速器。
  2. 前記スクラッチパッドメモリ階層、レジスタ階層、およびコアの少なくとも1つを含む関連リソースの使用量は、前記仮想タイリング階層のタイリングサイズに基づいて調整される、
    請求項1に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  3. 前記関連リソースの使用量が調整されることにより、未使用の関連リソースのリソース割当は解除される、
    請求項2に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  4. 前記仮想タイリング階層を提供する前記仮想タイリングレジスタは、前記スクラッチパッドメモリ階層と前記レジスタファイルメモリ階層との間に追加される、
    請求項1に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  5. ープの実行時、前記タイリングサイズがN(Nは2以上の自然数)個に決定される場合、前記複数のコアのうち1/N個のコアが前記ループを行うためのリソースに割当てられる、
    請求項4に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  6. 前記仮想タイリング階層を提供する前記仮想タイリングレジスタは、前記外部メモリ階層と前記スクラッチパッドメモリ階層との間に追加される、
    請求項1に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  7. ープの実行時、前記タイリングサイズがN(Nは2以上の自然数)個に決定される場合、前記スクラッチパッドメモリ階層のうち1/Nが前記ループを行うためのリソースに割当てられる、
    請求項6に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  8. 前記仮想タイリング階層の位置は、ホストシステムのソフトウェアインターフェースを介して設定される、
    請求項1に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  9. 前記仮想タイリング階層の前記タイリングサイズは、深層ニューラルネットワークの毎ループを行う度にアップデートされる、
    請求項1に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  10. 前記仮想タイリング階層の前記タイリングサイズは、ホストシステムによって決定される前記仮想タイリングレジスタの値に基づいて設定される、
    請求項1に記載のリソース再設定可能な深層ニューラルネットワーク加速器。
  11. 深層ニューラルネットワーク加速器におけるリソース再設定方法であって、
    ープが行われることにより、仮想タイリングレジスタの値を読出すステップと、
    前記読出された仮想タイリングレジスタの値に基づいて仮想タイリング階層のタイリングサイズを設定するステップと、
    前記仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換するステップと、
    前記タイリングサイズに応じて使用量が調整された関連リソースのうち未使用の関連リソースのリソース割当を解除するステップと、
    を含む、リソース再設定方法。
  12. 前記仮想タイリング階層のタイリングサイズは、毎ループを行う度にアップデートされる、
    請求項11に記載のリソース再設定方法。
  13. 前記仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換するステップは、
    外部メモリ階層における深層ニューラルネットワークパラメータデータを複数のタイルに分割してロードするスクラッチパッドメモリ階層、前記スクラッチパッドメモリ階層のタイリングされた深層ニューラルネットワークパラメータデータをロードするレジスタファイルメモリ階層、および前記レジスタファイルメモリ階層にロードされた深層ニューラルネットワークパラメータデータに対する推論演算を処理する複数のコアの少なくとも1つを含む前記関連リソースのタイリングサイズを変換する、
    請求項11に記載のリソース再設定方法。
  14. 前記仮想タイリング階層を提供する前記仮想タイリングレジスタは、前記スクラッチパッドメモリ階層と前記レジスタファイルメモリ階層との間に追加され、
    前記仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換するステップは、
    前記仮想タイリング階層のタイリングサイズがN(Nは2以上の自然数)個に決定される場合、前記複数のコアのうち1/N個のコアが前記関連リソースのタイリングサイズに変換されて前記ループを行うためのリソースに割当てられるものである、
    請求項13に記載のリソース再設定方法。
  15. 前記仮想タイリング階層を提供する前記仮想タイリングレジスタは、前記外部メモリ階層と前記スクラッチパッドメモリ階層との間に追加され、
    前記仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換するステップは、
    前記タイリングサイズがN(Nは2以上の自然数)個に決定される場合、前記スクラッチパッドメモリ階層のうち1/Nが前記関連リソースのタイリングサイズに変換されて前記ループを行うためのリソースに割当てられるものである、
    請求項13に記載のリソース再設定方法。
  16. リソース再設定システムであって、
    スクラッチパッドメモリ階層、レジスタファイルメモリ階層、およびコアの少なくとも1つを含む関連リソースと、仮想タイリングレジスタの値に基づいてタイリングサイズが設定される仮想タイリング階層を提供する前記仮想タイリングレジスタとを含む深層ニューラルネットワーク加速器と、
    前記深層ニューラルネットワーク加速器の推論実行中に前記仮想タイリングレジスタの値を設定して関連リソースの活性化の有無を決定するホストシステムと、
    を含む、リソース再設定システム。
  17. 前記関連リソースの使用量は、前記仮想タイリング階層のタイリングサイズに基づいて調整される、
    請求項16に記載のリソース再設定システム。
  18. 前記仮想タイリング階層を提供する前記仮想タイリングレジスタは、前記関連リソースとの階層構造において任意の位置に追加され、前記設定されたタイリングサイズに相応するように、階層構造からタイリングされたデータをロードする、
    請求項16に記載のリソース再設定システム。
  19. 前記ホストシステムは、ソフトウェアインターフェースを介して前記仮想タイリング階層の位置を設定する、
    請求項16に記載のリソース再設定システム。
JP2022163999A 2021-10-15 2022-10-12 リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法 Active JP7461433B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210137558 2021-10-15
KR10-2021-0137558 2021-10-15
KR1020220092237A KR20230054259A (ko) 2021-10-15 2022-07-26 자원 재설정 가능한 심층신경망 가속기, 시스템 및 방법
KR10-2022-0092237 2022-07-26

Publications (2)

Publication Number Publication Date
JP2023059847A JP2023059847A (ja) 2023-04-27
JP7461433B2 true JP7461433B2 (ja) 2024-04-03

Family

ID=83594379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022163999A Active JP7461433B2 (ja) 2021-10-15 2022-10-12 リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法

Country Status (3)

Country Link
US (1) US20230121052A1 (ja)
EP (1) EP4167143A1 (ja)
JP (1) JP7461433B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017526055A (ja) 2014-08-19 2017-09-07 インテル・コーポレーション グラフィックスプロセッサ実行リソースの動的スケーリング
JP2022543331A (ja) 2019-08-05 2022-10-12 アーム・リミテッド データ構造処理
JP2023518090A (ja) 2020-03-24 2023-04-27 日本電気株式会社 システム、方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017526055A (ja) 2014-08-19 2017-09-07 インテル・コーポレーション グラフィックスプロセッサ実行リソースの動的スケーリング
JP2022543331A (ja) 2019-08-05 2022-10-12 アーム・リミテッド データ構造処理
JP2023518090A (ja) 2020-03-24 2023-04-27 日本電気株式会社 システム、方法およびプログラム

Also Published As

Publication number Publication date
EP4167143A1 (en) 2023-04-19
US20230121052A1 (en) 2023-04-20
JP2023059847A (ja) 2023-04-27

Similar Documents

Publication Publication Date Title
US8375390B2 (en) Scheduling method and scheduling apparatus
CN109669772B (zh) 计算图的并行执行方法和设备
US20110022817A1 (en) Mapping Processing Logic Having Data-Parallel Threads Across Processors
US20160378568A1 (en) Scriptable Dynamic Load Balancing in Computer Systems
US10725824B2 (en) Thread associated memory allocation and memory architecture aware allocation
CN113590508B (zh) 动态可重构的内存地址映射方法及装置
CN111177984B (zh) 电子设计自动化中异构计算单元的资源利用
US11954419B2 (en) Dynamic allocation of computing resources for electronic design automation operations
KR20210108749A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
US8954969B2 (en) File system object node management
CN111666210A (zh) 一种芯片验证方法及装置
US8863060B2 (en) Programmable intelligent storage architecture based on application and business requirements
US20210200584A1 (en) Multi-processor system, multi-core processing device, and method of operating the same
CN111247512B (zh) 用于统一内存访问的计算机系统
JP7461433B2 (ja) リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法
EP3401784A1 (en) Multicore processing system
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
KR20230054259A (ko) 자원 재설정 가능한 심층신경망 가속기, 시스템 및 방법
JP2023527770A (ja) メモリにおける推論
WO2021231848A1 (en) System and method for creating on-demand virtual filesystem having virtual burst buffers created on the fly
KR20210157636A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
WO2018230444A1 (ja) アクセラレータ制御装置、アクセラレータ制御方法、及び、アクセラレータ制御プログラムが格納された記録媒体
Kim et al. FusionFlow: Accelerating Data Preprocessing for Machine Learning with CPU-GPU Cooperation
JP6445876B2 (ja) リソース割当装置、リソース割当システム、および、リソース割当方法
Hollmann et al. Invasive computing: an application assisted resource management approach

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240322

R150 Certificate of patent or registration of utility model

Ref document number: 7461433

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150