System Development. Numerical Techniques for Matrix Inversion.
-
Upload
anne-dalton -
Category
Documents
-
view
225 -
download
1
Transcript of System Development. Numerical Techniques for Matrix Inversion.
![Page 1: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/1.jpg)
System Development
![Page 2: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/2.jpg)
Numerical Techniques for Matrix Inversion
![Page 3: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/3.jpg)
The Elementary Technique
Matrix Inversion using Co-Factors
![Page 4: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/4.jpg)
Inversion using Co-Factors? Not Suitable Computationally!!
• This technique is a very bad contender for implementationComplexity : ‘N!’ (N x N-1 x N-2 x … x 3 x 2 x 1)(Evaluated for SIMD machines)
• A recursive algorithm may lend an elegant solution but– Devours memory resources with extreme greed– Drags the processor out from the Grand Prix into a traffic jam
• Therefore, a computationally extremely expensive algorithm with magnanimous memory requirements
• Above all a SPS hardware architecture for this technique is a distant reality because of the irregular global communication requirements lend to it by its recursive algorithm
![Page 5: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/5.jpg)
Any Alternatives?
• Fortunately YES!• A technique which employs LU Decomposition and
Triangular Matrix Inversion for it’s solutionComplexity : N3 (Evaluated for SIMD machines)
• What are these numerical techniques? (We’ll soon get to learn them)
• The distinct advantage of these techniques is the fact that their solution is a mimicry of the Gaussian Elimination procedure, which in turn is an excellent contender for systolic implementations
![Page 6: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/6.jpg)
To the Computationally Efficient Numerical Techniques
Matrix Inversion using LU Decomposition and Triangular Matrix Inversion
![Page 7: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/7.jpg)
Matrix Inversion
![Page 8: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/8.jpg)
LU Decomposition
![Page 9: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/9.jpg)
LU Decomposition (cont.)
![Page 10: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/10.jpg)
LU Decomposition (cont.)
![Page 11: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/11.jpg)
LU Decomposition (cont.)
![Page 12: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/12.jpg)
Triangular Matrix Inversion
Upper Triangular Matrix
![Page 13: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/13.jpg)
Triangular Matrix Inversion (cont.)
![Page 14: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/14.jpg)
Triangular Matrix Inversion (cont.)
![Page 15: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/15.jpg)
Triangular Matrix Inversion (cont.)
![Page 16: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/16.jpg)
Triangular Matrix Inversion
Lower Triangular Matrix
![Page 17: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/17.jpg)
Triangular Matrix Inversion (cont.)
![Page 18: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/18.jpg)
Triangular Matrix Inversion (cont.)
![Page 19: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/19.jpg)
Triangular Matrix Inversion (cont.)
![Page 20: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/20.jpg)
A Systolic Architecture for Triangular Matrix Inversion
Matrix Order is 4 x 4
![Page 21: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/21.jpg)
Regular Cells
![Page 22: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/22.jpg)
Boundary Cells
![Page 23: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/23.jpg)
The following architecture’s abstract computational working has been illustrated using the upper triangular matrix. The same architecture, after some arrangement of data, can be employed for the computation of a lower triangular matrix.
![Page 24: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/24.jpg)
![Page 25: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/25.jpg)
![Page 26: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/26.jpg)
![Page 27: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/27.jpg)
![Page 28: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/28.jpg)
![Page 29: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/29.jpg)
![Page 30: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/30.jpg)
![Page 31: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/31.jpg)
![Page 32: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/32.jpg)
![Page 33: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/33.jpg)
Array for LU Decomposition?
Left for you to practice! Try to develop an idea of it’s dataflow independently and without any help. It will lend you and excellent understanding systolic data flows.
![Page 34: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/34.jpg)
A Systolic System for the Complete Matrix Inversion Algorithm
![Page 35: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/35.jpg)
![Page 36: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/36.jpg)
![Page 37: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/37.jpg)
![Page 38: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/38.jpg)
![Page 39: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/39.jpg)
![Page 40: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/40.jpg)
![Page 41: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/41.jpg)
![Page 42: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/42.jpg)
![Page 43: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/43.jpg)
MappingMapping is a procedure through which we can achieve the phenomenon of Resource Reuse. Mapping means that two or more algorithms use the same hardware architecture for their execution. It turns out that the most excellent contenders for Resource Reuse are Arithmetic Blocks or as in our case the Processing Elements. Usually, before mapping algorithms on to the same set of Processing Elements we need to develop a Scheduling Algorithm. A Scheduling Algorithm decides that at ‘which time interval’ will a particular processing element execute ‘what data’ for a particular algorithm, out of the given set of algorithms required to be mapped onto the system.
![Page 44: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/44.jpg)
An Example for Mapping
The Square Matrix Multiplication Array on the Band Matrix
Multiplication Array
![Page 45: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/45.jpg)
The Array for Band Matrices
![Page 46: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/46.jpg)
The Array for Square Matrices
![Page 47: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/47.jpg)
The Combined or “Mapped” Array
The ‘maroon’ lines represent common connections to each array
![Page 48: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/48.jpg)
![Page 49: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/49.jpg)
![Page 50: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/50.jpg)
The control signal, in sense, will perform the scheduling of operations
![Page 51: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/51.jpg)
![Page 52: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/52.jpg)
![Page 53: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/53.jpg)
In experience, I’ve found the Muliplexer to be arguably the single most important logic element for Datapath design. It’s use is especially imperative to resource efficient system design, as well as in devising the data-flow (data routing) between various devices within the system. Therefore, learning to utilize and eventually control multiplexers in system interconnection is critically essential for system design. I’ll assert upon the fact that you develop a clever understanding of this device as expertees with it will facilitate your design process and help you groom into excellent ‘Special-Purpose-System’ Datapath Designers.
A Sincere Advice!!
![Page 54: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/54.jpg)
General Framework for Datapath Development involving Processing Elements which require various Data Sources
![Page 55: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/55.jpg)
Procedure that can be adopted for routing data of varoius algorithms and tasks that maybe utilizing the same Processing Elements
![Page 56: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/56.jpg)
The Do-Yourself Thing
![Page 57: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/57.jpg)
![Page 58: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/58.jpg)
![Page 59: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/59.jpg)
Resource Efficiency
‘Mapping’ is a technique that results in reduced Logic Resource Consumption. Another effective technique for Area Optimization is developing ‘Partially-Parallel/Semi-Parallel Architectures’ from the Fully-Parallel Algorithm Data-path. This is actually considered as a ‘Time to Area Tradeoff’ approach and is valid only and until it suffices the Real-time requirements of the Special Purpose System being developed.
![Page 60: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/60.jpg)
I’ll throw light upon SPS Semi-Parallel Architectures using the Matrix
Multiplication Problem
![Page 61: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/61.jpg)
![Page 62: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/62.jpg)
The Single Processing Element Approach
![Page 63: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/63.jpg)
![Page 64: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/64.jpg)
The Fully Parallel (Simple and Systolic) Architecture for Matrix Multiplication
![Page 65: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/65.jpg)
![Page 66: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/66.jpg)
![Page 67: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/67.jpg)
The Semi-Parallel (Simple and Systolic) Architecture for Matrix Multiplication
![Page 68: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/68.jpg)
![Page 69: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/69.jpg)
![Page 70: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/70.jpg)
Towards Complete Systems
![Page 71: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/71.jpg)
Kalman Filter Equations
![Page 72: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/72.jpg)
Extended Kalman Filter Equations
![Page 73: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/73.jpg)
![Page 74: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/74.jpg)
The Local Control
• These are usually state machines or counters• In this particular example they are used to– Generate addresses and read/write signals for the
data storages– Specify the function to be performed by the
processing elements of the array– May also be used for selecting data inputs of
multiplexers for data transfer between the arrays and also for set, reset and load operations for various registers
![Page 75: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/75.jpg)
The Global Control
• These are usually wait-assert or interrupt based state-machines
• This may be again a state machine or a counter (at times rather large and complex)
• May be a Programmable State Machine!• Programmable State Machine?• These are like small microcontrollers that can
be programmed through software
![Page 76: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/76.jpg)
HW/SW Co-Design
• HW/SW stands for hardware software co-design• The concept is to solve the problem partially in
software and the rest in hardware• Why software? Because sequential problems are
more suited to software solutions• Let’s understand the particular example of
Kalman/H-Infinity Filter design using the Xilinx 8-bit PicoBlaze or KCPSM (Constant Coded Programmable State Machine)
![Page 77: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/77.jpg)
A Glance at the PicoBlaze Architecture
![Page 78: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/78.jpg)
But Why? Why PicoBlaze?
![Page 79: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/79.jpg)
Application of Wait-Assert type Global Control in Kalman System Design
![Page 80: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/80.jpg)
![Page 81: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/81.jpg)
Down Memory Lane
Remeber and Relate!!
![Page 82: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/82.jpg)
![Page 83: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/83.jpg)
![Page 84: System Development. Numerical Techniques for Matrix Inversion.](https://reader034.fdocuments.net/reader034/viewer/2022042702/56649d015503460f949d3e6f/html5/thumbnails/84.jpg)
Q & A s