6 research outputs found

    A Methodology approached for design a hundred meter using Alliance CAD

    Get PDF
    En estas últimas décadas la tecnología ha avanzado exponencialmente, permitiendo que casi cualquier persona con las herramientas y conocimiento correctos pueda hacer lo que hace pocos años era la tarea de un grupo de especialistas dotados con potentes estaciones de trabajo y herramientas de software muy costosas. Una muestra de esto, es que hoy en día se cuenta con software libre muy elaborado que ha permitido hacer uso de la metodología de diseño para implementar sistemas electrónicos digitales, ya sea como tema de investigación formal o como simple instrumento para llevar a cabo un proyecto académico. En este artículo se explica la metodología seguida para diseñar una Contador de Centenas, haciendo uso de un completo conjunto de herramientas que cubren muchas etapas del proceso de diseño de un circuito VLSI, incorporados dentro de una herramienta de desarrollo electrónico llamado Alliance CAD, desarrollado en el Laboratorio LIP6 de la Universidad Pierre y Marie Curie de París.Abstract: Nowadays, the rapidly increase of technologies and free- specialized software have led many people with skills and good knowledge to do research and development projects that were only possible if they had powerful workstations and expensive specialized software. Furthermore, the constant use of free- specialized software, which is based on standardized rules that can be use not only for formal investigation but for academic purposes as well, has allow reducing cost for designing and synthesizing digital circuits. In this paper, we show the methodology to design a digital counter, using Alliance CAD, which is a complete free-set tools developed by LIP6 at the University Pierre and Marie Curie of Paris, and allow to design and synthesize digital VLSI circuits

    Impact analysis of conditional and loop statements for the NVIDIA G80 architecture

    Full text link
    ResumenEn este artículo se proponen y evalúan dos nuevas técnicas de optimi- zación a nivel de instrucciones enfocadas a hacer un mejor uso de los recursos de tipo hardware en la arquitectura NVDIA G80. Estas técnicas llamadas loop splitting and branch splitting incrementan de forma contro- lada la redundancia de código, lo cual puede ser considerado como “no óptimo” en una arquitectura convencional como la CPU; sin embargo, en la arquitectura multiprocesador NVIDIA G80, dicha redundancia se ve refejada en el incremento de la ocupación de sus multiprocesadores y en un aumento del paralelismo de los programas ejecutados en este tipo de arquitectura. Los resultados obtenidos a partir de los bancos de pruebas aleatorios y no aleatorios realizados en esta investigación muestran que estas técnicas incrementan la ocupación y el paralelismo de la arquitec- tura NVIDIA G80 comparado con la ejecución de la versión non-splitting del mismo algoritmo.AbstractIn this paper, we propose two novel techniques to transform control state- ments so they can be executed effciently on the NVIDIA G80 architecture. Our techniques called loop splitting and branch splitting smartly increase code redundancy, which might be deemed as “de-optimization” for CPU; but for a GPU framework these techniques improve the occupancy of a program on the GPU device and therefore improve its performance. We demonstrate our optimizations on an artifcial benchmark and the results show that these techniques are very effcient and, depending on the problem layout, can lead to an increase in occupancy and a drastic improvement in performance compared to non-split version of the same algorithm

    Mejoramiento del tiempo de ejecución de un núcleo Lattice-Boltzmann utilizando la arquitectura NVIDIA G80

    Full text link
    Las sentencias de control utilizadas en el entorno de programación de las tarjetas gráficas de video (GPUs), tales como sentencias condicionales e iterativas, presentan problemas de concurrencia al momentos de ser ejecutadas debido a que tienden a minimizar el nivel de ocupación, el cual es una medida que nos permite establecer el número de procesos que se están ejecutando de forma concurrente en las GPUs. A diferencia de las unidades de procesamiento de datos tradicionales presentes en un microprocesador de propósito general, una GPU no puede ceder el control de flujo de datos a la CPU debido a que actualmente no existe un mecanismo que permita dicho control de flujo sin comprometer la integridad de los datos procesados en dichas arquitecturas.En este artículo se proponen y evalúan dos nuevas técnicas de optimización a nivel de instrucciones enfocadas a hacer un mejor uso de los recursos de tipo hardware de las GPUs, en la arquitectura NV-DIA G80. Estás técnicas llamadas Loop splitting and branch splitting incrementan de forma controlada la redundancia de código, lo cual puede ser considerado como "no óptimo" en una arquitectura convencional como la CPU; sin embargo en la arquitectura multiprocesador NVIDIA G80 dicha redundancia se ve reflejada en el incremento de la ocupación de sus multiprocesadores y en un aumento del paralelismo de los programas ejecutados en este tipo de arquitectura. Los resultados obtenidos a partir del banco de pruebas, basados en el algoritmo del método de Lattice Boltzmann (LBM), muestra que estas técnicas incrementan la ocupación y el paralelismo de la arquitectura NVIDIA G80 comparado con la ejecución de la versión non-splitting del mismo algoritmo.Control statements such as loops and branches poseserious challenges for their efficient utilization onGraphic Processing Units (GPUs) as those controlstatements will lead to a serialization of threads andconsequently ruin the occupancy and parallelism on GPUs. Unlike traditional central processingunits (CPUs), the GPU cannot leave the controlstatements to the CPU because fine-grain statementscheduling between GPU and CPU cannot begranted, as the GPU acts as a co-processing device.This paper analyzes the impact for using two leveltransformation techniques, namely loop/branchsplitting, which improves the register utilizationto manage the control statements on GPUs, inorder to implement the Lattice Boltzmann Method(LBM) benchmark application. Results executed inthe NVIDIA G80 architecture illustrate that thesetechniques are very efficient in term of parallelismand can lead to an increase in occupancy and adrastic improvement in performance, compared tonon-split version of the programs

    Mejoramiento del tiempo de ejecución de un núcleo Lattice-Boltzmann utilizando la arquitectura NVIDIA G80

    Full text link
    Control statements such as loops and branches poseserious challenges for their efficient utilization onGraphic Processing Units (GPUs) as those controlstatements will lead to a serialization of threads andconsequently ruin the occupancy and parallelism on GPUs. Unlike traditional central processingunits (CPUs), the GPU cannot leave the controlstatements to the CPU because fine-grain statementscheduling between GPU and CPU cannot begranted, as the GPU acts as a co-processing device.This paper analyzes the impact for using two leveltransformation techniques, namely loop/branchsplitting, which improves the register utilizationto manage the control statements on GPUs, inorder to implement the Lattice Boltzmann Method(LBM) benchmark application. Results executed inthe NVIDIA G80 architecture illustrate that thesetechniques are very efficient in term of parallelismand can lead to an increase in occupancy and adrastic improvement in performance, compared tonon-split version of the programs.Las sentencias de control utilizadas en el entorno de programación de las tarjetas gráficas de video (GPUs), tales como sentencias condicionales e iterativas, presentan problemas de concurrencia al momentos de ser ejecutadas debido a que tienden a minimizar el nivel de ocupación, el cual es una medida que nos permite establecer el número de procesos que se están ejecutando de forma concurrente en las GPUs. A diferencia de las unidades de procesamiento de datos tradicionales presentes en un microprocesador de propósito general, una GPU no puede ceder el control de flujo de datos a la CPU debido a que actualmente no existe un mecanismo que permita dicho control de flujo sin comprometer la integridad de los datos procesados en dichas arquitecturas.En este artículo se proponen y evalúan dos nuevas técnicas de optimización a nivel de instrucciones enfocadas a hacer un mejor uso de los recursos de tipo hardware de las GPUs, en la arquitectura NV-DIA G80. Estás técnicas llamadas Loop splitting and branch splitting incrementan de forma controlada la redundancia de código, lo cual puede ser considerado como "no óptimo" en una arquitectura convencional como la CPU; sin embargo en la arquitectura multiprocesador NVIDIA G80 dicha redundancia se ve reflejada en el incremento de la ocupación de sus multiprocesadores y en un aumento del paralelismo de los programas ejecutados en este tipo de arquitectura. Los resultados obtenidos a partir del banco de pruebas, basados en el algoritmo del método de Lattice Boltzmann (LBM), muestra que estas técnicas incrementan la ocupación y el paralelismo de la arquitectura NVIDIA G80 comparado con la ejecución de la versión non-splitting del mismo algoritmo

    Modular Neural Tile Architecture for Compact Embedded Hardware Spiking Neural Network

    Get PDF
    Biologically-inspired packet switched network on chip (NoC) based hardware spiking neural network (SNN) architectures have been proposed as an embedded computing platform for classification, estimation and control applications. Storage of large synaptic connectivity (SNN topology) information in SNNs require large distributed on-chip memory, which poses serious challenges for compact hardware implementation of such architectures. Based on the structured neural organisation observed in human brain, a modular neural networks (MNN) design strategy partitions complex application tasks into smaller subtasks executing on distinct neural network modules, and integrates intermediate outputs in higher level functions. This paper proposes a hardware modular neural tile (MNT) architecture that reduces the SNN topology memory requirement of NoC-based hardware SNNs by using a combination of fixed and configurable synaptic connections. The proposed MNT contains a 16:16 fully-connected feed-forward SNN structure and integrates in a mesh topology NoC communication infrastructure. The SNN topology memory requirement is 50 % of the monolithic NoC-based hardware SNN implementation. The paper also presents a lookup table based SNN topology memory allocation technique, which further increases the memory utilisation efficiency. Overall the area requirement of the architecture is reduced by an average of 66 % for practical SNN application topologies. The paper presents micro-architecture details of the proposed MNT and digital neuron circuit. The proposed architecture has been validated on a Xilinx Virtex-6 FPGA and synthesised using 65 nm low-power CMOS technology. The evolvable capability of the proposed MNT and its suitability for executing subtasks within a MNN execution architecture is demonstrated by successfully evolving benchmark SNN application tasks representing classification and non-linear control functions. The paper addresses hardware modular SNN design and implementation challenges and contributes to the development of a compact hardware modular SNN architecture suitable for embedded application
    corecore