IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧

特開2024-120502データ格納システム及びデータ格納方法
<>
  • 特開-データ格納システム及びデータ格納方法 図1
  • 特開-データ格納システム及びデータ格納方法 図2
  • 特開-データ格納システム及びデータ格納方法 図3
  • 特開-データ格納システム及びデータ格納方法 図4
  • 特開-データ格納システム及びデータ格納方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024120502
(43)【公開日】2024-09-05
(54)【発明の名称】データ格納システム及びデータ格納方法
(51)【国際特許分類】
   G06F 11/10 20060101AFI20240829BHJP
   G06F 12/04 20060101ALI20240829BHJP
   G06N 3/063 20230101ALI20240829BHJP
   G06F 12/06 20060101ALI20240829BHJP
【FI】
G06F11/10 604
G06F12/04 530
G06N3/063
G06F11/10 648
G06F12/06 515L
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023027331
(22)【出願日】2023-02-24
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100169199
【弁理士】
【氏名又は名称】石本 貴幸
(72)【発明者】
【氏名】広津 鉄平
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160DA08
(57)【要約】      (修正有)
【課題】ニューラルネットワークに用いるパラメータを圧縮した圧縮データの信頼性を高めることができる、データ格納システム及びデータ格納方法を提供する。
【解決手段】演算システム10において、SoC(System on a Chip)14は、ニューラルネットワークによって処理されるパラメータを記憶する外部メモリ12と、外部メモリ12から転送されたパラメータを一時的に記憶してPEアレイ16へ転送する内部メモリ22と、を備える。外部メモリ12は、前記パラメータを圧縮した圧縮データ、及び圧縮データを展開するためのデコードテーブルを記憶する。内部メモリ22は、誤り訂正符号が付加されたデコードテーブル、及び誤り検出符号が付加された圧縮データを記憶する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ニューラルネットワークによって処理されるパラメータを記憶する外部メモリ(12)と、
前記外部メモリから転送された前記パラメータを一時的に記憶してプロセッサへ転送する内部メモリ(22)と、を備え、
前記外部メモリは、前記パラメータを圧縮した圧縮データ、及び前記圧縮データを展開するためのデコードテーブルを記憶し、
前記内部メモリは、誤り訂正符号が付加された前記デコードテーブル、及び誤り検出符号が付加された前記圧縮データを記憶する、
データ格納システム(10)。
【請求項2】
前記内部メモリから読み出した前記圧縮データに誤りを検出した場合に、前記パラメータの替わりにゼロ値を前記プロセッサへ転送する、請求項1に記載のデータ格納システム。
【請求項3】
前記デコードテーブルに前記誤り訂正符号を付加し、前記圧縮データに前記誤り検出符号を付加して前記内部メモリに記憶させる内部メモリコントローラ(20)を備え、
前記内部メモリコントローラは、前記誤り訂正符号によって誤り訂正された前記デコードテーブルを用いて前記圧縮データを展開して得られた前記パラメータを前記プロセッサへ転送する、請求項1又は請求項2に記載のデータ格納システム。
【請求項4】
前記内部メモリコントローラは、前記圧縮データに誤りを検出した場合に、前記パラメータの替わりにゼロ値を前記プロセッサへ転送する、請求項3に記載のデータ格納システム。
【請求項5】
ニューラルネットワークによって処理されるパラメータを圧縮した圧縮データ、及び前記圧縮データを展開するためのデコードテーブルを外部メモリが記憶し、
前記外部メモリから転送されて、誤り訂正符号が付加された前記デコードテーブル及び誤り検出符号が付加された前記圧縮データを一時的に内部メモリに記憶し、
前記デコードテーブルを用いて展開した前記圧縮データを前記内部メモリからプロセッサへ転送する、
データ格納方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ格納システム及びデータ格納方法に関する。
【背景技術】
【0002】
近年、ニューラルネットワークの大規模化が促進しており、ニューラルネットワークによるデータ処理量が増加している。このため、ニューラルネットワークで用いるパラメータであるウェイトデータのうち0に近いデータを0に丸める、所謂、枝切り処理によってニューラルネットワークで処理するデータの軽量化が行われる場合がある。
【0003】
非特許文献1には、枝切り処理を行ったウェイトデータの圧縮及び展開方法が記載されている。枝切り処理が行われたウェイトデータは、一般的にスパース行列となるため、非特許文献1では、スパース行列の行又は列毎に圧縮する方法が記載されている。
【0004】
特許文献1に記載の圧縮方法では、スパース行列を構成する行に含まれる非ゼロ要素のベクトルvjとベクトルvjの各要素の前に存在するゼロの個数を示すベクトルzjとのペアである(v,z)jで圧縮データを表す。そして、この圧縮方法では、(v,z)jの先頭を示すアドレスポインタのベクトルpjによって圧縮データのアドレスを計算する。
【先行技術文献】
【特許文献】
【0005】
【非特許文献1】Song Han, Xingyu Liu, Huizi Mao, Jing Pu, Ardavan Pedram, Mark A. Horowitz, William J. Dally, "EIE: Efficient Inference Engine on Compressed Deep Neural Network", ACM SIGARCH Computer Architecture News, Volume 44, Issue 3,June 2016, pp 243-254
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1の圧縮方法では、圧縮データを格納するメモリにエラーが発生した場合、特に圧縮データの展開に必要なベクトルzj,pjにエラーが発生した場合、圧縮データの展開ができなくなり、圧縮データの信頼性が低下することとなる。このため、この圧縮方法は、自動車等の高い信頼性を要する用途にそのままで用いることは難しい。
【0007】
そこで、エラーを訂正するためにウェイトデータを記憶するメモリで誤り訂正符号(Error-Correcting Code:ECC)を付加することが考えられる。しかしながら、ECCを付加すると、メモリの容量を大きくしなければならず、それに伴う性能低下が生じる可能性がある。
【0008】
本発明は上記背景に鑑み、ニューラルネットワークに用いるパラメータを圧縮した圧縮データの信頼性を高めることができる、データ格納システム及びデータ格納方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示す一例であって、本発明の技術的範囲を限定するものではない。
【0010】
本発明の一態様のデータ格納システム(10)は、ニューラルネットワークによって処理されるパラメータを記憶する外部メモリ(12)と、前記外部メモリから転送された前記パラメータを一時的に記憶してプロセッサへ転送する内部メモリ(22)と、を備え、前記外部メモリは、前記パラメータを圧縮した圧縮データ、及び前記圧縮データを展開するためのデコードテーブルを記憶し、前記内部メモリは、誤り訂正符号が付加された前記デコードテーブル、及び誤り検出符号が付加された前記圧縮データを記憶する。
【0011】
本構成によれば、デコードテーブルにエラーが生じても、誤り訂正符号によってデコードテーブルのエラーを訂正し、圧縮データの展開が可能となる。また、誤り検出符号によって、圧縮データのエラーの有無を検知できる。従って、本構成のデータ格納システムは、ニューラルネットワークに用いるパラメータを圧縮した圧縮データの信頼性を高めることができる。
【0012】
上記のデータ格納システムにおいて、前記内部メモリから読み出した前記圧縮データに誤りを検出した場合に、前記パラメータの替わりにゼロ値を前記プロセッサへ転送してもよい。本構成によれば、エラーが生じたウェイトデータをニューラルネットワークに使用することを防止できる。
【0013】
上記のデータ格納システムにおいて、前記デコードテーブルに前記誤り訂正符号を付加し、前記圧縮データに前記誤り検出符号を付加して前記内部メモリに記憶させる内部メモリコントローラ(20)を備え、前記内部メモリコントローラは、前記誤り訂正符号によって誤り訂正された前記デコードテーブルを用いて前記圧縮データを展開して得られた前記パラメータを前記プロセッサへ転送してもよい。
【0014】
上記のデータ格納システムにおいて、前記内部メモリコントローラは、前記圧縮データに誤りを検出した場合に、前記パラメータの替わりにゼロ値を前記プロセッサへ転送してもよい。
【0015】
本発明の二態様のデータ格納方法は、ニューラルネットワークによって処理されるパラメータを圧縮した圧縮データ、及び前記圧縮データを展開するためのデコードテーブルを外部メモリが記憶し、前記外部メモリから転送されて、誤り訂正符号が付加された前記デコードテーブル及び誤り検出符号が付加された前記圧縮データを一時的に内部メモリに記憶し、前記デコードテーブルを用いて展開した前記圧縮データを前記内部メモリからプロセッサへ転送してもよい。
【発明の効果】
【0016】
本発明によれば、ニューラルネットワークに用いるパラメータを圧縮した圧縮データの信頼性を高めることができる。
【図面の簡単な説明】
【0017】
図1】本実施形態の演算システムの概略構成図である。
図2】本実施形態の内部メモリアドレスマップを示す模式図である。
図3】本実施形態のDMAコマンドを示す模式図である。
図4】本実施形態の内部メモリコントローラ及び内部メモリの概略構成図である。
図5】ニューラルネットワークを構成する複数のレイヤを示す模式図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明の実施形態を説明する。なお、以下に説明する実施形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施形態に応じた具体的構成が適宜採用されてよい。
【0019】
図1は、本実施形態のデータ格納システムを含む演算システム10の概略構成図である。演算システム10は、外部メモリ12及び演算装置であるSoC(System on a Chip)14を備える。本実施形態の演算システム10は、一例として、車両に搭載されて用いられるが、演算システム10が用いられる対象は車両に限られない。
【0020】
本実施形態のSoC14は、演算機である複数のPE(Processing Element)で構成されるPEアレイ16によって、ニューラルネットワークに基づく演算を行う。なお、PEアレイ16は、プロセッサの一実施形態である。
【0021】
このため、外部メモリ12には、ニューラルネットワークによる演算に用いるパラメータの一例としてウェイトデータ(重み係数)が記憶されている。本実施形態の外部メモリ12は、ウェイトデータを圧縮した圧縮データ、及び圧縮データを展開するためのデコードテーブルを記憶している。すなわち、外部メモリ12は、ウェイトデータを圧縮データ及びデコードテーブルの2つに分割して記憶する。
【0022】
ウェイトデータの圧縮方法は、一例として、非特許文献1(Song Han, Xingyu Liu, Huizi Mao, Jing Pu, Ardavan Pedram, Mark A. Horowitz, William J. Dally, "EIE: Efficient Inference Engine on Compressed Deep Neural Network", ACM SIGARCH Computer Architecture News, Volume 44, Issue 3,June 2016, pp 243-254)に記載されている方法であるが、これに限らず、他の圧縮方法が用いられてもよい。
【0023】
SoC14は、PEアレイ16の他に、外部メモリコントローラ18、内部メモリコントローラ20、内部メモリ22、及びDMAC(DMA Controller)24を備える。PEアレイ16、外部メモリコントローラ18、内部メモリコントローラ20、及びDMAC24は、バス26に接続されており、各々バス26を介してデータの入出力が可能とされている。
【0024】
外部メモリコントローラ18は、外部メモリ12から圧縮データ及びデコードテーブルを読み出す。
【0025】
内部メモリコントローラ20は、デコードテーブルに誤り訂正符号(以下「ECC」という。)を付加し、圧縮データに誤り検出符号(以下「パリティ」という。)を付加して内部メモリ22に記憶させる。そして、内部メモリコントローラ20は、ECCによって誤り訂正されたデコードテーブルを用いて圧縮データを展開して得られたウェイトデータをPEアレイ16へ転送する。
【0026】
本実施形態の内部メモリ22は、ECCが付加されデコードテーブルを領域1に記憶する。また、本実施形態の内部メモリ22は、パリティが付加された圧縮データを領域2に記憶する。
【0027】
これにより、仮に、デコードテーブルにエラーが生じても、ECCによってデコードテーブルのエラーが訂正され、圧縮データの展開が可能となる。また、パリティによって、圧縮データのエラーの有無を検知できる。従って、本実施形態の演算システム10は、ニューラルネットワークに用いるウェイトデータを圧縮した圧縮データの信頼性を高めることができる。
【0028】
また、本実施形態の演算システム10は、圧縮データにエラーが検出された場合、ウェイトデータの替わりにゼロ値をPEアレイ16へ転送するゼロマスク処理を行う。なお、ゼロマスク処理は、内部メモリコントローラ20によって行われる。
【0029】
図2は、本実施形態の内部メモリアドレスマップの例を示す模式図である。
【0030】
内部メモリコントローラ20は、書き込みデータのアドレスが0xa0000000~0xa000ffffの場合、デコードテーブルにECCを付加して内部メモリ22の領域1に記憶させる。そして、内部メモリコントローラ20は、読み出しデータのアドレスが0xa0000000~0xa000ffffの場合であって、デコードテーブルにエラーが発生した場合、ECCよりエラーを訂正する。
【0031】
また、内部メモリコントローラ20は、書き込みデータのアドレスが0xa0010000~0xa007ffffの場合、圧縮データにパリティを付加して内部メモリ22の領域2に記憶させる。そして、内部メモリコントローラ20は、読み出しデータのアドレスが0xa0010000~0xa007ffffの場合であって、圧縮データにエラーが発生した場合、パリティによりエラーを検出し、読み出し値として0をPEアレイ16へ転送するゼロマスク処理を行う。
【0032】
なお、図2に示されるように、一例として、デコードテーブルと圧縮データとの容量比が1:7であるように、デコードテーブルは圧縮データに比べてデータ容量は小さい。このため、デコードテーブルにECCを付加しても内部メモリ22の使用量は小さい。一方、圧縮データは、デコードテーブルに比べてデータ容量が大きいため、パリティを付加することで、内部メモリ22の使用量を削減できる。
【0033】
これにより仮に、デコードテーブルにエラーが生じても、ECCによってデコードテーブルのエラーを訂正し、圧縮データの展開が可能となる。また、パリティによって、圧縮データのエラーの有無を検知できる。従って、本実施形態の演算システム10は、ニューラルネットワークに用いるウェイトデータを圧縮した圧縮データの信頼性を高めることができる。
【0034】
また、本実施形態の内部メモリコントローラ20は、圧縮データにエラーが検出された場合、ウェイトデータの替わりにゼロ値をPEアレイ16へ転送するゼロマスク処理を行うので、エラーが生じたウェイトデータをニューラルネットワークに使用することを防止できる。
【0035】
DMAC24は、SoC14内におけるDMA転送の制御を行なう。図3は、DMAコマンドの例を示す模式図である。
【0036】
図3に示されるTransfer mode(TMODE)は、転送モードを指定するものであり、“0”の場合は通常モードであり、“1”の場合は展開モードである。通常モードは、外部メモリ12から内部メモリ22へデータ転送を行うモードである。展開モードは、内部メモリ22からPEアレイ16へ圧縮データを展開してデータ転送を行うモードである。
【0037】
すなわち、通常モードは、Source address1(SA1)で指定した外部メモリ12のアドレスからData size1(DS1)で指定したデータ量をDestination address1(DA1)で指定した内部メモリ22のアドレスへ転送する。
【0038】
通常モードによる外部メモリ12から内部メモリ22へのデコードテーブルの転送コマンドは、例えば、SA1が0xc0000000とされ、DA1が0xa0000000とされ、DS1が0x00004000とされる。また、通常モードによる外部メモリ12から内部メモリ22への圧縮データの転送コマンドは、例えば、SA1が0xc0004000とされ、DA1が0xa0010000とされ、DS1が0x00040000とされる。
【0039】
展開モードは、Source address1(SA1)からData size1(DA1)のデータ量からなるデコードテーブルを解読し、Source address2(SA2)を先頭アドレスとする圧縮データを展開してDestination address2(DA2)へ転送する。展開モードによる内部メモリ22からPEアレイ16への転送コマンドは、例えば、SA1が0xa00000000とされ、DS1が0x00004000とされ、SA2が0xa0010000とされ、DA2が0x90000000とされる。なお、内部メモリ22からPEアレイ16へは、展開済みのウェイトデータ、又はゼロマスク処理されたウェイトデータが転送される。
【0040】
図4は、本実施形態の内部メモリコントローラ20及び内部メモリ22の概略構成図である。
【0041】
内部メモリコントローラ20は、バッファ30、アドレスデコーダ32、ECC生成部34、パリティ生成部36、エラー訂正部38、ゼロマスク処理部40、及びセレクタ42を備える。
【0042】
バッファ30は、外部メモリ12から転送されたデコードテーブルや圧縮データを一時的に記憶する。
【0043】
アドレスデコーダ32は、DMAコマンドで指定されたアドレスにデコードテーブルや圧縮データを記憶するように、内部メモリ22に信号を出力する。また、アドレスデコーダ32は、DMAコマンドで指定されたアドレスのデコードテーブルや圧縮データを内部メモリ22から読み出す。
【0044】
ECC生成部34は、デコードテーブルに付加するECCを生成する。ECCが付加されたデコードテーブルは、DMAコマンドで指定されたアドレスで内部メモリ22に記憶される。
【0045】
パリティ生成部36は、圧縮データに付加するパリティを生成する。パリティが付加された圧縮データは、DMAコマンドで指定されたアドレスで内部メモリ22に記憶される。
【0046】
エラー訂正部38は、内部メモリ22の領域1から読み出したECC付きデコードテーブルからエラーが検出された場合に、デコードテーブルのエラーを訂正してセレクタ42へ出力する。なお、デコードテーブルにエラーが検出されなかった場合には、エラー訂正部38はエラーの訂正を行うことなく、デコードテーブルをセレクタへ出力する。
【0047】
ゼロマスク処理部40は、内部メモリ22の領域2から読み出した圧縮データからエラーが検出された場合、圧縮データを0とするゼロマスク処理を行う。なお、圧縮データにエラーが検出されなかった場合、ゼロマスク処理部40は、圧縮データにゼロ値をマスクすることなく、圧縮データをセレクタ42へ出力する。
【0048】
セレクタ42は、デコードテーブルを用いて圧縮データを展開して得られたウェイトデータをDMAコマンドで指定されたアドレスが示すPEへ転送する。なお、ゼロマスク処理が行われた場合には、ゼロ値とされたウェイトデータをDMAコマンドで指定されたアドレスが示すPEへ転送する。
【0049】
ここで、圧縮データにエラーが検出された場合、ニューラルネットワークでウェイトデータをゼロ値としても演算が可能であることを、図5を参照して説明する。図5は、ニューラルネットワークを構成する複数のレイヤを示す模式図である。図5に示すWijはパラメータ(本実施形態ではウエイトデータ)であり、Xiはニューラルネットワークへの入力値である。
【0050】
ニューラルネットワークは、一般的に、数十から数百の積和演算からなるレイヤを複数段結合して演算を行い、その最終結果として出力Yを求める。大規模なニューラルネットワークは、積和演算の総回数は1000回以上となる場合もあり、その内の1回の積和演算でエラーが発生してWij×Xi=0になったとしても誤差は0.1%程度となる。この誤差は、積和演算の総回数が多くなるほど小さくなる。
【0051】
さらにWijの分布は0を中心とした正規分布になる場合が多く、Wijを0にマスクしても、結果としてWijに近似した値となる可能性が高いため、誤差はさらに小さくなると予想される。一方で、Wijにエラーが生じて、0にも近似しない全く異なる値をWijとしてそのまま用いる方が、Wijを0にマスクするよりも誤差はより大きくなる可能性がある。
【0052】
また、一般的な算術演算では、演算結果である絶対値の精度が求められるが、ニューラルネットワークによる演算では、演算結果の絶対値ではなく大小関係の正しさが求められる。例えば、画像分類問題で画像が犬であるか猫であるかを判別するニューラルネットワークでは、犬である確率を示す出力1と猫である確率を示す出力2があり、ニューラルネットワークの出力が出力1>出力2であれば画像は犬、出力1<出力2であれば画像は猫と判断される。このため、特徴のある画像(例えば明確に犬の画像)であれば、出力の大小関係の差が大きく、積和演算の一要素が間違った場合でも大小関係の結果は変わらない可能性が高い。
【0053】
以上のことから、本実施形態のゼロマスク処理のように、圧縮データにエラーが発生した場合に、ネットワークパラメータWijを0にマスクしても、ニューラルネットワークにおける最終結果に影響は無いといえる。
【0054】
以上、本発明を、上記実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更又は改良を加えることができ、該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。
【0055】
上記実施形態では、外部メモリ12に記憶しているパラメータをウェイトデータとする形態について説明したが、これに限らず、パラメータはニューラルネットワークに用い、PEアレイ16へ転送されるデータであれば、ウェイトデータに限らず、他のパラメータでもよい。
【0056】
10・・・演算システム、12・・・外部メモリ、16・・・PEアレイ、
20・・・内部メモリコントローラ、22・・内部メモリ
図1
図2
図3
図4
図5