(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024089814
(43)【公開日】2024-07-04
(54)【発明の名称】アクセラレータ装置
(51)【国際特許分類】
G06N 3/063 20230101AFI20240627BHJP
G06F 9/50 20060101ALI20240627BHJP
【FI】
G06N3/063
G06F9/50 150A
G06F9/50 150C
G06F9/50 150D
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022205259
(22)【出願日】2022-12-22
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】520124752
【氏名又は名称】株式会社ミライズテクノロジーズ
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】林 文城
(72)【発明者】
【氏名】滝澤 哲郎
(57)【要約】
【課題】ニューラルネットワークを利用した演算処理において、演算処理の効率の低下を抑制する。
【解決手段】アクセラレータ装置100は、演算部14、24、34、44、54と、キャッシュ部12、22、32、42、52と、記憶部11、21、31、41、51と、をそれぞれ有する複数のアクセラレータ回路ACC1、ACC2、ACC3、ACC4、ACC5と、複数のアクセラレータ回路のうち、予め設定された種類の演算を実行するようにそれぞれ構成されたアクセラレータ回路であって、ニューラルネットワークにおいて実行される複数の演算処理の各々にひとつずつ対応付けて設定されたアクセラレータ回路である割当先回路を示す割当情報を記憶するレジスタ120と、割当情報を利用して、各アクセラレータ回路において複数の演算処理のそれぞれを開始するタイミングを決定するスケジューラ132と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ニューラルネットワークを利用した演算処理において用いられるアクセラレータ装置(100)であって、
演算部(14、24、34、44、54)と、キャッシュ部(12、22、32、42、52)と、半導体メモリ装置(111)により実現される記憶部(11、21、31、41、51)と、をそれぞれ有する複数のアクセラレータ回路(ACC1、ACC2、ACC3、ACC4、ACC5)と、
前記複数のアクセラレータ回路のうち、予め設定された種類の演算を実行するようにそれぞれ構成されたアクセラレータ回路であって、前記ニューラルネットワークにおいて実行される複数の演算処理の各々にひとつずつ対応付けて設定されたアクセラレータ回路である割当先回路を示す割当情報を記憶するレジスタ(120)と、
前記割当情報を利用して、各前記アクセラレータ回路において前記複数の演算処理のそれぞれを開始するタイミングを決定するスケジューラ(132)と、
を備える、
アクセラレータ装置。
【請求項2】
請求項1に記載のアクセラレータ装置であって、
前記割当先回路は、前記複数のアクセラレータ回路のうち、前記ニューラルネットワークを構成する各レイヤにおける演算処理を実行するように定められたアクセラレータ回路であって、前記各レイヤにひとつずつ対応付けて設定されたアクセラレータ回路である、
アクセラレータ装置。
【請求項3】
請求項2に記載のアクセラレータ装置であって、
前記レジスタは、各前記アクセラレータ回路の処理能力を示すハードウェア特徴情報と、各前記レイヤにおける演算処理の種類および処理負荷を示すレイヤ特徴情報と、をさらに記憶し、
前記アクセラレータ装置は、前記ハードウェア特徴情報と前記レイヤ特徴情報とを利用して、前記レイヤごとに前記割当先回路を設定するレイヤ割当部(131)をさらに備える、
アクセラレータ装置。
【請求項4】
請求項3に記載のアクセラレータ装置であって、
前記レジスタは、前記ハードウェア特徴情報として、各前記アクセラレータ回路における、前記演算部による演算処理の種類および処理能力と、前記キャッシュ部および前記記憶部のそれぞれの記憶容量と、前記演算部と前記キャッシュ部との間におけるデータ転送速度と、前記キャッシュ部と前記記憶部との間におけるデータ転送速度と、を記憶する、
アクセラレータ装置。
【請求項5】
請求項1から請求項4のいずれか一項に記載のアクセラレータ装置であって、
前記スケジューラは、互いに異なる前記アクセラレータ回路において、前記半導体メモリ装置へのアクセスを同時に開始しないように、前記タイミングを決定する、
アクセラレータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、アクセラレータ装置に関する。
【背景技術】
【0002】
多層のニューラルネットワークを用いた演算処理において、ニューラルネットワークにおける演算処理に適したハードウェアにより構成されたアクセラレータが用いられることがある(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2019/0205737A1号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ニューラルネットワークにおいて、演算の種類が互いに異なる複数の演算処理が実行される場合には、演算の種類によって適するハードウェア構成が異なることがあり、演算の種類とハードウェア構成との組み合わせによっては処理効率が低下するおそれがある。
【課題を解決するための手段】
【0005】
本開示は、以下の形態として実現することが可能である。
【0006】
本開示の一形態によれば、アクセラレータ装置(100)が提供される。このアクセラレータ装置は、ニューラルネットワークを利用した演算処理において用いられるアクセラレータ装置(100)であって、演算部(14、24、34、44、54)と、キャッシュ部(12、22、32、42、52)と、半導体メモリ装置(111)により実現される記憶部(11、21、31、41、51)と、をそれぞれ有する複数のアクセラレータ回路(ACC1、ACC2、ACC3、ACC4、ACC5)と、前記複数のアクセラレータ回路のうち、予め設定された種類の演算を実行するようにそれぞれ構成されたアクセラレータ回路であって、前記ニューラルネットワークにおいて実行される複数の演算処理の各々にひとつずつ対応付けて設定されたアクセラレータ回路である割当先回路を示す割当情報を記憶するレジスタ(120)と、前記割当情報を利用して、各前記アクセラレータ回路において前記複数の演算処理のそれぞれを開始するタイミングを決定するスケジューラ(132)と、を備える。
【0007】
この形態のアクセラレータ装置によれば、複数のアクセラレータ回路を有し、各演算処理にひとつずつ対応付けて設定されたアクセラレータ回路である割当先回路を示す割当情報を利用して、各アクセラレータ装置において演算処理を開始するタイミングを決定するので、各演算処理に適した構成を有するアクセラレータ装置において演算処理を実行でき、演算処理の効率の低下を抑制できる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態のアクセラレータ装置の概略構成を示すブロック図である。
【
図2】本実施形態の演算回路の概略構成を示すブロック図である。
【
図3】本実施形態のアクセラレータ装置において実現されるニューラルネットワークの構成の一例を模式的に示す説明図である。
【
図4】本実施形態のアクセラレータ装置において実現されるニューラルネットワークの構成の一例を模式的に示す説明図である。
【
図5】本実施形態のスケジューリング処理の手順を示すフローチャートである。
【
図6】スケジューリング処理のステップS30において決定される演算処理スケジュールの一例を示す説明図である。
【発明を実施するための形態】
【0009】
A.第1実施形態:
A-1.装置構成:
本実施形態のアクセラレータ装置100は、ニューラルネットワークを利用した演算処理を実行する。本実施形態では、アクセラレータ装置100は、車両に搭載されたカメラにより撮像された画像データを対象として、画像データに含まれる歩行者や構造物等を判別するための特徴量を出力する演算処理を行う。
図1に示すように、アクセラレータ装置100は、演算回路110と、レジスタ120と、演算制御部130とを備える。なお、アクセラレータ装置100は、画像データに限らず、音声データやテキストデータを対象として演算処理を実行してもよい。
【0010】
図2に示すように、演算回路110は、第1アクセラレータ回路ACC1と、第2アクセラレータ回路ACC2と、第3アクセラレータ回路ACC3と、第4アクセラレータ回路ACC4と、第5アクセラレータ回路ACC5とを有する。第1アクセラレータ回路ACC1は、第1記憶部11と、第1キャッシュ部12と、第1バッファ部13と、第1積和演算部14とを有する。第2アクセラレータ回路ACC2は、第2記憶部21と、第2キャッシュ部22と、第2バッファ部23と、第2積和演算部24とを有する。第3アクセラレータ回路ACC3は、第3記憶部31と、第3キャッシュ部32と、第3バッファ部33と、プーリング演算部34とを有する。第4アクセラレータ回路ACC4は、第4記憶部41と、第4キャッシュ部42と、第4バッファ部43と、Activation演算部44とを有する。第5アクセラレータ回路ACC5は、第5記憶部51と、第5キャッシュ部52と、第5バッファ部53と、ベクタ演算部54とを有する。
【0011】
第1記憶部11と、第2記憶部21と、第3記憶部31と、第4記憶部41と、第5記憶部51と(以下、総称して「記憶部」とも呼ぶ)は、半導体メモリ装置111が有する記憶領域のうちの互いに異なる記憶領域として実現されている。本実施形態では、半導体メモリ装置111は、DRAMとして構成されている。各記憶部は、演算処理において入出力される画像データを記憶する。第1記憶部11と、第2記憶部21とは、これに加えて、積和演算で用いられるフィルタ係数および重み係数を記憶する。第1記憶部11と、第2記憶部21とは、互いに異なる大きさの記憶容量を有し、第1記憶部11は、第2記憶部21よりも大きい記憶容量を有する。
【0012】
第1キャッシュ部12と、第2キャッシュ部22と、第3キャッシュ部32と、第4キャッシュ部42と、第5キャッシュ部52と(以下、総称して「キャッシュ部」とも呼ぶ)は、キャッシュ装置112が有する記憶領域のうちの互いに異なる記憶領域として実現されている。各キャッシュ部は、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれにおける各記憶部に記憶されたデータのうち、使用頻度が高いデータおよび直近に読み込まれたデータを記憶する。これにより、データアクセスに時間がかかる記憶部へのアクセス頻度を抑制し、データアクセス効率の低下を抑制できる。第1キャッシュ部12と、第2キャッシュ部22とは、互いに異なる記憶容量を有し、第1キャッシュ部12は、第2キャッシュ部22よりも大きい記憶容量を有する。
【0013】
本実施形態では、第1積和演算部14と、第2積和演算部24とは、フィルタデータと重み係数とを利用して入力画像を対象とする畳み込み演算を行う。本実施形態では、第1積和演算部14と、第2積和演算部24とは、互いに異なる積和演算能力を有し、第2積和演算部24は、第1積和演算部14よりも単位時間当たりの積和演算の実行回数が多い。また、第2積和演算部24は、複数の演算処理を並列して実行可能に構成されている。
【0014】
プーリング演算部34は、プーリング演算を行う。本実施形態では、プーリング演算部34は、プーリング演算において、Maxプーリング、または、Averageプーリングを行う。
【0015】
Activation演算部44は、Activation演算を行う。本実施形態では、Activation演算部44は、Activation演算において、softmax関数またはReLu関数が活性化関数として用いる。
【0016】
ベクタ演算部54は、ベクタ演算を行う。以下、第1積和演算部14と、第2積和演算部24と、プーリング演算部34と、Activation演算部44、ベクタ演算部54とを総称して「演算部」とも呼ぶ。
【0017】
第1バッファ部13と、第2バッファ部23と、第3バッファ部33と、第4バッファ部43と、第5バッファ部53と(以下、総称して「バッファ部」とも呼ぶ)は、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれにおける各キャッシュ部と各演算部との間に設けられ、各キャッシュ部と各演算部との間におけるデータ転送の際にデータを一時的に蓄える。これにより、各キャッシュ部と各演算部との間のデータ処理速度の差を緩和できる。各バッファ部の記憶容量は、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれにおけるかかるデータ処理速度の差の大きさに応じて任意に決定することができる。
【0018】
本実施形態では、演算部と、バッファ部と、キャッシュ部とは、記憶部が構成されたチップとは異なる同一のチップに構成されている。
【0019】
図1に示すレジスタ120は、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれの処理能力を示す情報(以下、「ハードウェア特徴情報」とも呼ぶ)と、後述するニューラルネットワークを構成する各レイヤにおける演算処理の種類および処理負荷を示す情報(以下、「レイヤ特徴情報」とも呼ぶ)とを記憶する。本実施形態では、レジスタ120は、ハードウェア特徴情報として、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5における、各演算部による演算処理の種類および処理能力と、各記憶部、各キャッシュ部および各バッファ部の記憶容量と、各演算部と各キャッシュ部との間におけるデータ転送速度と、各キャッシュ部と各記憶部との間におけるデータ転送速度とを記憶する。
【0020】
本実施形態のアクセラレータ装置100が実行する
図3および
図4に示すニューラルネットワークを例として、レイヤ特徴情報について説明する。
図3および
図4に示すニューラルネットワークは、図示しない外部記憶装置に予め記憶されたプログラムをアクセラレータ装置100が実行することによって実現される。
図3に示すニューラルネットワークは、畳み込みレイヤL11と、プーリングレイヤL12と、残差処理レイヤL13と、プーリングレイヤL14と、全結合レイヤL15と、活性化関数レイヤL16とを有し、アクセラレータ装置100は、かかる順番で各レイヤにおける処理を実行する。また、
図4に示すニューラルネットワークは、畳み込みレイヤL21と、残差処理レイヤL22と、畳み込みレイヤL23と、プーリングレイヤL24と、畳み込みレイヤL25と、全結合レイヤL26と、活性化関数レイヤL27とを有し、アクセラレータ装置100は、かかる順番で各レイヤにおける処理を実行する。なお、
図3と
図4において、互いに同じ名称を有するレイヤは、互いに同じ種類の演算処理が実行されるレイヤであることを示している。
【0021】
各レイヤにおける演算処理の種類および処理負荷について説明する。畳み込みレイヤにおいては、積和演算が実行される。プーリングレイヤにおいては、プーリング演算が実行される。残差処理レイヤにおいては、積和演算に加えて残差接続による残差処理が実行されるため、畳み込みレイヤよりも演算負荷が高く、また、より大きな記憶容量が必要とされる。全結合レイヤにおいては、画像データを構成する全データを対象として特徴量を算出するベクタ演算が実行される。活性化関数レイヤにおいては、Activation演算が実行される。
【0022】
図1に示すレジスタ120は、上述したハードウェア特徴情報とレイヤ特徴情報とに加えて、後述する割当先回路に関する情報(以下、「割当情報」とも呼ぶ)を記憶する。
【0023】
演算制御部130は、機能部としてレイヤ割当部131とスケジューラ132とを備える。レイヤ割当部131は、レジスタ120に記憶されたハードウェア特徴情報とレイヤ特徴情報とを利用して、レイヤごとに割当先回路を設定する。「割当先回路」は、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5のうち、各レイヤにおける処理を実行するように定められたアクセラレータ回路であって、各レイヤにひとつずつ対応付けて設定されたアクセラレータ回路を意味する。各レイヤと割当先回路との具体的な関係については、後述するスケジューリング処理において説明する。スケジューラ132は、割当情報を利用して、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれにおいて、各レイヤにおける処理を開始するタイミングを決定する。
【0024】
A-2.スケジューリング処理:
アクセラレータ装置100は、
図5に示すように、レジスタ120に記憶されたハードウェア特徴情報とレイヤ特徴情報とを利用して、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれにおいて各レイヤにおける処理を開始するタイミングを決定するスケジューリング処理を実行する。スケジューリング処理は、アクセラレータ装置100が起動され、ニューラルネットワークを実現するプログラムが開始される際に実行される。
【0025】
ステップS10において、レイヤ割当部131は、レジスタ120に記憶されたハードウェア特徴情報とレイヤ特徴情報とを取得する。
【0026】
ステップS20において、レイヤ割当部131は、取得したハードウェア特徴情報とレイヤ特徴情報とを利用して、レイヤごとに割当先回路を決定し、割当情報をレジスタ120に記録する。具体的には、残差処理レイヤにおける処理は、上述のように畳み込みレイヤよりも大きな記憶容量を必要とするので、より記憶容量が大きい第2記憶部21と第2キャッシュ部22とを有する第2アクセラレータ回路ACC2に割り当てられることが好ましい。畳み込みレイヤにおける処理は、積和演算が可能な第1積和演算部14を有する第1アクセラレータ回路ACC1に割り当てられることが好ましい。プーリングレイヤにおける処理は、プーリング演算が可能なプーリング演算部34を有する第3アクセラレータ回路ACC3に割り当てられることが好ましい。活性化関数レイヤにおける処理は、Activation演算が可能であるActivation演算部44を有する第4アクセラレータ回路ACC4に割り当てられることが好ましい。全結合レイヤにおける処理は、ベクタ演算が可能なベクタ演算部54を有する第5アクセラレータ回路ACC5へ割り当てられることが好ましい。
【0027】
ステップS30において、スケジューラ132は、割当情報を利用して、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれにおいて各レイヤにおける処理を開始するタイミングを決定する。本ステップにおいて決定された演算処理スケジュールの一例を
図6に示す。
図6は、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5それぞれにおいて、各レイヤにおける処理が開始されるタイミングおよび処理が実行されている時間を示している。なお、
図6において各レイヤにおける処理を示す符号は、上述した
図3および
図4に示す各レイヤに対応している。
図6に示すように、スケジューラ132は、各レイヤにおける処理が、各ニューラルネットワークにおいて当該レイヤの前段に位置するレイヤにおける処理が終了した後に開始されるようにかかるタイミングを決定する。
【0028】
また、スケジューラ132は、プーリングレイヤL12と畳み込みレイヤL21とのように、第1アクセラレータ回路ACC1と第3アクセラレータ回路ACC3とにおいて、半導体メモリ装置111に対するアクセスが同時に開始されないようにかかるタイミングを決定する。各アクセラレータ装置100においては、各レイヤにおける処理の開始時が半導体メモリ装置111に対するアクセスのピークとなる。互いに異なるアクセラレータ装置100において複数の処理が同時に開始されると、半導体メモリ装置111に対するアクセス量の許容量を超え、半導体メモリ装置111に対するアクセスが制限されるおそれがある。そのため、スケジューラ132は、互いに異なるアクセラレータ回路において、半導体メモリ装置111へのアクセスを同時に開始させないことにより、半導体メモリ装置111に対するアクセス量が許容量を超えることを抑制している。本ステップの終了後、アクセラレータ装置100は、スケジューリング処理を終了する。
【0029】
以上説明した実施形態のアクセラレータ装置100によれば、第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5を有し、割当情報を利用して第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5において各レイヤにおける処理を開始するタイミングを決定するので、各レイヤにおける処理に適した構成を有するアクセラレータ回路において処理を実行でき、演算処理の効率の低下を抑制できる。
【0030】
また、アクセラレータ装置100はレイヤ割当部131を有し、ハードウェア特徴情報とレイヤ特徴情報とを利用してレイヤごとに割当先回路を決定するので、各レイヤにおける処理に適した構成を有するアクセラレータ装置100を自動的に決定できる。
【0031】
また、スケジューラ132は、互いに異なるアクセラレータ回路において、半導体メモリ装置111へのアクセスを同時に開始しないように各レイヤにおける処理を開始するタイミングを決定するので、半導体メモリ装置111に対するアクセス量が許容量を超えることを抑制できる。これにより、演算処理の効率の低下をより抑制できる。
【0032】
B.他の実施形態:
(B1)上記実施形態において、割当先回路は、レイヤ割当部131により決定されるが、本開示はこれに限定されない。ユーザにより決定された割当先回路を示す割当情報が、予めレジスタ120に記憶されていてもよい。かかる形態のアクセラレータ装置100によっても、各レイヤにおける処理に適した構成を有するアクセラレータ回路において処理を実行でき、演算処理の効率の低下を抑制できる。
【0033】
(B2)上記実施形態において、演算回路110は、バッファ部を備えるが、本開示はこれに限定されない。第1アクセラレータ回路ACC1~第5アクセラレータ回路ACC5は、それぞれのキャッシュ部と演算部との間のデータ処理速度の差が大きくなければ、バッファ部を備えていなくてもよい。かかる形態のアクセラレータ装置100によれば、演算回路110の構成を簡略化できるのでアクセラレータ装置100の製造コスト抑制できる。また、レジスタ120はハードウェア特徴情報としてバッファ部の記憶容量を記憶する必要がなくなるので、レジスタ120が記憶する情報量を抑制できる。
【0034】
(B3)上記実施形態において、スケジューラ132は、互いに異なるアクセラレータ回路において、半導体メモリ装置111へのアクセスを同時に開始しないように、タイミングを決定するが、本開示はこれに限定されない。スケジューラ132は、互いに異なるアクセラレータ回路において、半導体メモリ装置111へのアクセスを同時に開始するように、タイミングを決定してもよい。かかる形態のアクセラレータ装置100によっても、各レイヤにおける処理に適した構成を有するアクセラレータ回路において処理を実行でき、演算処理の効率の低下を抑制できる。
【0035】
(B4)上記実施形態において、演算部と、バッファ部と、キャッシュ部とは、記憶部とは異なる同一のチップ上に構成されているが、本開示はこれに限定されない。例えば、第3アクセラレータ回路ACC3~第5アクセラレータ回路ACC5として機能する機能部が、第1アクセラレータ回路ACC1および第2アクセラレータ回路ACC2として機能する機能部が構成されたチップとは異なるチップに構成されていてもよい。かかる形態のアクセラレータ装置100によっても、上記実施形態と同様の効果を奏する。
【0036】
(B5)上記実施形態において、ニューラルネットワークにおける処理は、レイヤ単位で各アクセラレータ回路に割り当てられるが、本開示はこれに限定されない。例えば、幅W×高さH×チャネルCで表される三次元テンソルに対する畳み込み演算を行う畳み込みレイヤにおいて、第1畳み込み演算と第2畳み込み演算と第3畳み込み演算とが実行される場合を例に説明する。ここで、「第1畳み込み演算」は、マトリクスサイズがW×HであるC個のマトリクスに対する畳み込み演算である。「第2畳み込み演算」は、マトリクスサイズがW×CであるH個のマトリクスに対する畳み込み演算である。「第3畳み込み演算」は、マトリクスサイズがW×HであるC個のマトリクスに対する畳み込み演算である。この場合、アクセラレータ装置100は、第1畳み込み演算~第3畳み込み演算をそれぞれ実行するように構成された複数のアクセラレータ回路をさらに備え、第1畳み込み演算~第3畳み込み演算を各アクセラレータ回路に割り当てて演算を行ってもよい。
【0037】
また、畳み込みレイヤおよびプーリングレイヤにおいて、フィルタサイズが互いに異なる複数のフィルタを用いた演算が実行される場合を例に説明する。この場合、アクセラレータ装置100は、予め設定されたフィルタサイズのフィルタを用いた演算をそれぞれ実行するように構成された複数のアクセラレータ回路をさらに備え、フィルタサイズに応じて各演算を各アクセラレータ回路に割り当てて演算を行ってもよい。以上説明した形態のアクセラレータ装置100によれば、レイヤ単位で演算処理をアクセラレータ回路に割り当てる構成に比べて、より各演算の種類に適したアクセラレータ回路に割り当てられるので、演算処理の効率の低下をより抑制できる。
【0038】
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した形態中の技術的特徴に対応する各実施形態中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0039】
本開示に記載のアクセラレータ装置100およびその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載のアクセラレータ装置100およびその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載のアクセラレータ装置100およびその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0040】
11…第1記憶部、12…第1キャッシュ部、14…第1積和演算部、21…第2記憶部、22…第2キャッシュ部、24…第2積和演算部、31…第3記憶部、32…第3キャッシュ部、34…プーリング演算部、41…第4記憶部、42…第4キャッシュ部、44…Activation演算部、51…第5記憶部、52…第5キャッシュ部、54…ベクタ演算部、100…アクセラレータ装置、111…半導体メモリ装置、120…レジスタ、132…スケジューラ、ACC1…第1アクセラレータ回路、ACC2…第2アクセラレータ回路、ACC3…第3アクセラレータ回路、ACC4…第4アクセラレータ回路、ACC5…第5アクセラレータ回路