APPARATUS EMPLOYING USER-SPECIFIED BINARY POINT FIXED POINT ARITHMETIC
First Claim
1. An apparatus, comprising:
- a plurality of arithmetic logic units each having;
an accumulator; and
an integer arithmetic unit that receives and performs integer arithmetic operations on integer inputs and accumulates integer results of a series of the integer arithmetic operations into the accumulator as an integer accumulated value;
a register programmable with;
an indication of a number of fractional bits of the integer accumulated values; and
an indication of a number of fractional bits of integer outputs;
a first bit width of the accumulator is greater than twice a second bit width of the integer outputs; and
a plurality of adjustment units that scale and saturate the first bit width integer accumulated values to generate the second bit width integer outputs based on the indications of the number of fractional bits of the integer accumulated values and outputs programmed into the register.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus includes a plurality of arithmetic logic units each having an accumulator and an integer arithmetic unit that receives and performs integer arithmetic operations on integer inputs and accumulates integer results of a series of the integer arithmetic operations into the accumulator as an integer accumulated value. A register is programmable with an indication of a number of fractional bits of the integer accumulated values and an indication of a number of fractional bits of integer outputs. A first bit width of the accumulator is greater than twice a second bit width of the integer outputs. A plurality of adjustment units scale and saturate the first bit width integer accumulated values to generate the second bit width integer outputs based on the indications of the number of fractional bits of the integer accumulated values and outputs programmed into the register.
-
Citations
23 Claims
-
1. An apparatus, comprising:
-
a plurality of arithmetic logic units each having; an accumulator; and an integer arithmetic unit that receives and performs integer arithmetic operations on integer inputs and accumulates integer results of a series of the integer arithmetic operations into the accumulator as an integer accumulated value; a register programmable with; an indication of a number of fractional bits of the integer accumulated values; and an indication of a number of fractional bits of integer outputs; a first bit width of the accumulator is greater than twice a second bit width of the integer outputs; and a plurality of adjustment units that scale and saturate the first bit width integer accumulated values to generate the second bit width integer outputs based on the indications of the number of fractional bits of the integer accumulated values and outputs programmed into the register. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method, comprising:
-
programming a register with; an indication of a number of fractional bits of integer accumulated values; and an indication of a number of fractional bits of integer outputs; by each of a plurality of arithmetic logic units having an accumulator and an integer arithmetic unit; performing, by the integer arithmetic unit, integer arithmetic operations on integer inputs; and accumulating integer results of a series of the integer arithmetic operations into the accumulator as an integer accumulated value; a first bit width of the accumulator is greater than twice a second bit width of the integer outputs; and by each of a plurality of adjustment units; scaling and saturating the first bit width integer accumulated values to generate the second bit width integer outputs based on the indications of the number of fractional bits of the integer accumulated values and outputs programmed into the register. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A computer program product encoded in at least one non-transitory computer usable medium for use with a computing device, the computer program product comprising:
computer usable program code embodied in said medium, for specifying a neural network unit, the computer usable program code comprising; first program code for specifying a plurality of arithmetic logic units each having; an accumulator; and an integer arithmetic unit that receives and performs integer arithmetic operations on integer inputs and accumulates integer results of a series of the integer arithmetic operations into the accumulator as an integer accumulated value; second program code for specifying a register programmable with; an indication of a number of fractional bits of the integer accumulated values; and an indication of a number of fractional bits of integer outputs; a first bit width of the accumulator is greater than twice a second bit width of the integer outputs; and third program code for specifying a plurality of adjustment units that scale and saturate the first bit width integer accumulated values to generate the second bit width integer outputs based on the indications of the number of fractional bits of the integer accumulated values and outputs programmed into the register.
Specification