IP Library Granted Patent US 12,210,872
Granted Patent B2
US 12,210,872 · App. 18/602,924 · Granted Jan 28, 2025

Neural processing device, processing element included therein and method for operating various formats of neural processing device

Inventors: Karim Charfi (Seongnam-si, KR); Jinwook Oh (Seongnam-si, KR)
Assignee: Rebellions Inc.
G06F9/30025G06F9/3001G06F9/30098
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,210,872
App. No.
18/602,924
Granted
Jan 28, 2025
Kind
B2
Abstract

A neural processing device, a processing element included therein and a method for operating various formats of the neural processing device are provided. The neural processing device includes at least one neural processor, a shared memory shared by the at least one neural processor, and a global interconnection configured to transmit data between the at least one neural processor and the shared memory, wherein each of the at least one neural processor comprises at least one processing element, each of the at least one processing element receives an input in a first format and thereby performs an operation, and receives an input in a second format that is different from the first format and thereby performs an operation if a format conversion signal is received, and the first format and the second format have a same number of bits.

Claims (64)

1. A processing device comprising processing circuitry comprising:

at least one processor comprising at least one processing element; and

a shared memory shared by the at least one processor,

wherein the at least one processing element is configured to cause:

receiving a format conversion signal indicating a format of floating-point numbers between a first format and a second format,

receiving a first set of bits representing a first floating-point number, a second set of bits representing a second floating-point number, and a third set of bits representing a third floating-point number,

converting the first set of bits to a first sign bit, a first set of exponent bits and a first set of mantissa bits based on the format conversion signal,

converting the second set of bits to a second sign bit, a second set of exponent bits and a second set of mantissa bits based on the format conversion signal,

converting the third set of bits to a third sign bit, a third set of exponent bits and a third set of mantissa bits based on the format conversion signal,

performing a computation operation on the first sign, the first set of exponent bits, the first set of mantissa bits, the second sign bit, the second set of exponent bits, the second set of mantissa bits, the third sign bit, the third set of exponent bits, and the third set of mantissa bits, and

outputting a fourth set of bits representing an output floating-point number via the computation operation based on the format conversion signal,

wherein the at least one processing element is further configured to cause:

storing bits associated with the first set of exponent bits in a first register,

storing bits associated with the second set of exponent bits in a second register,

storing bits associated with the third set of exponent bits in a third register,

adding the bits in the first register, the bits in the second register, and the bits in the third register to generate alignment information,

outputting the fourth set of bits based on the alignment information, and

selecting a bit array between a first bit array and a second bit array based on the format conversion signal, and

wherein the first bit array is associated with the second set of exponent bits according to the first format,

the second bit array is associated with the second set of exponent bits according to the second format, and

the selected bit array is stored in the second register.

2. The processing device of claim 1 , wherein the alignment information is generated by using a carry save adder circuitry having a bit width equal to a positive margin number added by a maximum number of the number of exponent bits in the first format and the number of exponent bits in the second format and by using a carry-propagate adder adding a sum and a carry outputted from the carry save adder, and

wherein the positive margin number is equal to or greater than 2.

3. The processing device of claim 1 , wherein

bits of the first bit array are set equal to the second set of exponent bits except that bits in the first bit array from a most significant bit of the first bit array to a bit in the first bit array corresponding to a first location of a most significant bit of exponent bits according to the first format in the second set of exponent bits are set equal to an inverted bit of a bit in the second set of exponent bits corresponding to the first location, and

bits of the second bit array are set equal to the second set of exponent bits except that bits in the second bit array from a most significant bit of the second bit array to a bit in the second bit array corresponding to a second location of a most significant bit of exponent bits according to the second format in the second set of exponent bits are set equal to an inverted bit of a bit in the second set of exponent bits corresponding to the second location.

4. The processing device of claim 1 , wherein the at least one processing element is further configured to cause:

inverting the third set of exponent bits to generate inverted exponent bits, and

wherein the inverted exponent bits are stored in the third register.

5. The processing device of claim 1 , wherein the first set of exponent bits are stored in the first register.

6. The processing device of claim 1 , wherein the at least one processing element is further configured to cause:

multiplying the first set of mantissa bits and the second set of mantissa bits to generate mantissa multiplication result bits,

aligning the third set of mantissa bits with the mantissa multiplication result bits based on the alignment information to generate aligned mantissa bits,

adding the aligned mantissa bits and the mantissa multiplication result bits to generate adding result bits, and

outputting the fourth set of bits based on the adding result bits.

7. The processing device of claim 1 , wherein the number of bits in the first register, the second register, and the third register is equal to or greater than a positive margin number added by a maximum number of the number of exponent bits in the first format and the number of exponent bits in the second format.

8. The processing device of claim 1 , wherein the at least one processing element is further configured to cause:

storing bits associated with the first set of exponent bits in a fourth register,

storing bits associated with a bias in a fifth register,

storing bits associated with the second set of exponent bits in a sixth register,

adding the bits in the fourth register, the bits in the fifth register, and the bits in the sixth register to generate initial output exponent bits, and

outputting the fourth set of bits based on the initial output exponent bits.

9. The processing device of claim 8 , wherein the initial output exponent bits are generated by using a carry save adder circuitry having a bit width equal to a positive margin number added by a maximum number of the number of exponent bits in the first format and the number of exponent bits in the second format and by using a carry-propagate adder adding a sum and a carry outputted from the carry save adder.

10. The processing device of claim 8 , wherein the first set of exponent bits are stored in the fourth register and the second set of exponent bits are stored in the sixth register.

11. The processing device of claim 8 , wherein the at least one processing element is further configured to cause:

selecting the bias between a first bias value and a second bias value based on the format conversion signal.

12. The processing device of claim 11 , wherein

the first bias value is equal to a default bias value according to the first format plus an additional bias value for aligning a product of the first floating-point number and the second floating-point number and an addend corresponding to the third first floating-point number to a predefined aligning bit width, and

the second bias value is equal to a default bias value according to the second format plus the additional bias value.

13. The processing device of claim 8 , wherein the at least one processing element is further configured to cause:

finding a location of the foremost one in adding result bits to generate a leading zero anticipation;

adjusting the initial output exponent bits based on the leading zero anticipation to generate final output exponent bits;

normalizing the adding result bits to generate normalized adding result bits;

outputting the fourth set of bits representing the output floating-point number by using the normalized adding result bits and the final output exponent bits.

14. The processing device of claim 1 , wherein

the number of the first set of exponent bits is equal to a maximum number of the number of exponent bits in the first format and the number of exponent bits in the second format, and

the number of the first set of mantissa bits is equal to a maximum number of the number of mantissa bits in the first format and the number of mantissa bits in the second format.

15. The processing device of claim 1 , wherein the first set of bits representing the first floating-point number, the second set of bits representing the second floating-point number, and the third set of bits representing the third floating-point number are included in an instruction.

16. The processing device of claim 1 , wherein the first floating-point number, the second floating-point number, and the third floating-point number are floating-point tensors.

17. The processing device of claim 1 , wherein the format conversion signal is triggered by a machine learning model.

18. The processing device of claim 17 , wherein the processing circuitry is configured to cause:

performing an inference of the machine learning model by using the fourth set of bits representing the output floating-point number.

19. The processing device of claim 17 , wherein the processing circuitry is configured to cause:

training the machine learning model by using the fourth set of bits representing the output floating-point number.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded May 22, 2025
From: REBELLIONS INC.; SAPEON KOREA INC.
To: REBELLIONS INC.
Reel/Frame 071355/0107 →
Priority Claims (1)
KR 10-2022-0112360 · Sep 5, 2022 · national
Continuity (2)
Continuation 18459241 · Aug 31, 2023
Related Publication 20240220246A1 · Jul 4, 2024
References Cited (14)
US 5309383A · Kuroiwa · 1994 [cited by examiner]
US 11669933B2 · Mellempudi · 2023 [cited by examiner]
US 20090150654A1 · Oberman et al. · 2009 [cited by applicant]
US 20180336165A1 · Phelps · 2018 [cited by examiner]
US 20200279153A1 · Fowers · 2020 [cited by examiner]
US 20210224069A1 · Chen · 2021 [cited by examiner]
US 20220236949A1 · Song · 2022 [cited by applicant]
US 20220326911A1 · Abe · 2022 [cited by examiner]
US 20230087364A1 · Kundu · 2023 [cited by examiner]
KR 1020090060207A · 2009 [cited by applicant]
KR 102258566B1 · 2021 [cited by applicant]
Nannarelli, Alberto (2020). “Variable Precision 16-Bit Floating-Point Vector Unit for Embedded Processors”, 2020 IEEE 27th Symposium on Computer Arithmetic (ARITH), pp. 96-102. doi: 10.1109/ARITH48897.2020.00022. [cited by applicant]
Bruintjes, Tom M. (2011) “Design of a Fused Multiply-Add Floating-Point and Integer Datapath,” URL; https://api.semanticscholar.org/CorpusID:18436960. [cited by applicant]
Office Action for KR 10-2022-0112360 by Korean Intellectual Property Office dated Sep. 9, 2024. [cited by applicant]