Autor(es):
Pereira, Ricardo Joel Martins
Data: 2013
Identificador Persistente: http://hdl.handle.net/10400.21/3366
Origem: Repositório Científico do Instituto Politécnico de Lisboa
Assunto(s): Simulação de N-corpos; Núcleo gravitacional; Unidade de cálculo com pipeline; FPGA; N-body simulation; Gravitational kernel; Pipelined calculus unit
Descrição
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. 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.