Exploiting Kant and Kimura's Matrix Inversion Algorithm on FPGA

Matrix inversion for real-time applications can be a challenge for the designers since its computational complexity is typically cubic. Parallelism has been widely exploited to reduce such complexity, however most traditional methods do not scale well with the matrix size leading to communication bo...

ver descrição completa

Detalhes bibliográficos
Autor principal: Perina, Andre Bannwart (author)
Outros Autores: Matias, Paulo (author), Marques, Eduardo (author), Bonato, Vanderlei (author), Lima, João (author)
Formato: conferenceObject
Idioma:eng
Publicado em: 2019
Texto completo:http://hdl.handle.net/10400.1/13283
País:Portugal
Oai:oai:sapientia.ualg.pt:10400.1/13283
Descrição
Resumo:Matrix inversion for real-time applications can be a challenge for the designers since its computational complexity is typically cubic. Parallelism has been widely exploited to reduce such complexity, however most traditional methods do not scale well with the matrix size leading to communication bottlenecks. In this paper we exploit a decentralised parallel hardware architecture based on a strongly non-singular matrix inversion algorithm proposed by Kant and Kimura in 1978, which is a parallel-orientated method with communication mode independent of the matrix size, mitigating the problem of matrix scalability. The hardware architecture is implemented in two different approaches using fixed-point arithmetic: dedicated and shared. In the first approach a matrix can be inverted in linear time while the latter, for the best case, has a square complexity. Experimental results are demonstrated using a Stratix V GX FPGA. For instance, in dedicated approach an 8x8 matrix is inverted in 1.27us, while in shared approach a 64x64 matrix is inverted in 153.40us using 64 pipelined processing elements.