(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-26
(45)【発行日】2024-04-03
(54)【発明の名称】リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20240327BHJP
G06N 3/02 20060101ALI20240327BHJP
【FI】
G06F9/50 150E
G06N3/02
G06F9/50 120A
(21)【出願番号】P 2022163999
(22)【出願日】2022-10-12
【審査請求日】2022-11-16
(31)【優先権主張番号】10-2021-0137558
(32)【優先日】2021-10-15
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0092237
(32)【優先日】2022-07-26
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】596099882
【氏名又は名称】エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート
【氏名又は名称原語表記】ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】キム ユン ビン
(72)【発明者】
【氏名】シン ジン アー
(72)【発明者】
【氏名】リム チェ ドク
(72)【発明者】
【氏名】キム キュン イル
(72)【発明者】
【氏名】キム ベブ キュン
(72)【発明者】
【氏名】ウー ドゥク キュン
(72)【発明者】
【氏名】リュ ドン ワン
(72)【発明者】
【氏名】リム ユ ジン
(72)【発明者】
【氏名】ジョン ヤン ジェ
(72)【発明者】
【氏名】ハ ス ジュン
【審査官】田中 幸雄
(56)【参考文献】
【文献】特表2022-543331(JP,A)
【文献】特表2023-518090(JP,A)
【文献】特表2017-526055(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06N 3/02
(57)【特許請求の範囲】
【請求項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に記載のリソース再設定システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法に関する。
【背景技術】
【0002】
最近、深層ニューラルネットワークは多様な分野で高い正確度を示し、多様な装置と応用に広く活用されている。深層ニューラルネットワークは、既存の機械学習手法とは異なり、データから分類器のみならず、特徴を学習して高い正確度を示す。
【0003】
一方、深層ニューラルネットワークを用いるためには、多くの格納空間と高い計算性能を必要とする問題があり、このような問題を解決するための一方策として、クラウドコンピューティングベースで深層ニューラルネットワークを活用することがある。しかし、クラウドコンピューティングは、サーバと装置との間の通信によって電力消耗が非常に大きいという問題がある。
【0004】
このために、オンデバイスにおいて深層ニューラルネットワークを活用できるようにするための深層ニューラルネットワーク加速器が提案された。深層ニューラルネットワーク加速器の場合、深層ニューラルネットワーク推論加速機能を内蔵することでコンピューティングリソースに比べて深層ニューラルネットワーク推論時間を短縮できるだけでなく、既存の高性能サーバに比べて費用が安価で電力消費を低減できるというメリットがある。
【0005】
しかし、初期の深層ニューラルネットワーク加速器は、限られたデータフローのみを行うように設計されていて、深層ニューラルネットワーク応用による最適なデータフローを使用できない問題がある。
【先行技術文献】
【特許文献】
【0006】
【文献】韓国公開特許公報第10-2021-0039921号
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、深層ニューラルネットワーク加速器において、推論を行う途中にメモリ、コアなどのリソースを再設定できるようにして推論中の消耗電力を調整できる、リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法を提供することである。
【0008】
ただし、本発明が解決しようとする課題は上記の課題に限定されず、さらに他の課題が存在し得る。
【課題を解決するための手段】
【0009】
上述した課題を解決するための、本発明の第1側面によるリソース再設定可能な深層ニューラルネットワーク加速器は、外部メモリ階層における深層ニューラルネットワークパラメータデータ(以下、データ)を複数のタイルに分割してロードするスクラッチパッドメモリ階層と、前記スクラッチパッドメモリ階層のタイリングされたデータをロードするレジスタファイルメモリ階層とを含むメモリ階層と、前記レジスタファイルメモリ階層にロードされたデータに対する推論演算を処理する複数のコアとを含み、前記メモリ階層は、所定のタイリングサイズに相応するように、前のメモリ階層からタイリングされたデータをロードする任意の位置に追加された仮想タイリング階層を含む。
【0010】
また、本発明の第2側面による深層ニューラルネットワーク加速器におけるリソース再設定方法は、当該ループが行われることにより、仮想タイリングレジスタの値を読出すステップと、前記読出された仮想タイリングレジスタの値に基づいて仮想タイリング階層のタイリングサイズを設定するステップと、前記仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換するステップと、前記タイリングサイズに応じて使用量が調整された関連リソースのうち未使用の関連リソースのリソース割当を解除するステップとを含む。
【0011】
さらに、本発明の第3側面によるリソース再設定システムは、スクラッチパッドメモリ階層、レジスタファイルメモリ階層、およびコアの少なくとも1つを含む関連リソースと、仮想タイリングレジスタの値に基づいてタイリングサイズが設定される仮想タイリング階層とを含む深層ニューラルネットワーク加速器と、前記深層ニューラルネットワーク加速器の推論実行中に仮想タイリングレジスタの値を設定して関連リソースの活性化の有無を決定するホストシステムとを含む。
【0012】
上述した課題を解決するための、本発明の他の側面によるコンピュータプログラムは、ハードウェアであるコンピュータと結合されてリソース再設定方法を実行し、コンピュータ読取可能記録媒体に格納される。
【0013】
本発明のその他の具体的な事項は詳細な説明および図面に含まれている。
【発明の効果】
【0014】
上述した本発明の一実施例によれば、ホストシステムは、深層ニューラルネットワーク加速器が推論を行っている途中にもリソースの一部を非活性化または再活性化して加速器の消耗電力を制御することができる。このような機能は、1秒あたり数回から数十回のPower offが発生するインターミテントコンピューティング環境など電力消耗を積極的に管理しなければならないシステムの管理効率を増大させることができる。
【0015】
本発明の効果は以上に言及された効果に制限されず、言及されていないさらに他の効果は以下の記載から当業者に明確に理解されるであろう。
【図面の簡単な説明】
【0016】
【
図1】深層ニューラルネットワーク加速器におけるデータフローの一例を示す図である。
【
図2】本発明の一実施例によるリソース再設定システムのブロック図である。
【
図3】仮想タイリング階層によるデータフローの一例を示す図である。
【
図4】仮想タイリング階層によるデータフローの他の例を示す図である。
【
図5】本発明の一実施例によるリソース再設定方法のフローチャートである。
【発明を実施するための形態】
【0017】
本発明の利点および特徴、そしてそれらを達成する方法は添付した図面とともに詳細に後述する実施例を参照すれば明確になる。しかし、本発明は以下に開示される実施例に制限されるものではなく、互いに異なる多様な形態で実現可能であり、単に本実施例は本発明の開示が完全となるようにし、本発明の属する技術分野における当業者に本発明の範疇を完全に知らせるために提供されるものであり、本発明は請求項の範疇によってのみ定義される。
【0018】
本明細書で使われた用語は実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数形は、文言で特に言及しない限り、複数形も含む。明細書で使われる「含む(comprises)」および/または「含む(comprising)」は、言及された構成要素のほか、1つ以上の他の構成要素の存在または追加を排除しない。明細書全体にわたって同一の図面符号は同一の構成要素を指し示し、「および/または」は、言及された構成要素のそれぞれおよび1つ以上のすべての組み合わせを含む。「第1」、「第2」などが多様な構成要素を述べるために使われるが、これらの構成要素はこれらの用語によって制限されないことはもちろんである。これらの用語は、単に1つの構成要素を他の構成要素と区別するために使うものである。したがって、以下に言及される第1構成要素は、本発明の技術的思想内で第2構成要素であってもよいことはもちろんである。
【0019】
他に定義されなければ、本明細書で使われるすべての用語(技術および科学的用語を含む)は、本発明の属する技術分野における当業者に共通して理解できる意味で使われるであろう。また、一般的に使われる事前に定義されている用語は、明らかに特に定義されていない限り、理想的または過度に解釈されない。
【0020】
以下、まず、当業者の理解のために、本発明が着目した背景について説明した後、本発明について詳しく説明する。
【0021】
深層ニューラルネットワーク加速器は、深層ニューラルネットワークによる推論を迅速に行うための装置である。深層ニューラルネットワーク加速器では、小さなレジスタファイル(Register File)と演算ユニット(Functional Unit)を含むコアが並列的に演算を処理する。また、深層ニューラルネットワーク加速器は、メモリ階層を含むことができ、一般的に、外部メモリ-内部スクラッチパッドメモリ(Scratchpad Memory)-レジスタファイルのメモリ階層を含む。
【0022】
深層ニューラルネットワークは、複数段階のネストされたループ(Nested Loop)で構成されており、多量のパラメータデータを含んでいる。このとき、深層ニューラルネットワーク加速器内のスクラッチパッドメモリは、深層ニューラルネットワークのすべてのパラメータデータを一度にロードできないので、パラメータデータをより小さいサイズに分割した後に順次にロードする。これをタイリング(Tiling)という。このようなタイリングは、スクラッチパッドメモリとコア内のレジスタファイルメモリとの間でも発生する。
【0023】
また、深層ニューラルネットワークのループは、前のループとの依存性が存在しないため、任意にアクセス順序を変更しても(Loop Interchange)、最終結果が同一の性質を有する。したがって、深層ニューラルネットワークは、タイリングとループのネストされた順序によって非常に多い方法で推論を行うことができ、このような推論を行う方法をデータフロー(Dataflow)という。
【0024】
図1は、深層ニューラルネットワーク加速器におけるデータフローの一例を示す図である。
【0025】
図1は、4個のコアを有する深層ニューラルネットワーク加速器のデータフローを単純化して示す図である。
図1のデータフローでは、外部メモリ階層(L1)における深層ニューラルネットワークパラメータデータ(以下、データ)を2個の単位に分けてスクラッチパッドメモリ階層(L2)にロードし、スクラッチパッドメモリ階層(L2)を2個の単位に分けて4個のコア(L3)でデータに対する推論演算を行っている。ロードされていないデータは時間によって順次に処理して、
図1の例においては、計4回の反復によりデータ全体を処理することができる。
【0026】
一方、初期の深層ニューラルネットワーク加速器は、限られた種類のデータフローのみを行うように設計されていて、深層ニューラルネットワークの応用特性によって最適なデータフローを使用できない場合が発生した。
【0027】
このような限界を改善するために、NoC(Network on Chip)の構成を任意に変更できるようにするなどの再設定可能な深層ニューラルネットワーク加速器アーキテクチャが研究されている。
【0028】
しかし、このようなアーキテクチャの場合、深層ニューラルネットワーク加速器が推論を行う途中にリソースに対する再設定を行うことが不可能である。
【0029】
このような問題を解消するために、本発明の一実施例は、深層ニューラルネットワーク加速器が推論を行う途中にリソース再設定を実行可能にして、推論の正確度を維持しながらもシステムが精密に電力を管理できるようにする。このような特性は、1秒に最大数十回の電力枯渇が発生するインターミテントコンピューティング(intermittent computing)のような環境の実行効率を高めるのに役立つことができる。
【0030】
以下、
図2~
図4を参照して、本発明の一実施例によるリソース再設定システム1および深層ニューラルネットワーク加速器100について説明する。
【0031】
図2は、本発明の一実施例によるリソース再設定システム1のブロック図である。
図3は、仮想タイリング階層(L3)によるデータフローの一例を示す図である。
図4は、仮想タイリング階層(L2)によるデータフローの他の例を示す図である。
【0032】
本発明の一実施例によるリソース再設定システム1は、深層ニューラルネットワーク加速器100と、ホストシステム200とを含む。
【0033】
深層ニューラルネットワーク加速器100は、スクラッチパッドメモリ110、レジスタファイルメモリ(図示せず)、およびコア130の少なくとも1つを含む関連リソースと、仮想タイリングレジスタ120により提供される仮想タイリング階層とを含む。ここで、関連リソースは、仮想タイリング階層によって調整されるリソースを意味する。
【0034】
本発明の一実施例において、複数のコア130は、レジスタファイルメモリ階層にロードされたデータに対する推論演算を行う。
【0035】
本発明の一実施例において、メモリ階層は、外部メモリ階層と、深層ニューラルネットワーク加速器100の内部のスクラッチパッドメモリ階層と、レジスタファイルメモリ階層とで構成される。
【0036】
スクラッチパッドメモリ階層は、外部メモリ階層におけるデータを複数のタイルに分割してロードする。そして、レジスタファイルメモリ階層は、スクラッチパッドメモリ階層のタイリングされたデータをロードする。
【0037】
ここで、本発明の一実施例による深層ニューラルネットワーク加速器100は、仮想タイリング階層を追加的に備えることを特徴とする。仮想タイリング階層は、所定のタイリングサイズに相応するように、前のメモリ階層からタイリングされたデータをロードし、メモリ階層内の任意の位置に追加される。
【0038】
一実施例として、仮想タイリング階層は、予め構成されたデータフローに追加されて、推論演算の実行中に変更可能なタイリング階層である。本発明の一実施例は、仮想タイリング階層のタイリングサイズに基づいて関連リソースの使用量を調整することができる。
【0039】
そして、関連リソースの使用量が調整されることにより、未使用の関連リソースはリソース割当が解除される。一例として、仮想タイリングによって使用されない関連リソースは、パワーゲーティング(Power Gating)のような電力遮断手法により電力消耗を制限することができる。
【0040】
図3の実施例において、仮想タイリング階層(L3)は、スクラッチパッドメモリ階層(L2)とレジスタファイルメモリ階層(L4)との間に存在し、これによってコア130の使用量を調整している。
【0041】
このとき、仮想タイリング階層(L3)のタイリングサイズは、毎ループを開始する度にアップデートされ、これによって使用するコア130の数が変更可能である。
【0042】
図3の実施例では、コア130が関連リソースに設定されて、仮想タイリング階層(L3)のタイリングサイズの変化に反比例して作動するコア130の数が調整される。すなわち、当該ループの実行時、タイリングサイズがN(Nは2以上の自然数)個に決定される場合、複数のコア130のうち1/N個のコアが当該ループを行うためのリソースに割当てられる。
【0043】
例えば、スクラッチパッドメモリ階層(L2)の1番目のタイルを処理する時には、仮想タイリング階層(L3)のタイリングサイズが2個に設定され、これによって4個のコア130のうち半分のコアのみを使用する代わりに2倍の反復推論演算を行う。
【0044】
これに対し、スクラッチパッドメモリ階層(L2)の2番目のタイルを処理する時には、仮想タイリング階層(L3)のタイリングサイズが4個に変更設定され、これによって4個のコア130のうち1つのコアのみが活性化された状態で推論演算を行い、4回の反復演算を行う。
【0045】
本発明の一実施例において、関連リソースは、コア130のほかにも、スクラッチパッドメモリ階層、レジスタファイルメモリ階層などになってもよい。
【0046】
他の例として、仮想タイリング階層(L2)は、外部メモリ階層(L1)とスクラッチパッドメモリ階層(L3)との間に存在して、スクラッチパッドメモリ110の使用を調整するように設定可能である。
【0047】
図4の実施例では、スクラッチパッドメモリ110が関連リソースに設定されて、仮想タイリング階層(L2)のタイリングサイズの変化に反比例して作動するスクラッチパッドメモリ110の数が調整される。すなわち、当該ループの実行時、タイリングサイズがN(Nは2以上の自然数)個に決定される場合、スクラッチパッドメモリ階層(L3)は、1/N個が当該ループを行うためのリソースに割当てられる。
【0048】
例えば、外部メモリ階層(L1)の1番目のタイルを処理する時には、仮想タイリング階層(L2)のタイリングサイズが2個に設定され、これによってスクラッチパッドメモリ階層(L3)は半分のみがリソースとして使用され、これに対応するように4個のコア130のうち半分のコアのみが使用され、その代わりに2倍の反復推論演算を行う。この時、スクラッチパッドメモリ階層(L3)は、仮想タイリング階層(L2)が設定される前には、
図1に示されるように、コア130の個数、または外部メモリ階層(L1)のタイリングサイズに比例して分割設定されていてもよい。
【0049】
これに対し、外部メモリ階層(L1)の2番目のタイルを処理する時には、仮想タイリング階層(L2)のタイリングサイズが4個に変更設定され、これによってスクラッチパッドメモリ階層(L3)は4個の単位に分割されて使用され、これに対応するように4個のコア130のうち1つのコアのみが活性化された状態で推論演算を行い、4回の反復演算を行う。
【0050】
このように、本発明の一実施例は、スクラッチパッドメモリ階層、レジスタファイルメモリ階層、コアなどの個別関連リソースのリソース割当を仮想タイリング階層により調整することができ、実施例により、複数の関連リソースを同時に調整することもできる。
【0051】
上述のように、1つのリソースが関連づけられている場合、タイリングサイズがN個の場合、関連リソースの大きさは1/N個になる。これとは異なり、複数のリソースが関連づけられている場合、関連リソースをアップデートする規則が必要であり、これはハードウェアまたはソフトウェア的に提供可能である。
【0052】
一方、本発明の一実施例において、仮想タイリング階層の位置は、ハードウェアまたはソフトウェア的に設定可能である。一実施例として、仮想タイリング階層は、ハードウェア的にスクラッチパッドメモリ階層とコア(レジスタファイルメモリ階層)との間に配置して深層ニューラルネットワーク加速器100を設計することができる。他の実施例としては、ソフトウェアインターフェースを介して仮想タイリングの位置をホストシステム200が設定できるように実現可能である。
【0053】
再度
図2を参照すれば、仮想タイリングレジスタ120は、深層ニューラルネットワーク加速器100の構造に追加されるレジスタまたはメモリの特定アドレスであって、ホストシステム200は、非同期的に仮想タイリングレジスタ120の値を変更することができる。
【0054】
この時、ホストシステム200は、任意のアルゴリズムによりタイリングレジスタの値を決定することができる。一実施例として、ホストシステム200は、目標電力レベルに応じたタイリングサイズを予め計算したテーブルを用いることができる。他の実施例として、ホストシステム200は、カーネルを介してリアルタイムにタイリングサイズを計算して深層ニューラルネットワーク加速器100のタイリングレジスタの値をアップデートすることができる。
【0055】
ホストシステム200によって仮想タイリングレジスタ120の値が決定されると、深層ニューラルネットワーク加速器100は、仮想タイリング階層の実行を開始する前、仮想タイリングレジスタ120の値に基づいてタイリングサイズを設定し、関連リソースのタイリングサイズを変更する。
【0056】
一実施例として、仮想タイリング階層のタイリングサイズは、深層ニューラルネットワークの毎ループを行う度にアップデートされる。毎度のループが行われる前、深層ニューラルネットワーク加速器100は、仮想タイリングレジスタ120の値を読出し、読出された仮想タイリングレジスタ120の値に基づいてタイリングサイズを設定する。これにより、関連リソースのタイリングサイズが決定され、関連リソースのタイリングサイズが決定された後には、未使用の関連リソースに対するリソース割当は解除するなど関連リソースに対する処理を行う。
【0057】
ただし、本発明の実施例において、タイリングサイズは、全体ループに同一にアップデートされて全体ループが行われてもよいことはもちろんである。
【0058】
以下、
図5を参照して、本発明の一実施例によるリソース再設定システム1の深層ニューラルネットワーク加速器100により行われるリソース再設定方法について説明する。
【0059】
図5は、本発明の一実施例によるリソース再設定方法のフローチャートである。
【0060】
深層ニューラルネットワーク加速器100は、当該ループが開始されることにより(S105)、仮想タイリング階層が存在するか否かを確認する(S110)。
【0061】
確認の結果、仮想タイリング階層が存在しない場合(S110-N)、一般的な手順でループを行う(S135)。
【0062】
これとは異なり、確認の結果、仮想タイリング階層が存在する場合(S110-Y)、仮想タイリングレジスタ120の値を読出す(S115)。
【0063】
そして、読出された仮想タイリングレジスタ120の値に基づいて仮想タイリング階層のタイリングサイズを設定する(S120)。
【0064】
次に、仮想タイリング階層のタイリングサイズに基づいて関連リソースのタイリングサイズを変換し(S125)、タイリングサイズに応じて使用量が調整された関連リソースのうち未使用の関連リソースのリソース割当を解除する(S130)。以後、深層ニューラルネットワーク加速器100は、再設定されたリソースで当該ループを行う(S135)。
【0065】
上述した過程は、全体ループ実行が完了するまで反復で行われる(S140)。
【0066】
一方、上述した説明において、ステップS105~S140は、本発明の実施形態により、追加的なステップにさらに分割されるか、より少ないステップに組み合わされてもよい。また、一部のステップは、必要に応じて省略されてもよく、ステップ間の順序が変更されてもよい。これとともに、その他省略された内容であっても、
図2~
図4の内容は
図5のリソース再設定方法にも適用可能である。
【0067】
以上、上述した本発明の一実施例は、ハードウェアであるコンピュータと結合されて実行されるために、プログラム(またはアプリケーション)で実現されて媒体に格納される。
【0068】
上述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムで実現された前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み込み可能なC、C++、JAVA(登録商標)、Ruby、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行する必要な機能を定義した関数などに関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順どおりに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加情報やメディアが前記コンピュータの内部または外部メモリのどの位置(アドレス番地)で参照されるべきかに対するメモリ参照関連コードをさらに含むことができる。さらに、前記コンピュータのプロセッサが前記機能を実行させるために、遠隔(Remote)にある何らかの他のコンピュータやサーバなどと通信が必要な場合、コードは、前記コンピュータの通信モジュールを用いて遠隔にあるどのような他のコンピュータやサーバなどとどのように通信すべきか、通信時にどのような情報やメディアを送受信すべきか、などに対する通信関連コードをさらに含むことができる。
【0069】
前記格納される媒体は、レジスタ、キャッシュ、メモリなどのように、短い瞬間にデータを格納する媒体ではなく、半永続的にデータを格納し、機器によって読取(reading)可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶装置などがあるが、これらに制限されない。すなわち、前記プログラムは、前記コンピュータ接続可能な多様なサーバ上の多様な記録媒体またはユーザの前記コンピュータ上の多様な記録媒体に格納されてもよい。また、前記媒体は、ネットワークで連結されたコンピュータシステムに分散して、分散方式でコンピュータ読出可能なコードが格納されてもよい。
【0070】
上述した本発明の説明は例示のためのものであり、本発明の属する技術分野における当業者は、本発明の技術的思想や必須の特徴を変更することなく他の具体的な形態で容易に変形可能であることを理解するであろう。そのため、以上に述べた実施例は、あらゆる面で例示的であり、限定的ではないと理解しなければならない。例えば、単一形で説明されている各構成要素は分散して実施されてもよいし、同様に、分散したと説明されている構成要素も結合された形態で実施されてもよい。
【0071】
本発明の範囲は、上記の詳細な説明よりは後述する特許請求の範囲によって示され、特許請求の範囲の意味および範囲、そしてその均等概念から導出されるあらゆる変更または変形された形態が本発明の範囲に含まれると解釈されなければならない。
【符号の説明】
【0072】
1:リソース再設定システム
100:深層ニューラルネットワーク加速器
110:スクラッチパッドメモリ
120:仮想タイリングレジスタ
130:コア
200:ホストシステム