JP2022544132A - 乗算のための計算ユニット、方法及びコンピュータプログラム - Google Patents
乗算のための計算ユニット、方法及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2022544132A JP2022544132A JP2022507493A JP2022507493A JP2022544132A JP 2022544132 A JP2022544132 A JP 2022544132A JP 2022507493 A JP2022507493 A JP 2022507493A JP 2022507493 A JP2022507493 A JP 2022507493A JP 2022544132 A JP2022544132 A JP 2022544132A
- Authority
- JP
- Japan
- Prior art keywords
- multiplicand
- bit
- result
- exponent
- value
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000004590 computer program Methods 0.000 title claims abstract description 10
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 230000001186 cumulative effect Effects 0.000 claims 1
- 238000013528 artificial neural network Methods 0.000 description 14
- 238000009825 accumulation Methods 0.000 description 13
- 238000009826 distribution Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000002902 bimodal effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000009828 non-uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/5235—Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/4833—Logarithmic number system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
ニューラルネットワークをリアルタイムで実行可能とするために、専用のハードウェアアクセラレータが開発されてきた。ハードウェアアクセラレータは、ハードウェア実装された、乗算のためのMACユニット(Multiply-Accumulateユニット)を使用する。ニューラルネットワークにおける作業負荷は、ほぼ乗算及び加算のみから成ることが認識されている。従って、ハードウェアアクセラレータは、MACユニットの大規模な並列使用により、高い計算スループットを達成する。一般に、ネットワークは、GPU(Graphical Processing Unit)上においてトレーニングされ、これにより、ネットワーク重みと中間結果との表現フォーマットは、Float32に対応する。こうした数値フォーマットは、対応するエンベデッドシステムが、大きい必要スペース及び必要エネルギを生じさせるFloat32‐MACユニットを利用しなければならないため、エンベデッドシステムにおける使用にはあまり適さない。
以下において、数値フォーマットの利用と共に低減された語幅(例えば、4ビット)を可能にし、これにより、有利にはハードウェア内の乗算器を省略してその代わりにビットシフトを使用し得る計算ユニットを提案する。なぜなら、ビットシフトは、ASIC構成において、著しく(10~20x)小さいチップ面積しか必要としないからである。故に、こうしたビットシフトは、コストの点において、より都合が良い。また、ビットシフトの使用は、乗算に比較して低減された必要エネルギをもたらす。提案している計算ユニットは、さらに、分解能精度に関してのフレキシビリティ及び大きい計算スループットも提供する。ニューラルネットワークは、特に、画像分類器の一部であるものとするとよい。相応に、計算ユニットは、画像分類器の構成に特に適した計算ユニットであるものとするとよい。
第1の態様においては、第1の値xと第1の被乗数wとの乗算のための、又は、第1の値xとそれぞれ1つの第2の被乗数及び第3の被乗数との乗算のための計算ユニットが提案される。計算ユニットは、値xと、被乗数の対数数値フォーマットの指数とを受け取る。対数数値フォーマットでは、被乗数は、それぞれ、設定可能な底に対する少なくとも1つの指数によって表される。計算ユニットは、第1の被乗数の第1の対数数値フォーマット(例えば、“two‐hot”数値フォーマット)の少なくとも2つの指数
a←a+(w*x)
であると理解することができる。
Claims (10)
- 第1の値xと少なくとも1つの被乗数との乗算のための計算ユニット(4)であって、
前記計算ユニット(4)は、第1の被乗数の第1の対数数値フォーマットの2つの指数
前記計算ユニットは、前記第1の被乗数の前記2つの指数
前記計算ユニット(4)は、第1のビットシフト演算子(31)及び第2のビットシフト演算子(32)を含み、
前記第1のビットシフト演算子(31)は、前記第1の値xを、前記第1のレジスタ(43)に格納されている前記指数のうち第1の指数の値に対応する第1の桁数だけシフトさせるように構成されており、
前記第2のビットシフト演算子(32)は、前記第1の値xを、前記第1のレジスタ(43)の前記指数のうち第2の指数の値に対応する第2の桁数だけシフトさせるように構成されており、
前記計算ユニット(4)はさらに、前記第1のビットシフト演算子及び前記第2のビットシフト演算子の結果を加算するように構成された加算器(34)を含み、
前記計算ユニット(4)は、前記第1の被乗数が前記第1のレジスタ(43)に格納されていることを前記コンフィギュレーションビットが示す場合に、前記加算器(34)の結果(B)を出力し、前記第2の被乗数及び前記第3の被乗数が前記第1のレジスタ(43)に格納されていることを前記コンフィギュレーションビットが示す場合に、前記第2のビットシフト演算子の結果(A)及び前記第1のビットシフト演算子の結果(C)を出力するように構成されている、
計算ユニット(4)。 - 前記計算ユニット(4)は、さらなるビットシフト演算子を含み、
前記さらなるビットシフト演算子は、前記第1のビットシフト演算子の結果を第3の桁数だけ左方へシフトさせるように構成されており、
前記計算ユニットは、設定可能な値ζを受信するように構成されており、前記第3の数は、前記第1の被乗数の2つの指数のそれぞれ異なる分解能を表す設定可能な値ζに対応し、
前記加算器(34)は、前記第2のビットシフト演算子(32)の結果及び前記さらなるビットシフト演算子の結果を加算するように構成されている、
請求項1に記載の計算ユニット(4)。 - 前記第1のレジスタ(43)には、格納されているそれぞれ1つの指数に対応付けられた付加的な符号ビット(英語:sign-bit)が格納可能であり、
前記加算器(34)は、前記符号ビットに依存して、前記ビットシフト演算子の結果を加算又は減算するように構成されている、
請求項1又は2に記載の計算ユニット(4)。 - 前記計算ユニットはさらに、第1の累算器(35a)及び第2の累算器(35b)を含み、
前記計算ユニットはさらに、前記第1の被乗数が前記第1のレジスタに格納されていることを前記コンフィギュレーションビット(40)が示す場合に、前記累算器(35a,35b)の一方のみが前記加算器(34)の結果(B)を累算するように構成されており、
前記計算ユニットは、前記第2の被乗数の指数及び前記第3の被乗数の指数が前記第1のレジスタ(43)に格納されていることを前記コンフィギュレーションビットが示す場合に、前記第1の累算器(35a)が前記第2のビットシフト演算子の結果(A)を累算し、前記第2の累算器(35b)が前記第1のビットシフト演算子の結果(C)を累算するように構成されている、
請求項1乃至3のいずれか一項に記載の計算ユニット(4)。 - 前記第1の累算器(35a)は、前記第2のビットシフト演算子に対して使用される指数に対応付けられた符号ビット(図4:sign_2)に依存して前記結果(A)を加算又は減算するように構成されており、前記第2の累算器(35b)は、前記第1のビットシフト演算子に対して使用される指数に対応付けられた符号ビット(図4:sign_1)に依存して前記結果(C)を加算又は減算するように構成されている、
請求項3及び4に記載の計算ユニット(4)。 - 前記計算ユニット(4)はさらに、前記コンフィギュレーションビット(40)が変化した場合に、前記第1の累算器(35a)及び前記第2の累算器(35b)をリセット(英語:reset)するように構成されている、
請求項4又は5に記載の計算ユニット(4)。 - 請求項1乃至6のいずれか一項に記載の計算ユニット(4)を動作させる方法であって、
2つの指数及び値x並びにコンフィギュレーションビットを供給するステップであって、前記コンフィギュレーションビットは、指数が厳密に1つの被乗数に対応付けられているか又はそれぞれ1つの被乗数に対応付けられているかを示す、ステップと、
前記値xを第1の指数の第1の桁数だけビットシフトさせる第1のビットシフトを行い、かつ、前記値xを第2の指数の第2の桁数だけビットシフトさせる第2のビットシフトを行うステップと、
前記コンフィギュレーションビットに依存してビットシフト演算子の結果を出力するステップと、
を含み、
2つの指数が1つの被乗数に対応付けられていることを前記コンフィギュレーションビットが示す場合に、前記ビットシフト演算子の結果を加算して乗算の結果として出力し、
2つの指数がそれぞれ1つの被乗数に対応付けられていることを前記コンフィギュレーションビットが示す場合に、前記ビットシフト演算子の結果を、それぞれ、前記値とそれぞれ1つの前記被乗数との乗算の結果として出力する、
方法。 - 第1の対数数値フォーマット及び第2の対数数値フォーマットの被乗数の底が、値2に対応する、
請求項7に記載の方法。 - コンピュータ上において実行されるときに、請求項7又は8に記載の方法の各ステップを実施させるための命令を含むコンピュータプログラム。
- 請求項9に記載のコンピュータプログラムを記憶した機械可読メモリ素子。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019211829.1 | 2019-08-07 | ||
DE102019211829.1A DE102019211829A1 (de) | 2019-08-07 | 2019-08-07 | Recheneinheit, Verfahren und Computerprogramm zur Multiplikation |
PCT/EP2020/069872 WO2021023482A1 (de) | 2019-08-07 | 2020-07-14 | Recheneinheit, verfahren und computerprogramm zur multiplikation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022544132A true JP2022544132A (ja) | 2022-10-17 |
JP7247418B2 JP7247418B2 (ja) | 2023-03-28 |
Family
ID=71670229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022507493A Active JP7247418B2 (ja) | 2019-08-07 | 2020-07-14 | 乗算のための計算ユニット、方法及びコンピュータプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220291899A1 (ja) |
JP (1) | JP7247418B2 (ja) |
KR (1) | KR20220038173A (ja) |
CN (1) | CN114174982A (ja) |
DE (1) | DE102019211829A1 (ja) |
WO (1) | WO2021023482A1 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864529A (en) * | 1986-10-09 | 1989-09-05 | North American Philips Corporation | Fast multiplier architecture |
US10410098B2 (en) * | 2017-04-24 | 2019-09-10 | Intel Corporation | Compute optimizations for neural networks |
-
2019
- 2019-08-07 DE DE102019211829.1A patent/DE102019211829A1/de active Pending
-
2020
- 2020-07-14 WO PCT/EP2020/069872 patent/WO2021023482A1/de active Application Filing
- 2020-07-14 CN CN202080055729.2A patent/CN114174982A/zh active Pending
- 2020-07-14 KR KR1020227007568A patent/KR20220038173A/ko unknown
- 2020-07-14 JP JP2022507493A patent/JP7247418B2/ja active Active
- 2020-07-14 US US17/625,026 patent/US20220291899A1/en active Pending
Non-Patent Citations (3)
Title |
---|
SYED SHAKIB SARWAR ET AL: "Multiplier-less Artificial Neurons Exploiting Error Resiliency for Energy-Efficient Neural Computing", 2016 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION, JPN6023008614, 27 February 2016 (2016-02-27), pages 145 - 150, ISSN: 0005008675 * |
VOGEL SEBASTIAN ET AL: "Efficient Hardware Acceleration of CNNs using Logarithmic Data Representation with Arbitrary log-bas", 2018 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN (ICCAD), JPN6023008613, 5 November 2018 (2018-11-05), pages 1 - 8, XP033487878, ISSN: 0005008674, DOI: 10.1145/3240765.3240803 * |
VOGEL SEBASTIAN ET AL: "Self-Supervised Quantization of Pre-Trained Neural Networks for Multiplierless Acceleration", DESIGN, AUTOMATION AND TEST IN EUROPE (DATE 2019), JPN6023008612, 25 March 2019 (2019-03-25), pages 1094 - 1099, XP033550047, ISSN: 0005008673, DOI: 10.23919/DATE.2019.8714901 * |
Also Published As
Publication number | Publication date |
---|---|
DE102019211829A1 (de) | 2021-02-11 |
KR20220038173A (ko) | 2022-03-25 |
WO2021023482A1 (de) | 2021-02-11 |
CN114174982A (zh) | 2022-03-11 |
US20220291899A1 (en) | 2022-09-15 |
JP7247418B2 (ja) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7476175B2 (ja) | 乗算累積回路 | |
CN110852434B (zh) | 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置 | |
WO2022170809A1 (zh) | 一种适用于多精度计算的可重构浮点乘加运算单元及方法 | |
CN113282273A (zh) | 用于多种格式的浮点运算的硬件 | |
US8751555B2 (en) | Rounding unit for decimal floating-point division | |
WO2013109532A1 (en) | Algebraic processor | |
CN112241291A (zh) | 用于指数函数实施的浮点单元 | |
US20230056304A1 (en) | Using a low-bit-width dot product engine to sum high-bit-width numbers | |
JP2006060703A5 (ja) | ||
JP7247418B2 (ja) | 乗算のための計算ユニット、方法及びコンピュータプログラム | |
JP4965711B2 (ja) | 符号対称の丸め誤差を有する2進分数による積の高速計算 | |
CN113419779B (zh) | 可扩展多精度数据流水线系统和方法 | |
Lewis | Complex logarithmic number system arithmetic using high-radix redundant CORDIC algorithms | |
RU2666285C1 (ru) | Способ организации выполнения операции умножения двух чисел в модулярно-логарифмическом формате представления с плавающей точкой на гибридных многоядерных процессорах | |
JP6863907B2 (ja) | 演算回路 | |
US8788560B2 (en) | Decimal elementary functions computation | |
Hass | Synthesizing optimal fixed-point arithmetic for embedded signal processing | |
Gonzalez-Navarro et al. | A binary integer decimal-based multiplier for decimal floating-point arithmetic | |
JP2023000142A (ja) | 演算装置 | |
JP2023161967A (ja) | 演算装置、演算方法及びプログラム | |
EP4004710A1 (en) | Matrix multiplication in hardware using modular math | |
CN118034642A (zh) | 浮点运算方法、装置、电子设备及存储介质 | |
CN116610284A (zh) | 用于计算点积的方法和系统 | |
CN115374902A (zh) | 执行SoftMax的计算机实现方法 | |
THUAN | A NOVEL QUOTIENT PREDICTION FOR FLOATING-POINT DIVISION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220204 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220204 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230228 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230315 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7247418 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |