FR3097993B1 - Dot product operator of floating-point numbers that performs correct rounding - Google Patents

Dot product operator of floating-point numbers that performs correct rounding Download PDF

Info

Publication number
FR3097993B1
FR3097993B1 FR1906887A FR1906887A FR3097993B1 FR 3097993 B1 FR3097993 B1 FR 3097993B1 FR 1906887 A FR1906887 A FR 1906887A FR 1906887 A FR1906887 A FR 1906887A FR 3097993 B1 FR3097993 B1 FR 3097993B1
Authority
FR
France
Prior art keywords
point numbers
floating
dot product
product operator
performs correct
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
Application number
FR1906887A
Other languages
French (fr)
Other versions
FR3097993A1 (en
Inventor
Nicolas Brunie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kalray SA
Original Assignee
Kalray SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kalray SA filed Critical Kalray SA
Priority to FR1906887A priority Critical patent/FR3097993B1/en
Priority to EP20178996.3A priority patent/EP3757756A1/en
Priority to CN202010578649.7A priority patent/CN112130803B/en
Priority to US16/946,526 priority patent/US11294627B2/en
Publication of FR3097993A1 publication Critical patent/FR3097993A1/en
Application granted granted Critical
Publication of FR3097993B1 publication Critical patent/FR3097993B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Opérateur de produit scalaire de nombres à virgule flottante réalisant un arrondi correct L’invention est relative à un opérateur matériel de calcul de produit scalaire, comprenant plusieurs multiplieurs (10) recevant chacun deux multiplicandes (a, b) sous forme de nombres à virgule flottante codés dans un premier format de précision (fp16) ; un circuit d’alignement (12) associé à chaque multiplieur, configuré pour, sur la base des exposants des multiplicandes correspondants, convertir le résultat de la multiplication en un nombre à virgule fixe respectif ayant un nombre de bits suffisant (80) pour couvrir toute la dynamique de la multiplication ; et un multi-additionneur (30) configuré pour additionner sans perte les nombres à virgule fixe provenant des multiplieurs, fournissant une somme sous forme de nombre à virgule fixe. Figure pour l’abrégé : Fig. 6The invention relates to a hardware operator for calculating a scalar product, comprising several multipliers (10) each receiving two multiplicands (a, b) in the form of floating point numbers encoded in a first precision format (fp16); an alignment circuit (12) associated with each multiplier, configured to, based on the exponents of the corresponding multiplicands, convert the result of the multiplication into a respective fixed point number having a sufficient number of bits (80) to cover any the dynamics of multiplication; and a multi-adder (30) configured to add losslessly the fixed-point numbers from the multipliers, providing a sum as a fixed-point number. Figure for the abstract: Fig. 6

FR1906887A 2019-06-25 2019-06-25 Dot product operator of floating-point numbers that performs correct rounding Active FR3097993B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1906887A FR3097993B1 (en) 2019-06-25 2019-06-25 Dot product operator of floating-point numbers that performs correct rounding
EP20178996.3A EP3757756A1 (en) 2019-06-25 2020-06-09 Operator for scalar product of numbers with floating comma for performing correct rounding off
CN202010578649.7A CN112130803B (en) 2019-06-25 2020-06-23 Floating point dot product operator with correct rounding
US16/946,526 US11294627B2 (en) 2019-06-25 2020-06-25 Floating point dot-product operator with correct rounding

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1906887 2019-06-25
FR1906887A FR3097993B1 (en) 2019-06-25 2019-06-25 Dot product operator of floating-point numbers that performs correct rounding

Publications (2)

Publication Number Publication Date
FR3097993A1 FR3097993A1 (en) 2021-01-01
FR3097993B1 true FR3097993B1 (en) 2021-10-22

Family

ID=68987763

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1906887A Active FR3097993B1 (en) 2019-06-25 2019-06-25 Dot product operator of floating-point numbers that performs correct rounding

Country Status (4)

Country Link
US (1) US11294627B2 (en)
EP (1) EP3757756A1 (en)
CN (1) CN112130803B (en)
FR (1) FR3097993B1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3097992B1 (en) * 2019-06-25 2021-06-25 Kalray Merged addition and multiplication operator for mixed precision floating point numbers for correct rounding
TWI868210B (en) 2020-01-07 2025-01-01 韓商愛思開海力士有限公司 Processing-in-memory (pim) system
US20220229633A1 (en) 2020-01-07 2022-07-21 SK Hynix Inc. Multiplication and accumulation(mac) operator and processing-in-memory (pim) device including the mac operator
US11663000B2 (en) * 2020-01-07 2023-05-30 SK Hynix Inc. Multiplication and accumulation(MAC) operator and processing-in-memory (PIM) device including the MAC operator
US20250085925A1 (en) * 2023-09-08 2025-03-13 Arm Limited System emulation of a floating-point dot product operation
CN117389511B (en) * 2023-10-18 2024-12-03 上海合芯数字科技有限公司 A decimal rounding method, system and computer device
CN117762375B (en) * 2023-12-22 2024-10-29 摩尔线程智能科技(北京)有限责任公司 Data processing method, device, computing device, graphics processor and storage medium
WO2026072375A1 (en) * 2024-09-27 2026-04-02 Apple Inc. Bias correction circuitry for fixed-point multiterm addition

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346643B1 (en) * 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
GB2409074B (en) 2001-03-14 2005-08-03 Micron Technology Inc Arithmetic pipeline
TWI235948B (en) * 2004-02-11 2005-07-11 Via Tech Inc Accumulatively adding device and method
US20090164544A1 (en) * 2007-12-19 2009-06-25 Jeffrey Dobbek Dynamic range enhancement for arithmetic calculations in real-time control systems using fixed point hardware
US8166091B2 (en) * 2008-11-10 2012-04-24 Crossfield Technology LLC Floating-point fused dot-product unit
FR2974645A1 (en) * 2011-04-28 2012-11-02 Kalray MIXED PRECISION FUSIONED MULTIPLICATION AND ADDITION OPERATOR
US8626813B1 (en) * 2013-08-12 2014-01-07 Board Of Regents, The University Of Texas System Dual-path fused floating-point two-term dot product unit
US9298082B2 (en) 2013-12-25 2016-03-29 Shenzhen China Star Optoelectronics Technology Co., Ltd. Mask plate, exposure method thereof and liquid crystal display panel including the same
US9507565B1 (en) * 2014-02-14 2016-11-29 Altera Corporation Programmable device implementing fixed and floating point functionality in a mixed architecture
US10216479B2 (en) * 2016-12-06 2019-02-26 Arm Limited Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
US10474458B2 (en) * 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
US10643297B2 (en) * 2017-05-05 2020-05-05 Intel Corporation Dynamic precision management for integer deep learning primitives
US10338919B2 (en) 2017-05-08 2019-07-02 Nvidia Corporation Generalized acceleration of matrix multiply accumulate operations
US11010131B2 (en) * 2017-09-14 2021-05-18 Intel Corporation Floating-point adder circuitry with subnormal support
US10747502B2 (en) * 2018-09-19 2020-08-18 Xilinx, Inc. Multiply and accumulate circuit
US12254061B2 (en) * 2018-09-27 2025-03-18 Intel Corporation Apparatuses and methods to accelerate matrix multiplication

Also Published As

Publication number Publication date
CN112130803B (en) 2024-11-26
US20200409661A1 (en) 2020-12-31
FR3097993A1 (en) 2021-01-01
US11294627B2 (en) 2022-04-05
EP3757756A1 (en) 2020-12-30
CN112130803A (en) 2020-12-25

Similar Documents

Publication Publication Date Title
FR3097993B1 (en) Dot product operator of floating-point numbers that performs correct rounding
US10747502B2 (en) Multiply and accumulate circuit
US6625633B1 (en) Divider and method with high radix
FR3097992B1 (en) Merged addition and multiplication operator for mixed precision floating point numbers for correct rounding
US20200272419A1 (en) Compressing like-magnitude partial products in multiply accumulation
US20140089371A1 (en) Mixed precision fused multiply-add operator
US9851947B2 (en) Arithmetic processing method and arithmetic processor having improved fixed-point error
Takagi et al. A hardware algorithm for integer division
Noor et al. Bounds having Riemann type quantum integrals via strongly convex functions
de Matos et al. Efficient implementation of modular multiplication by constants applied to RNS reverse converters
JP3345894B2 (en) Floating point multiplier
WO1997045787A1 (en) A novel division algorithm for floating point or integer numbers
US5260889A (en) Computation of sticky-bit in parallel with partial products in a floating point multiplier unit
US20150378678A1 (en) Shift amount correction for multiply-add
JP2005018759A (en) Method and apparatus for implementing power of two floating point estimation
Dwivedi An efficient multiplication algorithm using Nikhilam method
JPH05134851A (en) Multiplier output method
JPH03121530A (en) Circuit device for calculating sum of products
US7921149B2 (en) Division and square root arithmetic unit
JPH0833816B2 (en) Fixed-point division method
US20210334635A1 (en) Neural network accelerator configured to perform operation on logarithm domain
JPH08314697A (en) Signed / unsigned multi-purpose multiplier
JP6734938B2 (en) Neural network circuit
US9134958B2 (en) Bid to BCD/DPD converters
US5923888A (en) Multiplier for the multiplication of at least two figures in an original format

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210101

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7