3 research outputs found

    Synthesis of FPGA-based accelerators implementing recursive algorithms

    Get PDF
    Doutoramento em Engenharia InformáticaO desenvolvimento de sistemas computacionais é um processo complexo, com múltiplas etapas, que requer uma análise profunda do problema, levando em consideração as limitações e os requisitos aplicáveis. Tal tarefa envolve a exploração de técnicas alternativas e de algoritmos computacionais para optimizar o sistema e satisfazer os requisitos estabelecidos. Neste contexto, uma das mais importantes etapas é a análise e implementação de algoritmos computacionais. Enormes avanços tecnológicos no âmbito das FPGAs (Field-Programmable Gate Arrays) tornaram possível o desenvolvimento de sistemas de engenharia extremamente complexos. Contudo, o número de transístores disponíveis por chip está a crescer mais rapidamente do que a capacidade que temos para desenvolver sistemas que tirem proveito desse crescimento. Esta limitação já bem conhecida, antes de se revelar com FPGAs, já se verificava com ASICs (Application-Specific Integrated Circuits) e tem vindo a aumentar continuamente. O desenvolvimento de sistemas com base em FPGAs de alta capacidade envolve uma grande variedade de ferramentas, incluindo métodos para a implementação eficiente de algoritmos computacionais. Esta tese pretende proporcionar uma contribuição nesta área, tirando partido da reutilização, do aumento do nível de abstracção e de especificações algorítmicas mais automatizadas e claras. Mais especificamente, é apresentado um estudo que foi levado a cabo no sentido de obter critérios relativos à implementação em hardware de algoritmos recursivos versus iterativos. Depois de serem apresentadas algumas das estratégias para implementar recursividade em hardware mais significativas, descreve-se, em pormenor, um conjunto de algoritmos para resolver problemas de pesquisa combinatória (considerados enquanto exemplos de aplicação). Versões recursivas e iterativas destes algoritmos foram implementados e testados em FPGA. Com base nos resultados obtidos, é feita uma cuidada análise comparativa. Novas ferramentas e técnicas de investigação que foram desenvolvidas no âmbito desta tese são também discutidas e demonstradas.Design of computational systems is a complex multistage process which requires a deep analysis of the problem, taking into account relevant limitations and constraints as well as software/hardware co-design. Such task involves exploring competitive techniques and computational algorithms, enabling the system to be optimized while satisfying given requirements. In this context, one of the most important stages is analysis and implementation of computational algorithms. Tremendous progress in the scope of FPGA (Field-Programmable Gate Array) technology has made it possible to design very complicated engineering systems. However, the number of available transistors grows faster than the ability to meaningfully design with them. This situation is a well known design productivity gap, which was inherited by FPGA from ASIC (Application-Specific Integrated Circuit) and which is increasing continuously. Developing engineering systems on the basis of high capacity FPGAs involves a wide variety of design tools, including methods for efficient implementation of computational algorithms. The thesis is intended to provide a contribution in this area by aiming at reuse, high level abstraction, automation, and clearness of algorithmic specifications. More specifically, it presents research studies which have been carried out in order to obtain criteria regarding implementation of recursive vs. iterative algorithms in hardware. After describing some of the most relevant strategies for implementing recursion in hardware, a selection of algorithms for solving combinatorial search problems (considered as application examples) are also described in detail. Iterative and recursive versions of these algorithms have been implemented and tested in FPGA. Taking into consideration the results obtained, a careful comparative analysis is given. New research-oriented tools and techniques for hardware design which have been developed in the scope of this thesis are also discussed and demonstrated

    Language evolution and recursion : an empirical investigation of human hierarchical processing

    Get PDF
    Tese de doutoramento, Ciências Biomédicas (Neurociências), Universidade de Lisboa, Faculdade de Medicina, 2014Humans generate complex hierarchical structures in a variety of domains such as in language, social organization, music, action sequencing and visual arts. One cognitive capacity associated with this extraordinary generative power is recursion. Recursion is a very efficient method to process hierarchies and it allows the generation of unbounded hierarchical depth from finite means. Recursion can be defined as the ability to represent the embedding of hierarchies within hierarchies of the same kind. Although recursion has been hypothesized as uniquely human and primarily linguistic, the empirical investigation of these hypotheses has been hindered by the absence of methods to test for recursive capabilities outside the domain of language. In this thesis I present a novel task that can be used to investigate the ability to represent recursion (hierarchical self-similarity) in the visuo-spatial domain. I will describe a set of experiments in which I attempt to characterize recursion as a psychological entity by describing its relationship with other cognitive abilities, as well as its developmental patterns and neural underpinnings. The conclusions of this research program are the following: 1) humans can represent recursion in the visuo-spatial domain; 2) this ability requires the acquisition of abstract rules; 3) recursion can be efficiently used to represent information common to different levels of a hierarchy, and it enhances the ability to detect fine-grained hierarchical mistakes, 4) linguistic resources are not specifically active while processing visual recursion neither behaviorally nor at the neural level, however recursion seems to require the integration of spatial and categorical information. The novel task and results presented here open up exciting pathways in the investigation of recursion as a cognitive ability. Because it is a visual task, not requiring verbal instructions or responses, it can also be used to test non-human primates and clinical populations with language impairment.A espécie humana é capaz de produzir hierarquias complexas na linguagem, organização social, música, actividade motora e nas artes visuais. O poder generativo da cognição humana tem sido associado a um módulo computacional designado recursividade, que pode ser definido como a capacidade de representar a incorporação de hierarquias dentro de hierarquias do mesmo tipo. A recursividade pode ser usada de modo eficiente no processamento de hierarquias, permitindo a geração de estruturas infinitamente profundas partindo de um número finito de elementos. Esta capacidade tem sido postulada como exclusivamente humana e primariamente linguística. No entanto, a investigação empírica destas hipóteses tem sido dificultada pela ausência de um método para testar capacidades recursivas fora do domínio linguístico. Nesta tese irei apresentar um novo método para testar a capacidade de representar a recursividade no domínio visuo-espacial. Irei descrever uma série de experiências nas quais caracterizarei a recursividade como uma entidade psicológica, descrevendo de que forma se relaciona com outras capacidades cognitivas, o seu padrão de desenvolvimento e correlatos neurais. As conclusões deste programa de investigação são as seguintes: 1) a espécie humana é capaz de representar recursividade visuo-espacial; 2) esta capacidade requer a aquisição de regras abstractas; 3) a recursividade é usada para representar informação comum a vários níveis hierárquicos e melhora a capacidade de detectar erros estruturais ao nível dos pequenos detalhes; 4) o processamento de recursividade visual não activa especificamente recursos verbais, quer ao nível do comportamento quer ao nível neural, contudo esta capacidade requer a integração de informação espacial e categorial. A tarefa e os resultados inovadores aqui apresentados abrem novas vias de investigação relativamente à capacidade de utilizar recursividade ao nível cognitivo. Por ser uma tarefa visual não requer instruções nem respostas verbais, pelo que pode ser usada para testar primatas não humanos e populações clínicas com defeitos de linguagem.Fundação para a Ciência e a Tecnologia (FCT); European Research Council (ERC

    Modeling recursion data structures for FPGA-based implementation

    No full text
    Summarization: Recursion is a powerful technique used to solve problems with repeating patterns, and is a fundamental structure in software. To date there is no known general way to apply a recursive solution to reconfigurable hardware; it is considered difficult to implement, of low performance and resource-intensive. In this paper we extend previous results on hardware structures for recursion by V. Sklyarov, and we demonstrate that recursion can be efficiently implemented in a general way on FPGAs. We show that our general, non-optimized architecture presents approximately 3 times speedup against optimized software algorithm implementations. It also shows 75% speedup, at least 40% lower area utilization, and at the same time it is simpler, less designer time consuming and more general vs. previously published hardware implementations.Παρουσιάστηκε στο: International Conference on Field Programmable Logic and Application
    corecore