IP Library › Granted Patent US 11,068,784
Granted Patent B2
US 11,068,784 · App. 16/258,552 · Granted Jul 20, 2021

Generic quantization of artificial neural networks

Inventors: Benoit Chappet de Vangel (Paris, FR); Vincent Moutoussamy (Montrouge, FR); Ludovic Larzul (El Dorado Hills, CA)
Assignee: MIPSOLOGY SAS
G06N3/082G06N3/04
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 11,068,784
App. No.
16/258,552
Granted
Jul 20, 2021
Kind
B2
Abstract

Systems and methods for performing a quantization of artificial neural networks (ANNs) are provided. An example method may include receiving a description of an ANN and input data associated with the ANN, wherein the input data are represented according to a first data type; selecting a first value interval of the first data type to be mapped to a second value interval of a second data type; performing, based on the input data and the description of the ANN, the computations of one or more neurons of the ANN, wherein the computations are performed for at least one value within the second value interval, the value being a result of mapping a value of the first value interval to a value of the second value interval; determining, a measure of saturations in neurons of the ANN, and adjusting, based on the measure of saturations, the value intervals.

Claims (54)

1. A system for performing a quantization of artificial neural networks (ANNs), the system comprising one or more processors configured to:

receive a description of an ANN and input data associated with the ANN, the description of the ANN being represented according to a first data type;

determine a first value interval of the first data type to be mapped to a second value interval of a second data type;

map at least one value of the input data and the description of the ANN into the second value interval to obtain at least one value of the second data type within the second interval;

replace the at least one value in the input data and the description of the ANN with the at least one value of the second data type to obtain modified input data and a modified description of the ANN;

perform, based on the modified input data and the modified description of the ANN, the computations of outputs of one or more neurons of the ANN;

determine, based on the outputs of one or more neurons of the ANN, a measure of a quantity of saturations among the outputs of the one or more neurons of the ANN; and

adjust, based on the measure of the quantity of saturations, at least one of the first value interval and the second value interval.

2. The system of claim 1 , wherein the at least one of the first value interval and the second value interval is adjusted to decrease the measure of the quantity of saturations in the one or more neurons.

3. The system of claim 1 , wherein the first data type is a floating-point data type and the second data type is a fixed-point data type.

4. The system of claim 1 , wherein the measure of the quantity of saturations is the number of the saturated neurons in the one or more neurons.

5. The system of claim 1 , wherein the one or more processors is configured to:

compare the measure of the quantity of saturations to a user input, the user input including an acceptable measure of saturations; and

adjust, based on a result of the comparison, the at least one of the first value interval and the second value interval.

6. The system of claim 1 , wherein the one or more processors is configured to:

perform further computations of the one of more neurons of the ANN for the input data;

determine a further measure of the quantity of saturations in the one or more neurons; and

perform, based on the further measure of the quantity of saturations, further adjustments of the at least one of the first value interval and the second value interval.

7. The system of claim 1 , wherein the at least one of the first value interval and the second value interval is the same for all layers of the ANN.

8. The system of claim 1 , wherein the at least one of the first value interval and the second value interval are different for different layers of the ANN.

9. The system of claim 1 , wherein the one or more processors are configured to:

map a first value of the first interval to a second value within the second interval, wherein the second value is of the first data type; and

round the second value to a value of the second data type.

10. The system of claim 1 , wherein prior to performing the computations of one or more neurons of the ANN, the one or more processors add or subtract an offset value to data of the first value interval to map the data onto the second value interval.

11. The system of claim 1 , wherein prior to performing the computations of one or more neurons of the ANN, the one or more processors are configured to:

divide the first value interval into a plurality of subintervals; and

for each subinterval of the plurality of subintervals, map a value of the subinterval onto a value of a further interval of a subsequent data type.

12. The system of claim 11 , wherein the subsequent data type is the second data type.

13. The system of claim 11 , wherein a count of the values within the further interval of the subsequent data type is proportional to a count of input values of input data within a subinterval of the plurality of subintervals.

14. The system of claim 1 , wherein the one or more processors include at least one electronic component accelerating the computation of the one or more neurons of the ANN.

15. A method for performing a quantization of artificial neural networks (ANNs), the method comprising:

receiving, by one or more processors, a description of an ANN and input data associated with the ANN, the description of the ANN being represented according to a first data type;

determining, by the one or more processors, a first value interval of the first data type to be mapped to a second value interval of a second data type;

mapping at least one value of the input data and the description of the ANN into the second value interval to obtain at least one value of the second data type within the second interval;

replacing the at least one value in the input data and the description of the ANN with the at least one value of the second data type to obtain modified input data and a modified description of the ANN;

performing, by the one or more processors and based on the modified input data and the modified description of the ANN, the computations of outputs of one or more neurons of the ANN;

determining, by the one or more processors and based on the outputs of one or more neurons of the ANN, a measure of a quantity of saturations among the outputs of the one or more neurons of the ANN; and

adjusting, by the one or more processors and based on the measure of the quantity of saturations, at least one of the first value interval and the second value interval.

16. The method of claim 15 , wherein the at least one of the first value interval and the second value interval is adjusted to decrease the measure of the quantity of saturations in the one or more neurons.

17. The method of claim 15 , wherein the first data type is a floating-point data type and the second data type is a fixed-point data type.

18. The method of claim 15 , wherein the measure of the quantity of saturations is the number of the saturated neurons in the one or more neurons.

19. The method of claim 15 , further comprising, prior to performing the computations of one or more neurons of the ANN:

dividing, by the one or more processors, the first value interval into a plurality of subintervals; and

for each subinterval of the plurality of subintervals, mapping a value of the subinterval onto a value of a further interval of a subsequent data type.

20. A system for performing a quantization of artificial neural networks (ANNs), the system comprising:

one or more processors; and

a memory communicatively coupled with the one or more processors, the memory storing instructions which when executed by the one or more processors perform a method comprising:

receiving a description of an ANN and input data associated with the ANN, the description of the ANN being represented according to a first data type;

determining a first value interval of the first data type to be mapped to a second value interval of a second data type, wherein the first data type includes a floating-point data type and the second data type includes a fixed-point data type;

mapping at least one value of the input data and the description of the ANN into the second value interval to obtain at least one value of the second data type within the second interval;

replacing the at least one value in the input data and the description of the ANN with the at least one value of the second data type to obtain modified input data and a modified description of the ANN;

performing, based on the modified input data and the modified description of the ANN, the computations of outputs of one or more neurons of the ANN;

determining, based on the outputs of one or more neurons of the ANN, a measure of a quantity of saturations among the outputs of the one or more neurons of the ANN; and

adjusting, based on the measure of the quantity of saturations, at least one of the first value interval or the second value interval.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2026
From: MIPSOLOGY SAS
To: XILINX, INC.
Reel/Frame 073663/0308 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2019
From: DE VANGEL, BENOIT CHAPPET; MOUTOUSSAMY, VINCENT; LARZUL, LUDOVIC
To: MIPSOLOGY SAS
Reel/Frame 048147/0037 →
Continuity (1)
Related Publication 20200242473A1 · Jul 30, 2020