Return to search

Implementação em FPGA de uma biblioteca parametrizável para inversão de matrizes baseada no algoritmo Gauss-Jordan, usando representação em ponto flutuante

Dissertação (mestrado)—Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Mecânica, 2010. / Submitted by Albânia Cézar de Melo (albania@bce.unb.br) on 2011-04-12T16:33:59Z
No. of bitstreams: 1
2010_JanierAriasGarcia.pdf: 1477625 bytes, checksum: 49f129291f7b6557c3d4729d552f872f (MD5) / Approved for entry into archive by Guimaraes Jacqueline(jacqueline.guimaraes@bce.unb.br) on 2011-05-20T15:41:00Z (GMT) No. of bitstreams: 1
2010_JanierAriasGarcia.pdf: 1477625 bytes, checksum: 49f129291f7b6557c3d4729d552f872f (MD5) / Made available in DSpace on 2011-05-20T15:41:00Z (GMT). No. of bitstreams: 1
2010_JanierAriasGarcia.pdf: 1477625 bytes, checksum: 49f129291f7b6557c3d4729d552f872f (MD5) / As operações computacionais em que se desenvolvem cálculos matriciais são à base, ou melhor, o coração de muitos algoritmos computacionais científicos, por exemplo: processamento de sinais,visão computacional, robótica, entre outros. Esse tipo de algoritmos em que desenvolvem-se cálculos matriciais terminam sendo tarefas computacionalmente custosas, e suas implementações em hardware exigem grandes esforços e tempo. Existe então uma crescente demanda por arquiteturas que permitam cálculos matriciais, proporcionando soluções rápidas e eficientes para este tipo de problema. Este trabalho apresenta diferentes arquiteturas computacionais para inverter matrizes em hardware reconfigurável, FPGA: (a) sequencial, (b) pipeline e (c) Paralelo. Estas arquiteturas usam uma representação de ponto flutuante tanto em precisão simples (32 bits) quanto precisão dupla (64 bits), visando o uso em implementações de baixo consumo de recursos lógicos, na qual
a unidade principal é o componente de processamento para redução Gauss-Jordan. Esse componente consiste de outras pequenas unidades organizadas de tal forma que mantêm a precisão dos resultados sem a necessidade de internamente normalizar e de-normalizar os dados em ponto flutuante. No intuito de gerar arquiteturas de baixo custo, este trabalho propõe o estudo de diferentes formas de abordar o problema, descrevendo em código VHDL estas arquiteturas em que os tamanhos de matrizes são definidos pelos usuários. Os resultados de erro e de tempo
de execução das arquiteturas desenvolvidas foram comparados contra o MatLab, que faz uma
simulação comportamental do código VHDL gerado através do ambiente de simulação ModelSim. A implementação das operações e da própria unidade procura explorar os recursos disponíveis na FPGA Virtex-5. O desempenho e o consumo de recursos são apresentados, comparando as diferentes arquiteturas desenvolvidas entre si e entre outras arquiteturas propostas encontradas
em publicações anteriores. Além disso, é mostrado o decremento no desempenho a medida que o tamanho da matriz aumenta. ______________________________________________________________________________ ABSTRACT / Computer operations demanding matrix calculations are at the heart of many scientific computing algorithms such as: signal processing, computer vision, robotics, among others. Because these algorithms perform matrix calculations, they are often computationally expensive, and
their hardware implementations require much effort and time. So there is a growing demand for architectures that perform matrix calculations, fast and efficiently.
This work presents different computer architectures for matrix inversion in FPGA reconfigurable hardware: (a) sequential, (b) pipeline and (c) Parallel. These architectures use a floating point representation in both single-precision (32 bit) and double precision (64 bits), suitable for use in low cost implementations, and where main component is Gauss-Jordan reduction. This component consists of other small units arranged in such a way that maintains the accuracy of
results without the need of internally normalizing and de-normalizing the floating point data. In order to generate low-cost architectures, this work proposes to study different ways of approaching the problem in VHDL code, and allowing that sizes of matrices be defined by users. All architectures were simulated using MatLab, with a behavioral simulation of VHDL code generated by ModelSim simulation environment. As a result of comparing the error obtained by the architecture, with the inversion performed using MatLab as static estimator. The implementation of operations and the unit seeks to explore the resources available in Virtex-5 FPGA. The performance and resource consumption are presented, comparing the different architectures developed between themselves and with others proposed in previous publications. In addition, it is shown the influence of the array size in the performance.

Identiferoai:union.ndltd.org:IBICT/oai:repositorio.unb.br:10482/7908
Date24 September 2010
CreatorsArias García, Janier
ContributorsJacobi, Ricardo Pezzuol, Llanos Quintero, Carlos Humberto
Source SetsIBICT Brazilian ETDs
LanguagePortuguese
Detected LanguagePortuguese
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Repositório Institucional da UnB, instname:Universidade de Brasília, instacron:UNB
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0031 seconds