JP7033507B2 - ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム - Google Patents
ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム Download PDFInfo
- Publication number
- JP7033507B2 JP7033507B2 JP2018143466A JP2018143466A JP7033507B2 JP 7033507 B2 JP7033507 B2 JP 7033507B2 JP 2018143466 A JP2018143466 A JP 2018143466A JP 2018143466 A JP2018143466 A JP 2018143466A JP 7033507 B2 JP7033507 B2 JP 7033507B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- mode
- microcode
- norm
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Description
(1)ノルムモードに設定されている場合、
マイクロコード取得部は、ノルムモード用マイクロコードを取得し、算術演算処理部は、ノルムモード用マイクロコードに基づいて、算術演算処理を実行する。
(2)内積演算モードに設定されている場合、
マイクロコード取得部は、内積演算モード用マイクロコードを取得し、算術演算処理部は、内積演算モード用マイクロコードに基づいて、算術演算処理を実行する。
(1)ノルムモードの処理を、処理対象の畳み込み層の特徴マップ数分繰り返し実行し、
(2)内積演算モードの処理を、各特徴マップについてノルムモードの処理が実行されるごとに、処理対象の畳み込み層の出力数分繰り返し実行する。
(1)処理対象の全結合層につき、ノルムモードの処理を1回実行し、
(2)内積演算モードの処理を、処理対象の全結合層の出力数分繰り返し実行する。
第1実施形態について、図面を参照しながら、以下、説明する。
図1は、第1実施形態に係る二値化ニューラルネットワーク用プロセッサ100の概略構成図である。
なお、「Offsetモード」は、畳み込み層に入力される特徴マップおよび全結合層に入力される特徴ベクトルに対して量子化処理を実行する場合において、特徴マップの最小値および特徴ベクトルの最小値が所定の値よりも小さい値となるように設定されるオフセット値を取得する処理を実行するためのモードである。
「Normモード」は、特徴マップおよび特徴ベクトルのノルムを算出する処理を実行するためのモードである。
「DPモード」は、多値基底行列と量子化処理後の特徴マップまたは特徴ベクトルとを用いた内積演算処理を実行するためのモードである。
以上のように構成された二値化ニューラルネットワーク用プロセッサ100の動作について、以下、説明する。
(先行技術文献A):
神谷龍司等 “Binarized-DCNNによる識別計算の高速化とモデル圧縮” 信学技報 116(366), 47-52, 2016-12-15 電子情報通信学会
上記先行技術文献Aの開示に基づいて、BNNの識別計算の基本式を、下記(数式1)のように導出することができる。
(数式1):
yijn=cn TMn TBijrij+min(x)Offset
yijn:n番目の特徴マップの出力(特徴マップの座標(i,j)の出力値)
cn T:n番目の特徴マップのスケール係数ベクトルcnの転置行列
Mn T:n番目の特徴マップの二値基底行列の転置行列
Bijrij:二値特徴マップ(量子化後の二値特徴マップ)
min(x):n番目の特徴マップの各要素の値のうちの最小値
Offset:Offsetモードで取得される結果
また、Mn T∈{-1,1}とBijrij∈{-1,1}とは二値であるため、下記(数式2)を用いて論理演算とビットカウントで計算することができる。
(数式2):
Mn TBijrij
=2×BITCNT(AND(Mn T,Bijrij))-Norm(z)
z=Bijrij
Norm(z):zのノルムを取得する関数
BITCNT(x):バイナリコードxにおいて、「1」であるビット数をカウントする関数
二値化ニューラルネットワーク用プロセッサ100では、畳み込み層の処理と、全結合層の処理において、同様の処理が実行される部分を共通化することで、ハードウェア規模の増大を抑制しつつ、高速処理を実現させる。
まず、畳み込み層の処理について、説明する。
Δd={max(zl ijm)-min(zl ijm)}/(2Q-1)
max(x):xの最大値を取得する関数
min(x):xの最小値を取得する関数
Q:量子化ビット数
として取得する。
zl ijm’={zl ijm-min(zl ijm)}/Q
に相当する処理を実行し、さらに、上記数式により取得された値を四捨五入して整数値に丸め量子化する。さらに、量子化処理部2は、丸め量子化により取得された値に対して、二値化処理をすることで、バイナリコードzl ijm (b)∈{0,1}を取得する。
(1)量子化処理後の特徴マップBijrijは、特徴マップごとに変化する(入れ替わる)。
(2)上記(数式1)の右辺の第2項、すなわち、min(x)Offsetの値は、特徴マップに関わらず、一定である。
≪畳み込み層の処理の擬似コード≫
For (出力数)
Operate_offset(); // オフセット復元処理
For (特徴マップ数)
Operate_Norm(); // ノルムの計算 (数式2)の右辺の第2項に相当する処理
For (出力数)
Operate_dp(); // 内積計算
二値化ニューラルネットワーク用プロセッサ100は、
(1)上記のオフセット復元処理をOffsetモードの処理で実行し、
(2)上記のノルム計算の処理をNormモードの処理で実行し、
(3)上記の内積計算の処理をDPモード(内積演算処理モード)の処理で実行する。
Offsetモードの処理について、説明する。
(1)min(x)のロード(読み出し)
(2)データD1(=cn T)と、データD6(=Mn T)と、min(x)との乗算処理
なお、min(x)は、量子化処理が実行されるときに取得した値を、例えば、内部RAM R1に記憶保持しておき、マイクロコード取得部34が、min(x)のデータを、内部RAM R1から読み出すようにしてもよい。
(1)min(x)のロード(読み出し)
(2)データD1(=cn T)と、データD6(=Mn T)と、min(x)との乗算処理
を実行することで、出力データDo(=min(x)Offset)を取得する。
Normモードの処理について、説明する。
DPモードの処理について、説明する。
(1)D6×2の処理(1ビット左にシフトさせる処理)
(2)上記(1)の結果からノルムを減算する処理
(3)上記(2)の結果に、データD1(=cn T)を乗算する処理
ALU35は、図5に示すように、データD1(=cn T)とデータD6(=BITCNT(AND(Mn T,Bijrij)))とを入力する。なお、データD1(=cn T)は、内部RAMの領域CVに記憶保持されているスケール係数ベクトルのデータcn Tである。
(1)D6×2の処理(1ビット左にシフトさせる処理)
(2)上記(1)の結果からノルムを減算する処理(2×D6―Norm(z))
(3)上記(2)の結果に、データD1(=cn T)を乗算する処理
を実行することで、出力データDo(=cn TMn TBijrij)を取得する。
Do=cn TMn TBijrij
Mn TBijrij=2×BITCNT(AND(Mn T,Bijrij))-Norm(z)
以上のように処理することで、上記(数式1)の右辺の第1項、すなわち、cn TMn TBijrijの値を取得することができる。
次に、全結合層の処理について、説明する。
Δd={max(zl i)-min(zl i)}/(2Q-1)
max(x):xの最大値を取得する関数
min(x):xの最小値を取得する関数
Q:量子化ビット数
として取得する。
zl i’={zl i-min(zl i)}/Q
に相当する処理を実行し、さらに、上記数式により取得された値を四捨五入して整数値に丸め量子化する。さらに、量子化処理部2は、丸め量子化により取得された値に対して、二値化処理をすることで、バイナリコードzl i (b)∈{0,1}を取得する。
(1)量子化処理後の特徴ベクトルは1つだけである。
≪全結合層の処理の擬似コード≫
Operate_Norm(); // ノルムの計算 (数式2)の右辺の第2項に相当する処理
For (出力数)
Operate_offset(); // オフセット復元処理
Operate_dp(); // 内積計算
二値化ニューラルネットワーク用プロセッサ100は、
(1)上記のノルム計算の処理をNormモードの処理で実行し、
(2)上記のオフセット復元処理をOffsetモードの処理で実行し、
(3)上記の内積計算の処理をDPモード(内積演算処理モード)の処理で実行する。
Normモードの処理について、説明する。
Offsetモードの処理について、説明する。
(1)min(x)のロード(読み出し)
(2)データD1(=cn T)と、データD6(=Mn T)と、min(x)との乗算処理
なお、min(x)は、量子化処理が実行されるときに取得した値を、例えば、内部RAM R1に記憶保持しておき、マイクロコード取得部34が、min(x)のデータを、内部RAM R1から読み出すようにしてもよい。
(1)min(x)のロード(読み出し)
(2)データD1(=cn T)と、データD6(=Mn T)と、min(x)との乗算処理
を実行することで、出力データDo(=min(x)Offset)を取得する。
DPモードの処理について、説明する。
(1)D6×2の処理(1ビット左にシフトさせる処理)
(2)上記(1)の結果からノルムを減算する処理
(3)上記(2)の結果に、データD1(=cn T)を乗算する処理
ALU35は、図5に示すように、データD1(=cn T)とデータD6(=BITCNT(AND(Mn T,Bijrij)))とを入力する。なお、データD1(=cn T)は、内部RAMの領域CVに記憶保持されているスケール係数ベクトルのデータcn Tである。
(1)D6×2の処理(1ビット左にシフトさせる処理)
(2)上記(1)の結果からノルムを減算する処理(2×D6―Norm(z))
(3)上記(2)の結果に、データD1(=cn T)を乗算する処理
を実行することで、出力データDo(=cn TMn TBijrij)を取得する。
Do=cn TMn TBijrij
Mn TBijrij=2×BITCNT(AND(Mn T,Bijrij))-Norm(z)
以上のように処理することで、上記(数式1)の右辺の第1項、すなわち、cn TMn TBijrijの値を取得することができる。
上記実施形態では、二値化ニューラルネットワーク用プロセッサ100が二値化データをjsよりする場合について、説明したが、本発明はこれに限定されることなく、本発明の手法を多値化データに適用し、多値化ニューラルネットワーク用プロセッサを実現するようにしてもよい。
PL1 演算処理部
1 DMA制御部
2 量子化処理部
R1 内部RAM
3 内積処理部
34 マイクロコード取得部
35 ALU
Claims (6)
- 畳み込み層の処理と全結合層の処理とを含む多値化ニューラルネットワーク用処理を実行するためのニューラルネットワーク用プロセッサであって、
実数ベクトルデータであるスケーリング係数ベクトルを設定するとともに、多値データを要素とする多値基底行列を設定する制御部と、
前記畳み込み層に入力される特徴マップおよび前記全結合層に入力される特徴ベクトルに対して量子化処理を実行する量子化処理部であって、前記特徴マップの最小値および前記特徴ベクトルの最小値が所定の値よりも小さい値となるようにオフセット値を設定し、前記特徴マップおよび前記特徴ベクトルの最大値および最小値に基づいて取得される量子化幅を用いて前記量子化処理を実行する前記量子化処理部と、
(1)前記特徴マップおよび前記特徴ベクトルのノルムを算出するノルムモードと、(2)前記多値基底行列と前記量子化処理後の前記特徴マップまたは前記特徴ベクトルとを用いた内積演算処理を実行する内積演算モードとを有し、前記ノルムモードの処理、および、前記内積演算モードを組み合わせた処理を実行することで、前記畳み込み層の処理と前記全結合層の処理とを実行する内積処理部と、
を備えるニューラルネットワーク用プロセッサ。 - 前記内積処理部は、
ノルムモード用マイクロコードと、内積演算モード用マイクロコードとを取得するマイクロコード取得部と、
マイクロコードに基づいて、算術演算処理を実行する算術演算処理部と、
を備え、
(1)ノルムモードに設定されている場合、
前記マイクロコード取得部は、前記ノルムモード用マイクロコードを取得し、
前記算術演算処理部は、前記ノルムモード用マイクロコードに基づいて、前記算術演算処理を実行し、
(2)内積演算モードに設定されている場合、
前記マイクロコード取得部は、前記内積演算モード用マイクロコードを取得し、
前記算術演算処理部は、前記内積演算モード用マイクロコードに基づいて、前記算術演算処理を実行する、
請求項1に記載のニューラルネットワーク用プロセッサ。 - 前記内積処理部は、
前記畳み込み層の処理を実行する場合、
(1)前記ノルムモードの処理を、処理対象の畳み込み層の特徴マップ数分繰り返し実行し、
(2)前記内積演算モードの処理を、各特徴マップについて前記ノルムモードの処理が実行されるごとに、処理対象の畳み込み層の出力数分繰り返し実行する、
請求項1または2に記載のニューラルネットワーク用プロセッサ。 - 前記内積処理部は、
前記全結合層の処理を実行する場合、
(1)処理対象の全結合層につき、前記ノルムモードの処理を1回実行し、
(2)前記内積演算モードの処理を、処理対象の全結合層の出力数分繰り返し実行する、
請求項1から3のいずれかに記載のニューラルネットワーク用プロセッサ。 - 畳み込み層の処理と全結合層の処理とを含む多値化ニューラルネットワーク用処理を実行するためのニューラルネットワーク用処理方法であって、
実数ベクトルデータであるスケーリング係数ベクトルを設定するとともに、多値データを要素とする多値基底行列を設定する制御ステップと、
前記畳み込み層に入力される特徴マップおよび前記全結合層に入力される特徴ベクトルに対して量子化処理を実行する量子化処理ステップであって、前記特徴マップの最小値および前記特徴ベクトルの最小値が所定の値よりも小さい値となるようにオフセット値を設定し、前記特徴マップおよび前記特徴ベクトルの最大値および最小値に基づいて取得される量子化幅を用いて前記量子化処理を実行する前記量子化処理ステップと、
(1)前記特徴マップおよび前記特徴ベクトルのノルムを算出するノルムモードと、(2)前記多値基底行列と前記量子化処理後の前記特徴マップまたは前記特徴ベクトルとを用いた内積演算処理を実行する内積演算モードとを有し、前記ノルムモードの処理、および、前記内積演算モードを組み合わせた処理を実行することで、前記畳み込み層の処理と前記全結合層の処理とを実行する内積処理ステップと、
を備えるニューラルネットワーク用処理方法。 - 請求項5に記載のニューラルネットワーク用処理方法をコンピュータに実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018143466A JP7033507B2 (ja) | 2018-07-31 | 2018-07-31 | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム |
PCT/JP2019/005465 WO2020026475A1 (ja) | 2018-07-31 | 2019-02-15 | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018143466A JP7033507B2 (ja) | 2018-07-31 | 2018-07-31 | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020021208A JP2020021208A (ja) | 2020-02-06 |
JP7033507B2 true JP7033507B2 (ja) | 2022-03-10 |
Family
ID=69230783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018143466A Active JP7033507B2 (ja) | 2018-07-31 | 2018-07-31 | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7033507B2 (ja) |
WO (1) | WO2020026475A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210150313A1 (en) * | 2019-11-15 | 2021-05-20 | Samsung Electronics Co., Ltd. | Electronic device and method for inference binary and ternary neural networks |
WO2023238638A1 (ja) * | 2022-06-10 | 2023-12-14 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置および方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009176110A (ja) | 2008-01-25 | 2009-08-06 | Seiko Epson Corp | 並列演算装置および並列演算方法 |
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2690772A1 (fr) * | 1992-04-29 | 1993-11-05 | Philips Electronique Lab | Processeur neuronal muni de moyens pour calculer une norme ou une distance. |
-
2018
- 2018-07-31 JP JP2018143466A patent/JP7033507B2/ja active Active
-
2019
- 2019-02-15 WO PCT/JP2019/005465 patent/WO2020026475A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009176110A (ja) | 2008-01-25 | 2009-08-06 | Seiko Epson Corp | 並列演算装置および並列演算方法 |
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
Non-Patent Citations (1)
Title |
---|
神谷 龍司,Binarized-DCNNによる識別計算の高速化とモデル圧縮,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2016年12月08日,第116巻 第366号,p. 47-52 |
Also Published As
Publication number | Publication date |
---|---|
WO2020026475A1 (ja) | 2020-02-06 |
JP2020021208A (ja) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11551068B2 (en) | Processing system and method for binary weight convolutional neural network | |
US10902318B2 (en) | Methods and systems for improved transforms in convolutional neural networks | |
US10096134B2 (en) | Data compaction and memory bandwidth reduction for sparse neural networks | |
US11887005B2 (en) | Content adaptive attention model for neural network-based image and video encoders | |
US11915128B2 (en) | Neural network circuit device, neural network processing method, and neural network execution program | |
EP3627397A1 (en) | Processing method and apparatus | |
CN107256424B (zh) | 三值权重卷积网络处理系统及方法 | |
EP2875434A1 (en) | Methods and systems for using state vector data in a state machine engine | |
JP7033507B2 (ja) | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム | |
EP4128066A1 (en) | Feature reordering based on sparsity for improved memory compression transfers during machine learning jobs | |
WO2020243922A1 (en) | Automatic machine learning policy network for parametric binary neural networks | |
CN114358319A (zh) | 基于机器学习框架的分类方法及相关装置 | |
US20200293865A1 (en) | Using identity layer in a cellular neural network architecture | |
CN113222151B (zh) | 一种量子态的变换方法及装置 | |
CN115362450A (zh) | 在机器学习作业期间基于改善的存储器压缩传输的相似性的特征重排序 | |
US20190340511A1 (en) | Sparsity control based on hardware for deep-neural networks | |
CN112132272B (zh) | 神经网络的计算装置、处理器和电子设备 | |
US20220129729A1 (en) | Processor for neural network, processing method for neural network, and non-transitory computer readable storage medium | |
US11335045B2 (en) | Combining feature maps in an artificial intelligence semiconductor solution | |
CN112132273B (zh) | 计算装置、处理器、电子设备和计算方法 | |
CN113902107A (zh) | 用于神经网络模型全连接层的数据处理方法、可读介质和电子设备 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
US20200293856A1 (en) | Implementing residual connection in a cellular neural network architecture | |
CN113077042A (zh) | 卷积神经网络的数据重用与高效处理方法 | |
CN109670598A (zh) | 一种基于深度学习的数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210215 |
|
TRDD | Decision of grant or rejection written | ||
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20220111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220111 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7033507 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |