system development. numerical techniques for matrix inversion

84
System Development

Upload: anne-dalton

Post on 17-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: System Development. Numerical Techniques for Matrix Inversion

System Development

Page 2: System Development. Numerical Techniques for Matrix Inversion

Numerical Techniques for Matrix Inversion

Page 3: System Development. Numerical Techniques for Matrix Inversion

The Elementary Technique

Matrix Inversion using Co-Factors

Page 4: System Development. Numerical Techniques for Matrix Inversion

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

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

To the Computationally Efficient Numerical Techniques

Matrix Inversion using LU Decomposition and Triangular Matrix Inversion

Page 7: System Development. Numerical Techniques for Matrix Inversion

Matrix Inversion

Page 8: System Development. Numerical Techniques for Matrix Inversion

LU Decomposition

Page 9: System Development. Numerical Techniques for Matrix Inversion

LU Decomposition (cont.)

Page 10: System Development. Numerical Techniques for Matrix Inversion

LU Decomposition (cont.)

Page 11: System Development. Numerical Techniques for Matrix Inversion

LU Decomposition (cont.)

Page 12: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion

Upper Triangular Matrix

Page 13: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion (cont.)

Page 14: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion (cont.)

Page 15: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion (cont.)

Page 16: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion

Lower Triangular Matrix

Page 17: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion (cont.)

Page 18: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion (cont.)

Page 19: System Development. Numerical Techniques for Matrix Inversion

Triangular Matrix Inversion (cont.)

Page 20: System Development. Numerical Techniques for Matrix Inversion

A Systolic Architecture for Triangular Matrix Inversion

Matrix Order is 4 x 4

Page 21: System Development. Numerical Techniques for Matrix Inversion

Regular Cells

Page 22: System Development. Numerical Techniques for Matrix Inversion

Boundary Cells

Page 23: System Development. Numerical Techniques for Matrix Inversion

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
Page 25: System Development. Numerical Techniques for Matrix Inversion
Page 26: System Development. Numerical Techniques for Matrix Inversion
Page 27: System Development. Numerical Techniques for Matrix Inversion
Page 28: System Development. Numerical Techniques for Matrix Inversion
Page 29: System Development. Numerical Techniques for Matrix Inversion
Page 30: System Development. Numerical Techniques for Matrix Inversion
Page 31: System Development. Numerical Techniques for Matrix Inversion
Page 32: System Development. Numerical Techniques for Matrix Inversion
Page 33: System Development. Numerical Techniques for Matrix Inversion

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

A Systolic System for the Complete Matrix Inversion Algorithm

Page 35: System Development. Numerical Techniques for Matrix Inversion
Page 36: System Development. Numerical Techniques for Matrix Inversion
Page 37: System Development. Numerical Techniques for Matrix Inversion
Page 38: System Development. Numerical Techniques for Matrix Inversion
Page 39: System Development. Numerical Techniques for Matrix Inversion
Page 40: System Development. Numerical Techniques for Matrix Inversion
Page 41: System Development. Numerical Techniques for Matrix Inversion
Page 42: System Development. Numerical Techniques for Matrix Inversion
Page 43: System Development. Numerical Techniques for Matrix Inversion

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

An Example for Mapping

The Square Matrix Multiplication Array on the Band Matrix

Multiplication Array

Page 45: System Development. Numerical Techniques for Matrix Inversion

The Array for Band Matrices

Page 46: System Development. Numerical Techniques for Matrix Inversion

The Array for Square Matrices

Page 47: System Development. Numerical Techniques for Matrix Inversion

The Combined or “Mapped” Array

The ‘maroon’ lines represent common connections to each array

Page 48: System Development. Numerical Techniques for Matrix Inversion
Page 49: System Development. Numerical Techniques for Matrix Inversion
Page 50: System Development. Numerical Techniques for Matrix Inversion

The control signal, in sense, will perform the scheduling of operations

Page 51: System Development. Numerical Techniques for Matrix Inversion
Page 52: System Development. Numerical Techniques for Matrix Inversion
Page 53: System Development. Numerical Techniques for Matrix Inversion

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

General Framework for Datapath Development involving Processing Elements which require various Data Sources

Page 55: System Development. Numerical Techniques for Matrix Inversion

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

The Do-Yourself Thing

Page 57: System Development. Numerical Techniques for Matrix Inversion
Page 58: System Development. Numerical Techniques for Matrix Inversion
Page 59: System Development. Numerical Techniques for Matrix Inversion

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

I’ll throw light upon SPS Semi-Parallel Architectures using the Matrix

Multiplication Problem

Page 61: System Development. Numerical Techniques for Matrix Inversion
Page 62: System Development. Numerical Techniques for Matrix Inversion

The Single Processing Element Approach

Page 63: System Development. Numerical Techniques for Matrix Inversion
Page 64: System Development. Numerical Techniques for Matrix Inversion

The Fully Parallel (Simple and Systolic) Architecture for Matrix Multiplication

Page 65: System Development. Numerical Techniques for Matrix Inversion
Page 66: System Development. Numerical Techniques for Matrix Inversion
Page 67: System Development. Numerical Techniques for Matrix Inversion

The Semi-Parallel (Simple and Systolic) Architecture for Matrix Multiplication

Page 68: System Development. Numerical Techniques for Matrix Inversion
Page 69: System Development. Numerical Techniques for Matrix Inversion
Page 70: System Development. Numerical Techniques for Matrix Inversion

Towards Complete Systems

Page 71: System Development. Numerical Techniques for Matrix Inversion

Kalman Filter Equations

Page 72: System Development. Numerical Techniques for Matrix Inversion

Extended Kalman Filter Equations

Page 73: System Development. Numerical Techniques for Matrix Inversion
Page 74: System Development. Numerical Techniques for Matrix Inversion

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

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

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

A Glance at the PicoBlaze Architecture

Page 78: System Development. Numerical Techniques for Matrix Inversion

But Why? Why PicoBlaze?

Page 79: System Development. Numerical Techniques for Matrix Inversion

Application of Wait-Assert type Global Control in Kalman System Design

Page 80: System Development. Numerical Techniques for Matrix Inversion
Page 81: System Development. Numerical Techniques for Matrix Inversion

Down Memory Lane

Remeber and Relate!!

Page 82: System Development. Numerical Techniques for Matrix Inversion
Page 83: System Development. Numerical Techniques for Matrix Inversion
Page 84: System Development. Numerical Techniques for Matrix Inversion

Q & A s