IP Library Granted Patent US 11,157,237
Granted Patent B2
US 11,157,237 · App. 16/189,291 · Granted Oct 26, 2021

Memristive dot product circuit based floating point computations

Inventors: Naveen Muralimanohar (Palo Alto, CA); Benjamin Feinberg (Palo Alto, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F7/4876G06F5/012G06F17/16G11C13/0002H03M7/24
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,157,237
App. No.
16/189,291
Granted
Oct 26, 2021
Kind
B2
Abstract

In some examples, memristive dot product circuit based floating point computations may include ascertaining a matrix and a vector including floating point values, and partitioning the matrix into a plurality of sub-matrices according to a size of a plurality of memristive dot product circuits. For each sub-matrix of the plurality of sub-matrices, the floating point values may be converted to fixed point values. Based on the conversion and selected ones of the plurality of memristive dot product circuits, a dot product operation may be performed with respect to a sub-matrix and the vector. Each ones of the plurality of memristive dot product circuits may include rows including word line voltages corresponding to the floating point values of the vector, conductances corresponding to the floating point values of an associated sub-matrix, and columns that include bitline currents corresponding to dot products of the voltages and conductances.

Claims (72)

1. An apparatus comprising:

a processor; and

a non-transitory computer readable medium storing machine readable instructions that when executed by the processor cause the processor to:

ascertain a matrix and a vector including floating point values;

partition the matrix into a plurality of sub-matrices according to a size of a plurality of memristive dot product circuits;

for each sub-matrix of the plurality of sub-matrices, convert the floating point values to fixed point values, wherein to convert the floating point values to fixed point values further causes the processor to:

for each sub-matrix of the plurality of sub-matrices,

align mantissas of the fixed point values of a corresponding sub-matrix by independently aligning, for each row of the corresponding sub-matrix, a lowest element within the row of the corresponding sub-matrix with and a highest element within the same row of the corresponding sub-matrix; and

modify the fixed point values of the corresponding sub-matrix with the aligned mantissas to include an equal length for each row of the corresponding sub-matrix; and

perform, based on the conversion and selected ones of the plurality of memristive dot product circuits, a dot product operation with respect to a sub-matrix and the vector, wherein

each ones of the plurality of memristive dot product circuits includes rows including word line voltages corresponding to the floating point values of the vector, conductances corresponding to the floating point values of the corresponding sub-matrix, and columns that include bitline currents corresponding to dot products of the voltages and conductances.

2. The apparatus according to claim 1 , wherein the plurality of memristive dot product circuits are disposed in a plurality of clusters, and wherein the instructions are further to cause the processor to:

perform, using memristive dot product circuits of a cluster of the plurality of clusters, the dot product operation on the corresponding sub-matrix of the plurality of sub-matrices.

3. The apparatus according to claim 1 , wherein the instructions to modify the fixed point values of the corresponding sub-matrix with the aligned mantissas to include an equal length for each row of the corresponding sub-matrix further cause the processor to:

pad bits representing the mantissas with additional bits such that the fixed point values include an equal length, wherein a padding overhead for each row of the corresponding sub-matrix is limited to the difference between a minimum exponent associated with the lowest element within the row of the corresponding sub-matrix and a maximum exponent associated with the highest element within the same row of the corresponding sub-matrix.

4. The apparatus according to claim 3 , wherein the instructions to perform, based on the conversion and selected ones of the plurality of memristive dot product circuits, the dot product operation with respect to the sub-matrix and the vector are further to cause the processor to:

for each sub-matrix of the plurality of sub-matrices,

determine a number of bit cells supported by the selected ones of the plurality of memristive dot product circuits; and

map, based on the determined number of bit cells, each element of the corresponding sub-matrix to a corresponding memristive dot product circuit.

5. The apparatus according to claim 4 , wherein the instructions to perform, based on the conversion and selected ones of the plurality of memristive dot product circuits, the dot product operation with respect to the sub-matrix and the vector are further to cause the processor to:

perform, based on the mapping of each element of the corresponding sub-matrix to the memristive dot product circuit, a plurality of multiplication operations; and

for each multiplication operation of the plurality of multiplication operations, perform a shift and add operation to generate results of the plurality of multiplication operations.

6. The apparatus according to claim 5 , wherein the instructions to perform, based on the conversion and selected ones of the plurality of memristive dot product circuits, the dot product operation with respect to the sub-matrix and the vector are further to cause the processor to:

combine the results of the plurality of multiplication operations to generate a combined result; and

adjust, based on a bitslice position, a position of a significant bit of the combined result.

7. The apparatus according to claim 6 , wherein the instructions to perform, based on the conversion and selected ones of the plurality of memristive dot product circuits, the dot product operation with respect to the sub-matrix and the vector are further to cause the processor to:

adjust the combined result based on a scale associated with the corresponding sub-matrix.

8. The apparatus according to claim 4 , wherein the instructions to perform, based on the conversion and selected ones of the plurality of memristive dot product circuits, the dot product operation with respect to the sub-matrix and the vector are further to cause the processor to:

perform, based on the mapping of each element of the corresponding sub-matrix to the corresponding memristive dot product circuit, a plurality of multiplication operations; and

for each multiplication operation of the plurality of multiplication operations and for a negative floating point value of the floating point values, perform a shift and subtract operation to generate results of the plurality of multiplication operations.

9. The apparatus according to claim 1 , wherein the instructions are further to cause the processor to:

partition the vector into a plurality of sub-vectors according to the size of the plurality of memristive dot product circuits; and

for each sub-vector of the plurality of sub-vectors, convert the floating point values to fixed point values.

10. A computer implemented method comprising:

ascertaining a matrix and a vector including floating point values;

partitioning the matrix into a plurality of sub-matrices according to a size of a plurality of memristive dot product circuits that are disposed in a plurality of clusters;

for each sub-matrix of the plurality of sub-matrices, converting the floating point values to fixed point values wherein converting the floating point values to fixed point values comprises:

for each sub-matrix of the plurality of sub-matrices,

aligning mantissas of the fixed point values of a corresponding sub-matrix by independently aligning, for each row of the corresponding sub-matrix, a lowest element within the row of the corresponding sub-matrix with and a highest element within the same row of the corresponding sub-matrix; and

modifying the fixed point values of the corresponding sub-matrix with the aligned mantissas to include an equal length for each row of the corresponding sub-matrix; and

performing, based on the conversion and selected ones of the plurality of memristive dot product circuits of a cluster of the plurality of clusters, a dot product operation with respect to a sub-matrix and the vector,

each ones of the plurality of memristive dot product circuits includes rows including word line voltages corresponding to the floating point values of the vector, conductances corresponding to the floating point values of the corresponding sub-matrix, and columns that include bitline currents corresponding to dot products of the voltages and conductances.

11. The method according to claim 10 , wherein modifying the fixed point values of the corresponding sub-matrix with the aligned mantissas to include an equal length for each row of the corresponding sub-matrix comprises:

padding bits representing the mantissas with additional bits such that the fixed point values include an equal length, wherein a padding overhead for each row of the corresponding sub-matrix is limited to the difference between a minimum exponent associated with the lowest element within the row of the corresponding sub-matrix and a maximum exponent associated with the highest element within the same row of the corresponding sub-matrix.

12. The method according to claim 11 , wherein performing, based on the conversion and selected ones of the plurality of memristive dot product circuits of the cluster of the plurality of clusters, the dot product operation with respect to the sub-matrix and the vector further comprises:

for each sub-matrix of the plurality of sub-matrices,

determining a number of bit cells supported by the selected ones of the plurality of memristive dot product circuits; and

mapping, based on the determined number of bit cells, each element of the corresponding sub-matrix to a corresponding memristive dot product circuit.

13. The method according to claim 12 , wherein performing, based on the conversion and selected ones of the plurality of memristive dot product circuits of the cluster of the plurality of clusters, the dot product operation with respect to the sub-matrix and the vector further comprises:

performing, based on the mapping of each element of the corresponding sub-matrix to the corresponding memristive dot product circuit, a plurality of multiplication operations; and

for each multiplication operation of the plurality of multiplication operations, performing a shift and add operation to generate results of the plurality of multiplication operations.

14. The method according to claim 13 , wherein performing, based on the conversion and selected ones of the plurality of memristive dot product circuits of the cluster of the plurality of clusters, the dot product operation with respect to the sub-matrix and the vector further comprises:

combining the results of the plurality of multiplication operations to generate a combined result; and

adjusting, based on a bitslice position, a position of a significant bit of the combined result.

15. The method according to claim 14 , wherein performing, based on the conversion and selected ones of the plurality of memristive dot product circuits of the cluster of the plurality of clusters, the dot product operation with respect to the sub-matrix and the vector further comprises:

adjusting the combined result based on a scale associated with the corresponding sub-matrix.

16. The method according to claim 12 , wherein performing, based on the conversion and selected ones of the plurality of memristive dot product circuits of the cluster of the plurality of clusters, the dot product operation with respect to the sub-matrix and the vector further comprises:

performing, based on the mapping of each element of the corresponding sub-matrix to the corresponding memristive dot product circuit, a plurality of multiplication operations; and

for each multiplication operation of the plurality of multiplication operations and for a negative floating point value of the floating point values, performing a shift and subtract operation to generate results of the plurality of multiplication operations.

17. A non-transitory computer readable medium having stored thereon machine readable instructions, the machine readable instructions, when executed, cause a processor to:

ascertain a matrix and a vector including floating point values;

partition the matrix into a plurality of sub-matrices, and the vector into a plurality of sub-vectors according to a size of a plurality of memristive dot product circuits;

for each sub-matrix of the plurality of sub-matrices and for each sub-vector of the plurality of sub-vectors, convert the floating point values to fixed point values, wherein converting the floating point values to fixed point value further causes the processor to:

for each sub-matrix of the plurality of sub-matrices,

align mantissas of the fixed point values of a corresponding sub-matrix by independently aligning, for each row of the corresponding sub-matrix, a lowest element within the row of the corresponding sub-matrix with and a highest element within the same row of the corresponding sub-matrix and

modify the fixed point values of the corresponding sub-matrix with the aligned mantissas to include an equal length for each row of the corresponding sub-matrix; and

perform, based on the conversion and selected ones of the plurality of memristive dot product circuits, a dot product operation with respect to a sub-matrix and a sub-vector.

18. The non-transitory computer readable medium according to claim 17 , wherein each ones of the plurality of memristive dot product circuits includes rows including word line voltages corresponding to the floating point values of an associated sub-vector, conductances corresponding to the floating point values of the corresponding sub-matrix, and columns that include bitline currents corresponding to dot products of the voltages and conductances.

19. The non-transitory computer readable medium according to claim 17 , wherein the plurality of memristive dot product circuits are disposed in a plurality of clusters, and wherein the machine readable instructions, when executed, further cause the processor to:

perform, using memristive dot product circuits of a cluster of the plurality of clusters, the dot product operation on the corresponding sub-matrix of the plurality of sub-matrices.

20. The non-transitory computer readable medium according to claim 17 , wherein the machine readable instructions to modify the fixed point values of the associated sub-matrix with the aligned mantissas to include an equal length for each row of the corresponding sub-matrix further cause the processor to:

pad bits representing the mantissas with additional bits such that the fixed point values include an equal length, wherein a padding overhead for each row of the corresponding sub-matrix is limited to the difference between a minimum exponent associated with the lowest element within the row of the corresponding sub-matrix and a maximum exponent associated with the highest element within the same row of the corresponding sub-matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2019
From: MURALIMANOHAR, NAVEEN; FEINBERG, BENJAMIN
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 050111/0925 →
Continuity (1)
Related Publication 20200150923A1 · May 14, 2020
Cited By (1)
US 12,418,303