Run-Time Selection of Customized Accelerators

José Miguel Carvalho Martins de Campos · Open Repository of the University of Porto (University of Porto) · 2020

Moore's law is coming to an end.In the last twenty years the trend was to explore the parallelization of the task execution and therefore parallel computing.Despite being obvious that one could only achieve better performances with another type of machine like the quantum computers, it is obvious as well that these machines, that we already have, could be always of use because they are very good when it comes to performing certain tasks or task sets.Being so, there are other situations where the best options would be the ones that can offer the most capacity of parallelization such a multiprocessor, multithreaded environment, or with a more specific environment such as are the GPUs (Graphical Processing Unit), ASICs (Application Specific Integrated Circuit) or FPGAs (Field Programmable Gate Array).This work targeted the development of a hybrid computing system with an FPGA with runtime partial dynamic reconfiguration capabilities.vResumo A lei de Moore está a chegar ao seu fim.Nos últimos vinte anos, a tendência tem sido explorar a paralelização da execução das tarefas e, portanto, a computação paralela.Apesar de óbvio que só se poderá obter melhores desempenhos com outro tipo de máquina, como os computadores quânticos, também é óbvio que estas máquinas, já existentes, podem ser sempre úteis, porque são muito boas quando se trata de executar determinadas tarefas ou conjuntos de tarefas.Sendo assim, existem outras situações em que as melhores opções seriam aquelas que podem oferecer a maior capacidade de paralelização, como um sistema multiprocessador, programação multithreaded ou com um ambiente heterogéneo, como com as GPUs (Graphical Processing Unit), com ASICs (Application Specific Integrated Circuit) ou com FPGAs (Field Programable Gate Arrays).Este trabalho teve como objetivo o desenvolvimento de um sistema de computação híbrido com uma FPGA com recursos de reconfiguração parcial dinâmica em tempo de real.Os requisitos de desempenho e eficiência de energia dos sistemas embarcados estão se tornando cada vez mais apertados como resultado da crescente complexidade dos algoritmos.Uma abordagem importante para o cumprimento desses requisitos apertados para sistemas com FPGAs é usar aceleradores personalizados para melhorar os tempos de execução das tarefas e melhorar a performance.Quanto mais o acelerador for personalizado para o código, maiores serão as melhorias de desempenho.No entanto, um acelerador personalizado para uma determinada tarefa pode não ser ideal para outras tarefas ou pode não ser de todo útil e, portanto, talvez seja necessário reconfigurar o FPGA a qualquer momento que desejar processar uma tarefa diferente ou ter os vários aceleradores instanciados na configuração inicial da FPGA.Para alternar dinamicamente os aceleradores em tempo real usando a reconfiguração parcial cada vez que temos um conjunto de tarefas diferente e, no entanto, melhorar o desempenho geral e reduzir a perda de performance trazida pela necessidade de reconfigurar o sistema, é necessário estudar o conjunto de tarefas ou tentar prever o ciclo de execução.O objetivo deste trabalho é: vi -Implementar um protótipo de hardware que suporte N aceleradores personalizados e escolha dinamicamente o mais apropriado, levando em consideração o tempo e a energia necessários para alternar os aceleradores.A escolha também pode depender da sequência de tarefas a serem aceleradas.-Estudo e análise das características e ferramentas de reconfiguração parcial.-Estudo dos componentes e modelo estáticos e dinâmicos do tempo de execução.-O desenvolvimento de aceleradores específicos para uma tarefa ou conjunto de tarefas.-O desenvolvimento de um escalonador para um sistema operativo que reduza as perdas no desempenho causadas pelos efeitos gerais da reconfiguração dinâmica parcial do FPGA, podendo melhorar o desempenho do sistema e reduzir o consumo de energia em tempo de real.Resultados obtidos sobre diferentes algoritmos são apresentados.Os resultados obtidos sobre um escalonador simples também são apresentados e, finalmente, tentamos concluir quais são os esforços que temos para desenvolver o escalonador proposto, a fim de prever o conjunto de tarefas e minimizar o tempo necessário para reconfigurar o sistema.Apresentamos conclusões se e quando um FPGA é uma boa opção para acelerar uma tarefa em um sistema de computação heterogêneo.O protótipo foi avaliado usando os programas de benchmarking existentes.

Read the paper · More papers on PaperTik