37 research outputs found

    Efficient Implementation of Particle Filters in Application-Specific Instruction-Set Processor

    Get PDF
    RÉSUMÉ Cette thĂšse considĂšre le problĂšme de l’implĂ©mentation de filtres particulaires (particle filters PFs) dans des processeurs Ă  jeu d’instructions spĂ©cialisĂ© (Application-Specific Instruction-set Processors ASIPs). ConsidĂ©rant la diversitĂ© et la complexitĂ© des PFs, leur implĂ©mentation requiert une grande efficacitĂ© dans les calculs et de la flexibilitĂ© dans leur conception. La conception de ASIPs peut se faire avec un niveau intĂ©ressant de flexibilitĂ©. Notre recherche se concentre donc sur l’amĂ©lioration du dĂ©bit des PFs dans un environnement de conception de ASIP. Une approche gĂ©nĂ©rale est tout d’abord proposĂ©e pour caractĂ©riser la complexitĂ© computationnelle des PFs. Puisque les PFs peuvent ĂȘtre utilisĂ©s dans une vaste gamme d’applications, nous utilisons deux types de blocs afin de distinguer les propriĂ©tĂ©s des PFs. Le premier type est spĂ©cifique Ă  l’application et le deuxiĂšme type est spĂ©cifique Ă  l’algorithme. Selon les rĂ©sultats de profilage, nous avons identifiĂ© que les blocs du calcul de la probabilitĂ© et du rĂ©Ă©chantillonnage sont les goulots d’étranglement principaux des blocs spĂ©cifiques Ă  l’algorithme. Nous explorons l’optimisation de ces deux blocs aux niveaux algorithmique et architectural. Le niveau algorithmique offre un grand potentiel d’accĂ©lĂ©ration et d’amĂ©lioration du dĂ©bit. Notre travail dĂ©bute donc Ă  ce niveau par l’analyse de la complexitĂ© des blocs du calcul de la probabilitĂ© et du rĂ©Ă©chantillonnage, puis continue avec leur simplification et modification. Nous avons simplifiĂ© le bloc du calcul de la probabilitĂ© en proposant un mĂ©canisme de quantification uniforme, l’algorithme UQLE. Les rĂ©sultats dĂ©montrent une amĂ©lioration significative d’une implĂ©mentation logicielle, sans perte de prĂ©cision. Le pire cas de l’algorithme UQLE implĂ©mentĂ© en logiciel Ă  virgule fixe avec 32 niveaux de quantification atteint une accĂ©lĂ©ration moyenne de 23.7× par rapport Ă  l’implĂ©mentation logicielle de l’algorithme ELE. Nous proposons aussi deux nouveaux algorithmes de rĂ©Ă©chantillonnage pour remplacer l’algorithme sĂ©quentiel de rĂ©Ă©chantillonnage systĂ©matique (SR) dans les PFs. Ce sont l’algorithme SR reformulĂ© et l’algorithme SR parallĂšle (PSR). L’algorithme SR reformulĂ© combine un groupe de boucles en une boucle unique afin de faciliter sa parallĂ©lisation dans un ASIP. L’algorithme PSR rend les itĂ©rations indĂ©pendantes, permettant ainsi Ă  l’algorithme de rĂ©Ă©chantillonnage de s’exĂ©cuter en parallĂšle. De plus, l’algorithme PSR a une complexitĂ© computationnelle plus faible que l’algorithme SR. Du point de vue architectural, les ASIPs offrent un grand potentiel pour l’implĂ©mentation de PFs parce qu’ils prĂ©sentent un bon Ă©quilibre entre l’efficacitĂ© computationnelle et la flexibilitĂ© de conception. Ils permettent des amĂ©liorations considĂ©rables en dĂ©bit par l’inclusion d’instructions spĂ©cialisĂ©es, tout en conservant la facilitĂ© relative de programmation de processeurs Ă  usage gĂ©nĂ©ral. AprĂšs avoir identifiĂ© les goulots d’étranglement de PFs dans les blocs spĂ©cifiques Ă  l’algorithme, nous avons gĂ©nĂ©rĂ© des instructions spĂ©cialisĂ©es pour les algorithmes UQLE, SR reformulĂ© et PSR. Le dĂ©bit a Ă©tĂ© significativement amĂ©liorĂ© par rapport Ă  une implĂ©mentation purement logicielle tournant sur un processeur Ă  usage gĂ©nĂ©ral. L’implĂ©mentation de l’algorithme UQLE avec instruction spĂ©cialisĂ©e avec 32 intervalles atteint une accĂ©lĂ©ration de 34× par rapport au pire cas de son implĂ©mentation logicielle, avec 3.75 K portes logiques additionnelles. Nous avons produit une implĂ©mentation de l’algorithme SR reformulĂ©, avec quatre poids calculĂ©s en parallĂšle et huit catĂ©gories dĂ©finies par des bornes uniformĂ©ment distribuĂ©es qui sont comparĂ©es simultanĂ©ment. Elle atteint une accĂ©lĂ©ration de 23.9× par rapport Ă  l’algorithme SR sĂ©quentiel dans un processeur Ă  usage gĂ©nĂ©ral. Le surcoĂ»t est limitĂ© Ă  54 K portes logiques additionnelles. Pour l’algorithme PSR, nous avons conçu quatre instructions spĂ©cialisĂ©es configurĂ©es pour supporter quatre poids entrĂ©s en parallĂšle. Elles mĂšnent Ă  une accĂ©lĂ©ration de 53.4× par rapport Ă  une implĂ©mentation de l’algorithme SR en virgule flottante sur un processeur Ă  usage gĂ©nĂ©ral, avec un surcoĂ»t de 47.3 K portes logiques additionnelles. Finalement, nous avons considĂ©rĂ© une application du suivi vidĂ©o et implĂ©mentĂ© dans un ASIP un algorithme de FP basĂ© sur un histogramme. Nous avons identifiĂ© le calcul de l’histogramme comme Ă©tant le goulot principal des blocs spĂ©cifiques Ă  l’application. Nous avons donc proposĂ© une architecture de calcul d’histogramme Ă  rĂ©seau parallĂšle (PAHA) pour ASIPs. Les rĂ©sultats d’implĂ©mentation dĂ©montrent qu’un PAHA Ă  16 voies atteint une accĂ©lĂ©ration de 43.75× par rapport Ă  une implĂ©mentation logicielle sur un processeur Ă  usage gĂ©nĂ©ral.----------ABSTRACT This thesis considers the problem of the implementation of particle filters (PFs) in Application-Specific Instruction-set Processors (ASIPs). Due to the diversity and complexity of PFs, implementing them requires both computational efficiency and design flexibility. ASIP design can offer an interesting degree of design flexibility. Hence, our research focuses on improving the throughput of PFs in this flexible ASIP design environment. A general approach is first proposed to characterize the computational complexity of PFs. Since PFs can be used for a wide variety of applications, we employ two types of blocks, which are application-specific and algorithm-specific, to distinguish the properties of PFs. In accordance with profiling results, we identify likelihood processing and resampling processing blocks as the main bottlenecks in the algorithm-specific blocks. We explore the optimization of these two blocks at the algorithmic and architectural levels. The algorithmic level is at a high level and therefore has a high potential to offer speed and throughput improvements. Hence, in this work we begin at the algorithm level by analyzing the complexity of the likelihood processing and resampling processing blocks, then proceed with their simplification and modification. We simplify the likelihood processing block by proposing a uniform quantization scheme, the Uniform Quantization Likelihood Evaluation (UQLE). The results show a significant improvement in performance without losing accuracy. The worst case of UQLE software implementation in fixed-point arithmetic with 32 quantized intervals achieves 23.7× average speedup over the software implementation of ELE. We also propose two novel resampling algorithms instead of the sequential Systematic Resampling (SR) algorithm in PFs. They are the reformulated SR and Parallel Systematic Resampling (PSR) algorithms. The reformulated SR algorithm combines a group of loops into a parallel loop to facilitate parallel implementation in an ASIP. The PSR algorithm makes the iterations independent, thus allowing the resampling algorithms to perform loop iterations in parallel. In addition, our proposed PSR algorithm has lower computational complexity than the SR algorithm. At the architecture level, ASIPs are appealing for the implementation of PFs because they strike a good balance between computational efficiency and design flexibility. They can provide considerable throughput improvement by the inclusion of custom instructions, while retaining the ease of programming of general-purpose processors. Hence, after identifying the bottlenecks of PFs in the algorithm-specific blocks, we describe customized instructions for the UQLE, reformulated SR, and PSR algorithms in an ASIP. These instructions provide significantly higher throughput when compared to a pure software implementation running on a general-purpose processor. The custom instruction implementation of UQLE with 32 intervals achieves 34× speedup over the worst case of its software implementation with 3.75 K additional gates. An implementation of the reformulated SR algorithm is evaluated with four weights calculated in parallel and eight categories defined by uniformly distributed numbers that are compared simultaneously. It achieves a 23.9× speedup over the sequential SR algorithm in a general-purpose processor. This comes at a cost of only 54 K additional gates. For the PSR algorithm, four custom instructions, when configured to support four weights input in parallel, lead to a 53.4× speedup over the floating-point SR implementation on a general-purpose processor at a cost of 47.3 K additional gates. Finally, we consider the specific application of video tracking, and an implementation of a histogram-based PF in an ASIP. We identify that the histogram calculation is the main bottleneck in the application-specific blocks. We therefore propose a Parallel Array Histogram Architecture (PAHA) engine for accelerating the histogram calculation in ASIPs. Implementation results show that a 16-way PAHA can achieve a speedup of 43.75× when compared to its software implementation in a general-purpose processor

    Techniques d'exploration architecturale de design à usage spécifique pour l'accélération de boucles

    Get PDF
    RÉSUMÉ De nos jours, les industriels privilĂ©gient les architectures flexibles afin de rĂ©duire le temps et les coĂ»ts de conception d’un systĂšme. Les processeurs Ă  usage spĂ©cifique (ASIP) fournissent beaucoup de flexibilitĂ©, tout en atteignant des performances Ă©levĂ©es. Une tendance qui a de plus en plus de succĂšs dans le processus de conception d’un systĂšme sur puce consiste Ă  spĂ©cifier le comportement du systĂšme en langage Ă©voluĂ© tel que le C, SystemC, etc. La spĂ©cification est ensuite utilisĂ©e durant le partitionement pour dĂ©terminer les composantes logicielles et matĂ©rielles du systĂšme. Avec la maturitĂ© des gĂ©nĂ©rateurs automatiques de ASIP, les concepteurs peuvent rajouter dans leurs boĂźtes Ă  outils un nouveau type d’architecture, Ă  savoir les ASIP, en sachant que ces derniers sont conçus Ă  partir d’une spĂ©cification dĂ©crite en langage Ă©voluĂ©. D’un autre cĂŽtĂ©, dans le monde matĂ©riel, et cela depuis trĂšs longtemps, les chercheurs ont vu l’avantage de baser le processus de conception sur un langage Ă©voluĂ©. Cette recherche a abouti Ă  l’avĂ©nement de gĂ©nĂ©rateurs automatiques de matĂ©riel sur le marchĂ© qui sont des outils d’aide Ă  la conception comme CapatultC, Forte’s Cynthetizer, etc. Ainsi, avec tous ces outils basĂ©s sur le langage C, les concepteurs ont un choix de types de design Ă©largi mais, d’un autre cĂŽtĂ©, les options de designs possibles explosent, ce qui peut allonger au lieu de rĂ©duire le temps de conception. C’est dans ce cadre que notre thĂšse doctorale s’inscrit, puisqu’elle prĂ©sente des mĂ©thodologies d’exploration architecturale de design Ă  usage spĂ©cifique pour l’accĂ©lĂ©ration de boucles afin de rĂ©duire le temps de conception, entre autres. Cette thĂšse a dĂ©butĂ© par l’exploration de designs de ASIP. Les boucles de traitement sont de bonnes candidates Ă  l’accĂ©lĂ©ration, si elles comportent de bonnes possibilitĂ©s de parallĂ©lisme et si ces derniĂšres sont bien exploitĂ©es. Le matĂ©riel est trĂšs efficace Ă  profiter des possibilitĂ©s de parallĂ©lisme au niveau instruction, donc, une mĂ©thode de conception a Ă©tĂ© proposĂ©e. Cette derniĂšre extrait le parallĂ©lisme d’une boucle afin d’exĂ©cuter plus d’opĂ©rations concurrentes dans des instructions spĂ©cialisĂ©es. Notre mĂ©thode se base aussi sur l’optimisation des donnĂ©es dans l’architecture du processeur.---------- ABSTRACT Time to market is a very important concern in industry. That is why the industry always looks for new CAD tools that contribute to reducing design time. Application-specific instruction-set processors (ASIPs) provide flexibility and they allow reaching good performance if they are well designed. One trend that gains more and more success is C-based design that uses a high level language such as C, SystemC, etc. The C-based specification is used during the partitionning phase to determine the software and hardware components of the system. Since automatic processor generators are mature now, designers have a new type of tool they can rely on during architecture design. In the hardware world, high level synthesis was and is still a hot research topic. The advances in ESL lead to commercial high-level synthesis tools such as CapatultC, Forte’s Cynthetizer, etc. The designers have more tools in their box but they have more solutions to explore, thus their use can have a reverse effect since the design time can increase instead of being reduced. Our doctoral research tackles this issue by proposing new methodologies for design space exploration of application specific architecture for loop acceleration in order to reduce the design time while reaching some targeted performances. Our thesis starts with the exploration of ASIP design. We propose a method that targets loop acceleration with highly coupled specialized-instructions executing loop operations. Loops are good candidates for acceleration when the parallelism they offer is well exploited (if they have any parallelization opportunities). Hardware components such as specialized-instructions can leverage parallelization opportunities at low level. Thus, we propose to extract loop parallelization opportunities and to execute more concurrent operations in specialized-instructions. The main contribution of this method is a new approach to specialized-instruction (SI) design based on loop acceleration where loop optimization and transformation are done in SIs directly, instead of optimizing the software code. Another contribution is the design of tightly-coupled specialized-instructions associated with loops based on a 5-pattern representation

    Techniques for Crafting Customizable MPSoCS

    Get PDF
    Ph.DDOCTOR OF PHILOSOPH

    Static resource models for code generation of embedded processors

    Get PDF
    xii+129hlm.;24c

    Advanced Applications of Rapid Prototyping Technology in Modern Engineering

    Get PDF
    Rapid prototyping (RP) technology has been widely known and appreciated due to its flexible and customized manufacturing capabilities. The widely studied RP techniques include stereolithography apparatus (SLA), selective laser sintering (SLS), three-dimensional printing (3DP), fused deposition modeling (FDM), 3D plotting, solid ground curing (SGC), multiphase jet solidification (MJS), laminated object manufacturing (LOM). Different techniques are associated with different materials and/or processing principles and thus are devoted to specific applications. RP technology has no longer been only for prototype building rather has been extended for real industrial manufacturing solutions. Today, the RP technology has contributed to almost all engineering areas that include mechanical, materials, industrial, aerospace, electrical and most recently biomedical engineering. This book aims to present the advanced development of RP technologies in various engineering areas as the solutions to the real world engineering problems

    Customising compilers for customisable processors

    Get PDF
    The automatic generation of instruction set extensions to provide application-specific acceleration for embedded processors has been a productive area of research in recent years. There have been incremental improvements in the quality of the algorithms that discover and select which instructions to add to a processor. The use of automatic algorithms, however, result in instructions which are radically different from those found in conventional, human-designed, RISC or CISC ISAs. This has resulted in a gap between the hardware’s capabilities and the compiler’s ability to exploit them. This thesis proposes and investigates the use of a high-level compiler pass that uses graph-subgraph isomorphism checking to exploit these complex instructions. Operating in a separate pass permits techniques to be applied that are uniquely suited for mapping complex instructions, but unsuitable for conventional instruction selection. The existing, mature, compiler back-end can then handle the remainder of the compilation. With this method, the high-level pass was able to use 1965 different automatically produced instructions to obtain an initial average speed-up of 1.11x over 179 benchmarks evaluated on a hardware-verified cycle-accurate simulator. This result was improved following an investigation of how the produced instructions were being used by the compiler. It was established that the models the automatic tools were using to develop instructions did not take account of how well the compiler could realistically use them. Adding additional parameters to the search heuristic to account for compiler issues increased the speed-up from 1.11x to 1.24x. An alternative approach using a re-designed hardware interface was also investigated and this achieved a speed-up of 1.26x while reducing hardware and compiler complexity. A complementary, high-level, method of exploiting dual memory banks was created to increase memory bandwidth to accommodate the increased data-processing bandwidth provided by extension instructions. Finally, the compiler was considered for use in a non-conventional role where rather than generating code it is used to apply source-level transformations prior to the generation of extension instructions and thus affect the shape of the instructions that are generated

    Efficient design-space exploration of custom instruction-set extensions

    Get PDF
    Customization of processors with instruction set extensions (ISEs) is a technique that improves performance through parallelization with a reasonable area overhead, in exchange for additional design effort. This thesis presents a collection of novel techniques that reduce the design effort and cost of generating ISEs by advancing automation and reconfigurability. In addition, these techniques maximize the perfomance gained as a function of the additional commited resources. Including ISEs into a processor design implies development at many levels. Most prior works on ISEs solve separate stages of the design: identification, selection, and implementation. However, the interations between these stages also hold important design trade-offs. In particular, this thesis addresses the lack of interaction between the hardware implementation stage and the two previous stages. Interaction with the implementation stage has been mostly limited to accurately measuring the area and timing requirements of the implementation of each ISE candidate as a separate hardware module. However, the need to independently generate a hardware datapath for each ISE limits the flexibility of the design and the performance gains. Hence, resource sharing is essential in order to create a customized unit with multi-function capabilities. Previously proposed resource-sharing techniques aggressively share resources amongst the ISEs, thus minimizing the area of the solution at any cost. However, it is shown that aggressively sharing resources leads to large ISE datapath latency. Thus, this thesis presents an original heuristic that can be parameterized in order to control the degree of resource sharing amongst a given set of ISEs, thereby permitting the exploration of the existing implementation trade-offs between instruction latency and area savings. In addition, this thesis introduces an innovative predictive model that is able to quickly expose the optimal trade-offs of this design space. Compared to an exhaustive exploration of the design space, the predictive model is shown to reduce by two orders of magnitude the number of executions of the resource-sharing algorithm that are required in order to find the optimal trade-offs. This thesis presents a technique that is the first one to combine the design spaces of ISE selection and resource sharing in ISE datapath synthesis, in order to offer the designer solutions that achieve maximum speedup and maximum resource utilization using the available area. Optimal trade-offs in the design space are found by guiding the selection process to favour ISE combinations that are likely to share resources with low speedup losses. Experimental results show that this combined approach unveils new trade-offs between speedup and area that are not identified by previous selection techniques; speedups of up to 238% over previous selection thecniques were obtained. Finally, multi-cycle ISEs can be pipelined in order to increase their throughput. However, it is shown that traditional ISE identification techniques do not allow this optimization due to control flow overhead. In order to obtain the benefits of overlapping loop executions, this thesis proposes to carefully insert loop control flow statements into the ISEs, thus allowing the ISE to control the iterations of the loop. The proposed ISEs broaden the scope of instruction-level parallelism and obtain higher speedups compared to traditional ISEs, primarily through pipelining, the exploitation of spatial parallelism, and reducing the overhead of control flow statements and branches. A detailed case study of a real application shows that the proposed method achieves 91% higher speedups than the state-of-the-art, with an area overhead of less than 8% in hardware implementation
    corecore