Sistema de multiprocessamento para simulação de N-corpos em FPGA


Autoria(s): Pereira, Ricardo Joel Martins
Contribuinte(s)

Véstias, Mário Pereira

Data(s)

12/03/2014

12/03/2014

01/12/2013

Resumo

Trabalho Final de Mestrado para obtenção do grau de Mestre em Engenharia de Electrónica e Telecomunicações

Este projeto tem como objetivo o desenvolvimento de uma arquitetura de multiprocessamento dedicada à simulação de sistemas baseados na interação entre N-corpos. O sistema é desenvolvido numa placa de desenvolvimento com FPGA, tendo por base módulos lógicosdedicados ao cálculo das expressões base da simulação. Escolhido como problema exemplo a evolução de um sistema de interação gravítica de Ncorpos, são analisados os algoritmos de obtenção do valor das forças envolvidas e algoritmos de integração numérica, tendo em vista obter uma descrição do peso computacional e precisão dos mesmos. São analisados os recursos presentes numa FPGA de forma a perceber a sua influência na implementação dos circuitos lógicos. São também analisados tipos de representações numéricas para entender qual melhor se adapta ao problema em causa. Numa segunda fase é analisado o compromisso entre a precisão numérica e a área dos núcleos a desenvolver. Esta análise permite, dada uma FPGA com uma determinada quantidade de recursos internos, obter uma estimativa da quantidade de núcleos de processamento realizáveis. Numa terceira e última fase, é criada uma arquitetura de multiprocessamento com módulos dedicados, onde é executado o algoritmo. Uma análise do sistema completo permite obter uma descrição dos recursos utilizados pelo sistema, bem como da taxa de cálculo final. O sistema desenvolvido é modular e configurável em vários parâmetros internos, entre os quais o formato numérico utilizado, obtendo-se um sistema adaptável às necessidades do utilizador. Éutilizada a memória interna da FPGA para o armazenamento dos dados de simulação. A interface com o exterior é uma porta série, que é uma interface genérica conhecida com bastantes aplicações de utilização já desenvolvidas. É atingida uma capacidade de cálculo média de 5.3 GFLOPS, mas esta pode ser aumentada utilizando uma FPGA de maior capacidade que a usada no desenvolvimento deste trabalho, uma Virtex-4 XC4VSX35. O sistema é também facilmente portável para famílias mais recentes de FPGA, possibilitando taxas de cálculo ainda superiores. Para uma FPGA XC7VX980T, da família Virtex-7, a capacidade de cálculo estimada é de 49,5 GFLOPS.

Abstract: This project aims to develop a multiprocessing architecture dedicated to simulate N-body interaction based systems. The system is developed on a FPGA development board, having as base logic modules dedicated to the calculus of the base expressions of the simulation. Chosen as example problem the evolution of a gravitational interaction N-body system, algorithms for obtaining the value of involved forces and numerical integration algorithms are analyzed, having in mind obtaining a computational weight and accuracy description of those. The resources present in a FPGA are analyzed as a way to understand their influence on logic circuits implementation. Numeric representation types are also analyzed to understand which one best fits the problem at hand. On a second phase the compromise between numerical precision and the area of the cores to develop is analyzed. This analysis allows to, given a FPGA with a certain amount of internal resources, obtain an estimate of the amount of processing cores realizable. In a third and final phase, a dedicated module multiprocessing architecture, in which the algorithm is executed, is created. An analysis of the complete system allows for a description of used resources, as well as of the final calculation rate. The developed system is modular and configurable in various internal parameters, including the numeric format used, resulting in a system adaptable to user needs. Having in sight to obtain a system-on-a-chip, the internal memory of the FPGA is used to store the simulation data. The interface with the outside is a serial port, which is a known generic interface with many use applications already developed. An average calculation rate of 5.3 GFLOPS is achieved, but this can be increased using a FPGA with a higher capacity that the one used in the development of this work, a XC4VSX35 Virtex-4. The system is also easily portable to newer FPGA families, allowing calculation rates even higher. For a XC7VX980T FPGA, from the Virtex-7 family, the estimated calculation rate is49.5 GFLOPS.

Identificador

PEREIRA, Ricardo Joel Martins - Sistema de multiprocessamento para simulação de N-corpos em FPGA. Lisboa: Instituto Superior de Engenharia de Lisboa, 2013. Dissertação de mestrado.

http://hdl.handle.net/10400.21/3366

201229943

Idioma(s)

por

Direitos

openAccess

Palavras-Chave #Simulação de N-corpos #Núcleo gravitacional #Unidade de cálculo com pipeline #FPGA #N-body simulation #Gravitational kernel #Pipelined calculus unit
Tipo

masterThesis

Publicador

Instituto Superior de Engenharia de Lisboa