(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024100383
(43)【公開日】2024-07-26
(54)【発明の名称】演算装置およびデータの圧縮方法、データの圧縮プログラム
(51)【国際特許分類】
G06N 3/0495 20230101AFI20240719BHJP
G06F 17/16 20060101ALI20240719BHJP
【FI】
G06N3/0495
G06F17/16 Q
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023004343
(22)【出願日】2023-01-16
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】520124752
【氏名又は名称】株式会社ミライズテクノロジーズ
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】向井 文哉
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB39
(57)【要約】
【課題】アクセス時間が長くなることを抑制できる技術を提供する。
【解決手段】演算装置100、100Bは、ニューラルネットワークモデルを実行して演算処理を行う演算部11と、演算部が用いるデータが格納されるキャッシュ部12と、演算部が用いるデータがキャッシュ部に格納されている割合であるヒット率を算出する算出部31と、ヒット率と予め定められた目標ヒット率とに応じて圧縮率を定める決定部32と、キャッシュ部に格納されるデータを圧縮率で圧縮する圧縮部33と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
演算装置(100、100B)であって、
ニューラルネットワークモデルを実行して演算処理を行う演算部(11)と、
前記演算部が用いるデータが格納されるキャッシュ部(12)と、
前記演算部が用いるデータが前記キャッシュ部に格納されている割合であるヒット率を算出する算出部(31)と、
前記ヒット率と予め定められた目標ヒット率とに応じて圧縮率を定める決定部(32)と、
前記キャッシュ部に格納されるデータを前記圧縮率で圧縮する圧縮部(33)と、を備える、演算装置。
【請求項2】
請求項1に記載の演算装置であって、更に、
前記演算部が前記演算処理に用いるデータの取得に要するアクセス時間を計測する計測部(34)を備え、
前記目標ヒット率は、予め定めた目標アクセス時間に応じて定められる、演算装置。
【請求項3】
請求項2に記載の演算装置であって、
前記決定部は、前記アクセス時間が予め定めた閾値アクセス時間以上になった場合に、前記ヒット率と前記目標ヒット率とに応じて前記圧縮率を定める、演算装置。
【請求項4】
演算装置が実行するデータの圧縮方法であって、
ニューラルネットワークモデルを実行して演算処理を行う演算工程と、
前記演算工程において用いるデータをキャッシュ部に格納する格納工程と、
前記演算工程において用いるデータが前記キャッシュ部に格納されている割合であるヒット率を算出する算出工程と、
前記ヒット率と予め定められた目標ヒット率とに応じて圧縮率を定める決定工程と、
前記格納工程において格納されるデータを前記圧縮率で圧縮する圧縮工程と、を含む、圧縮方法。
【請求項5】
データの圧縮プログラムであって、
ニューラルネットワークモデルを実行して演算処理を行う演算機能と、
前記演算機能において用いるデータをキャッシュ部に格納する格納機能と、
前記演算機能において用いるデータが前記キャッシュ部に格納されている割合であるヒット率を算出する算出機能と、
前記ヒット率と予め定められた目標ヒット率とに応じて圧縮率を定める決定機能と、
前記格納機能によって格納されるデータを前記圧縮率で圧縮する圧縮機能と、をコンピュータに実現させる、圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、演算装置およびデータの圧縮方法、データの圧縮プログラムに関する。
【背景技術】
【0002】
ニューラルネットワークモデルを圧縮する技術が知られている。特許文献1には、ニューラルネットワークモデルの重みのテンソルデータを、タッカー分解を用いて圧縮する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ニューラルネットワークモデルを実行する演算処理において、キャッシュメモリに格納されているニューラルネットワークモデルの中間層のデータを参照する場合がある。キャッシュメモリの容量は小さいため、中間層のデータがキャッシュメモリに格納されていない場合、アクセス時間が長くなる。そのため、アクセス時間が長くなることを抑制できる技術が望まれていた。
【課題を解決するための手段】
【0005】
本開示の一形態によれば、演算装置(100、100B)が提供される。演算装置は、ニューラルネットワークモデルを実行して演算処理を行う演算部(11)と、前記演算部が用いるデータが格納されるキャッシュ部(12)と、前記演算部が用いるデータが前記キャッシュ部に格納されている割合であるヒット率を算出する算出部(31)と、前記ヒット率と予め定められた目標ヒット率とに応じて圧縮率を定める決定部(32)と、前記キャッシュ部に格納されるデータを前記圧縮率で圧縮する圧縮部(33)と、を備える。
【0006】
この形態の演算装置によれば、ヒット率と目標ヒット率とに応じて圧縮率を定めて圧縮を行うため、ヒット率を目標ヒット率に近似できる蓋然性が高い。そのため、ヒット率が低下することを抑制できるため、アクセス時間が長くなることを抑制できる。
【図面の簡単な説明】
【0007】
【
図2】ニューラルネットワークモデルによる演算処理についての説明図である。
【
図3】演算処理の一例を示したフローチャートである。
【
図4】第2実施形態における演算装置の構成の概要を示す説明図である。
【
図5】第2実施形態における演算処理の一例を示したフローチャートである。
【
図6】第3実施形態における演算処理の一例を示したフローチャートである。
【発明を実施するための形態】
【0008】
A.第1実施形態:
図1に示すように、演算装置100は、CPU10と、メモリ20と、制御回路部30とを備える。本実施形態において、演算装置100は、ニューラルネットワークモデルを実行して演算処理を行う装置である。演算装置100は、例えば、車両に搭載され、画像解析のための演算処理を行う。演算装置100は、クラウド上に実装されていてもよい。
CPU10は、メモリ20にインストールされたプログラムを実行することによって、演算部11の機能を実現し、キャッシュ部12に格納されたデータを用いて演算処理を行う。制御回路部30は、CPUや、RAM、ROMにより構成されたマイクロコンピュータ等からなり、RAMやROM、メモリ20に予めインストールされたプログラムをマイクロコンピュータが実行することによって、算出部31や決定部32、圧縮部33の機能を実現し、メモリ20の管理を行う。
【0009】
演算部11は、ニューラルネットワークモデルを実行して演算処理を行う。
図2に示すように、ニューラルネットワークは、入力層L1と、複数の中間層L2と、出力層L3とを備える。中間層L2の数は任意に定める事ができる。入力層L1は、情報が入力される層である。中間層L2は、入力層L1から伝達される情報に基づいて特徴量の算出を行う層である。出力層L3は、中間層L2から伝達される情報に基づいて結果を出力する層である。各層には、複数のノードが含まれる。隣接する層のノードとノードとを繋ぐエッジは、重み付けされている。演算部11は、例えば、ノードN1に重みW11を掛け合わせ、ノードN2に重みW12を掛け合わせ、ノードN3に重みW13を掛け合わせ、これらを足し合わせてノードN4の値を求める積和演算を含む演算を行う。
【0010】
キャッシュ部12(
図1参照)には、演算部11が演算処理に用いるデータが格納される。より具体的には、ニューラルネットワークモデルにおける、入力層や中間層、出力層のノードに入力される値に乗算される重みや、中間層のノードの値を一時的に記憶する。キャッシュ部12に演算部11が演算処理に用いるデータを格納する処理を「格納工程」ともいう。
【0011】
メモリ20は、10や30が実行するプログラムや、ニューラルネットワークモデルにおける、入力層や中間層、出力層のノードに入力される値に乗算される重みや、中間層のノードの値を記憶する。
【0012】
算出部31は、演算部11が用いるデータがキャッシュ部12に格納されている割合であるヒット率を算出する。ヒット率は、メモリ20に対するキャッシュ部12の記憶可能容量に大きく依存する。一般的に、キャッシュ部12の記憶可能容量が大きい程、記憶できるデータが増えるため、ヒット率が高くなる。また、データの圧縮率が大きいほど、キャッシュ部12に格納できるデータの数が増えるため、ヒット率が高くなる。
【0013】
決定部32は、算出部31が算出したヒット率と予め定められた目標ヒット率とに応じて演算部11がキャッシュ部12に格納するデータの圧縮率を決定する。本開示において、圧縮率は、データを圧縮した際に、圧縮後のデータが元のデータのどのくらいの情報量に減ったかを表す割合である。圧縮率の決定の詳細については後述する。
【0014】
圧縮部33は、決定部32が決定した圧縮率で、演算部11がキャッシュ部12に格納するデータを圧縮する。圧縮方法の詳細については後述する。
【0015】
図3に示す圧縮処理は、決定部32が圧縮率を決定し、圧縮部33が演算部11の転送するデータを圧縮する処理である。この処理は、演算部11が演算処理を実行する際に繰り返し実行される。演算処理を「演算工程」ともいう。
【0016】
ステップS100において、算出部31は、演算部11が転送するデータ量を取得する。この工程を「算出工程」ともいう。
【0017】
ステップS110において、決定部32は、ステップS100で算出したヒット率と予め定められた目標ヒット率とに応じて圧縮率を決定する。この工程を「決定工程」ともいう。本実施形態において、決定部32は、例えば、次の式(1)で目標ヒット率とヒット率とから、圧縮率を決定する。
【0018】
CR=r/ra…(1)
ここでCRは圧縮率であり、rは算出したヒット率であり、raは目標ヒット率である。
【0019】
また、本実施形態において、決定部32は、圧縮率から、圧縮後の行列データのランク数を決定する。決定部32は、圧縮率とランク数との関係を予め定めた関数やテーブルを用いて、行列データのランク数を決定する。行列データのランク数が小さくなるほど、データ量が小さくなるため、圧縮率が大きくなる。
【0020】
ステップS120において、圧縮部33は、ステップS110で決定した圧縮率で、演算部11が転送するデータを圧縮する。この工程を「圧縮工程」ともいう。本実施形態において、圧縮部33は、特異値分解(singular value decomposition(SVD))によって、データを圧縮する。より具体的には、データのランク数を、圧縮率とランク数との関係を予め定めた関数やテーブルを用いて求められたランク数に近似するように、特異値分解を行う。
【0021】
以上で説明した本実施形態の演算装置100によれば、ヒット率と目標ヒット率とに応じて圧縮率を定めて圧縮を行うため、ヒット率を目標ヒット率に近似できる蓋然性が高い。そのため、ヒット率が低下することを抑制できるため、メモリ20を参照することなく、キャッシュ部12に格納されたデータを用いて演算を行える。従って、アクセス時間が長くなることを抑制できる。
【0022】
B.第2実施形態:
図4に示す第3実施形態の100Bは、計測部34を備える点が第1実施形態と異なり、他の構成は同一である。
図5に示す第2実施形態の圧縮処理は、ステップS103において目標アクセス時間に応じて目標ヒット率を決定する点が第1実施形態と異なり、他の工程は同一である。
【0023】
計測部34(
図4参照)は、演算部11が演算処理に用いるデータの取得に要するアクセス時間を計測する。本実施形態において、計測部34は、演算部11がキャッシュ部12からデータを取得する場合に要するアクセス時間と、演算部11がメモリ20からデータを取得する場合に要するアクセス時間と、を計測できる。
【0024】
ステップS103(
図5参照)において、決定部32は、予め定められた目標アクセス時間から、目標ヒット率を決定する。決定部32は、例えば、次の式(2)で目標アクセス時間から目標ヒット率を決定する。
【0025】
AT=T1×ra+T2×ra…(2)
ここで、ATは目標アクセス時間である。T1はキャッシュ部12からデータを取得する場合に要するアクセス時間であり、raは目標ヒット率であり、T2はメモリ20からデータを取得する場合に要するアクセス時間である。
【0026】
以上で説明した第2実施形態の演算装置100Bによれば、決定部32は、予め定められた目標アクセス時間から、目標ヒット率を決定している。そのため、アクセス時間を目標アクセス時間へ近似できる圧縮率で、データを圧縮することができる。
【0027】
C.第3実施形態:
図6に示す第3実施形態の圧縮処理は、アクセス時間が予め定めた閾値アクセス時間以上になった場合に、ステップS110の処理を実行する点が第2実施形態と異なり、他の工程は同一である。第3実施形態の演算装置100Bの構成は、第2実施形態の演算装置100Bの構成と同一であるため、演算装置100Bの構成の説明は省略する。
【0028】
ステップS105において、決定部32は、計測部34が計測したアクセス時間が閾値アクセス時間以上か否かを判定する。閾値アクセス時間は、目標アクセス時間よりも大きい値である。アクセス時間が閾値アクセス時間以上の場合、決定部32は、ステップS110の処理に進む。一方、アクセス時間が閾値アクセス時間未満の場合、決定部32は、ステップS115の処理に進む。
【0029】
ステップS115において、決定部32は、圧縮率を既定の値に決定する。既定の圧縮率は、例えば、算出部31の記憶領域に保存されている圧縮率である。すなわち、アクセス時間が閾値アクセス時間以上の場合、圧縮率は更新され、一方、アクセス時間が閾値アクセス時間未満の場合、圧縮率は更新されない。
【0030】
以上で説明した第3実施形態の演算装置100Bによれば、決定部32は、アクセス時間が予め定めた閾値アクセス時間以上になった場合に、アクセス時間と目標アクセス時間から決定した目標ヒット率と、ヒット率とに応じて圧縮率を決定する。そのため、頻繁に圧縮率を変更することを抑制できる。
【0031】
D.他の実施形態:
(D1)上述した実施形態において、演算装置100は、GPU(Graphics Processing Unit)やNPU(Neural network Processing Unit)等のアクセラレータであってもよい。
【0032】
(D2)上述した実施形態において、演算部11は、ニューラルネットワークモデルを実行して演算処理を行っている。これに限らず、演算部11は、ニューラルネットワークモデルを実行せずに演算処理を行ってもよい。なお、演算部11が扱うデータは、行列データやテンソルデータであることが好ましい。
【0033】
(D3)上述した実施形態において、算出部31は、演算部11が演算処理に用いるデータがキャッシュ部12に格納されている割合をヒット率として算出している。これに限らず、算出部31は、演算部11が演算処理に用いるデータがメモリ20に格納されている割合をヒット率として算出してもよい。
【0034】
(D4)上述した実施形態において、決定部32は、圧縮率とランク数との関係を予め定めた関数やテーブルを用いて、圧縮後の行列のランク数を決定している。これに限らず、圧縮部33が、圧縮率とランク数との関係を予め定めた関数やテーブルを用いて、圧縮後の行列のランク数を決定してもよい。
【0035】
(D5)上述した実施形態において、圧縮部33は、特異値分解を用いて圧縮している。これに限らず、スパース化やアルゴリズムを用いた圧縮を行ってもよい。また、転送するデータがテンソルデータである場合、圧縮部33は、タッカー分解を用いて圧縮できる。
【0036】
(D6)上述した第2実施形態および第3実施形態において、決定部32は、目標アクセス時間から、目標ヒット率を決定している。これに限らず、圧縮部33が、目標アクセス時間から、目標ヒット率を決定してもよい。
【0037】
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述した課題を解決するために、あるいは上述の効果の一部又は全部を達成するために、適宜、差し替えや組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜削除することが可能である。
【0038】
本開示に記載の制御回路部30及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御回路部30及びその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御回路部30及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0039】
10…CPU、11…演算部、12…キャッシュ部、20…メモリ、30…制御回路部、31…算出部、32…決定部、33…圧縮部、34…計測部、100、100B…演算装置