3 research outputs found

    Accelerating Halide on an FPGA by using CIRCT and Calyx as an intermediate step to go from a high-level and software-centric IRs down to RTL

    Get PDF
    Image processing and, more generally, array processing play an essential role in modern life: from applying filters to the images that we upload to social media to running object detection algorithms on self-driving cars. Optimizing these algorithms can be complex and often results in non-portable code. The Halide language provides a simple way to write image and array processing algorithms by separating the algorithm definition (what needs to be executed) from its execution schedule (how it is executed), delivering state-of-the-art performance that exceeds hand-tuned parallel and vectorized code. Due to the inherent parallel nature of these algorithms, FPGAs present an attractive acceleration platform. While previous work has added an RTL code generator to Halide, and utilized other heterogeneous computing languages as an intermediate step, these projects are no longer maintained. MLIR is an attractive solution, allowing the generation of code that can target multiple devices, such as parallelized and vectorized CPU code, OpenMP, and CUDA. CIRCT builds on top of MLIR to convert generic MLIR code to register transfer level (RTL) languages by using Calyx, a new intermediate language (IL) for compiling high-level programs into hardware designs. This thesis presents a novel flow that implements an MLIR code generator for Halide that generates RTL code, adding the necessary wrappers to execute that code on Xilinx FPGA devices. Additionally, it implements a Halide runtime using the Xilinx Runtime (XRT), enabling seamless execution of the generated Halide RTL kernels. While this thesis provides initial support for running Halide kernels and not all features and optimizations are supported, it also details the future work needed to improve the performance of the generated RTL kernels. The proposed flow serves as a foundation for further research and development in the field of hardware acceleration for image and array processing applications using Halide

    Optimització de Weston mitjançant atomic mode-setting

    Get PDF
    Després d’introduir els conceptes bàsics i explicar l’arquitectura dels diversos components d’un entorn gràfic de Linux, aquest treball mostra com s’han dut a terme certes optimitzacions i millores al compositor referència de Wayland: Weston. En primer lloc es realitza un programa de prova, atomictest, que mostra com utilitzar el Direct Rendering Manager de Linux des d’una perspectiva d’usuari. Seguidament, es mostra el disseny i la implementació de les diverses millores realitzades a Weston, i per últim s’avaluen aquestes i se n’extreuen les conclusions oportunes.Después de introducir los conceptos básicos y explicar la arquitectura de los diversos componentes de un entorno gráfico de Linux, este trabajo muestra cómo se han llevado a cabo ciertas optimizaciones y mejoras al compositor referencia de Wayland: Weston. En primer lugar se realiza un programa de prueba, atomictest, que muestra cómo utilizar el Direct Rendering Manager de Linux desde una perspectiva de usuario. Seguidamente, se muestra el diseño y la implementación de las diversas mejoras realizadas a Weston, y por último se evalúan estas y se extraen las conclusiones oportunas.After introducing the basics and explaining the architecture of the various components of a Linux graphic environment, this paper shows how some optimizations and improvements have been made to the Wayland’s reference compositor: Weston. First of all, a test program called atomictest is developed to show how to use the Direct Rendering Manager of Linux from a user perspective. Secondly, the design and implementation of the various improvements made to Weston are shown, and finally these are evaluated and the appropriate conclusions are extracted

    Optimització de Weston mitjançant atomic mode-setting

    No full text
    Després d’introduir els conceptes bàsics i explicar l’arquitectura dels diversos components d’un entorn gràfic de Linux, aquest treball mostra com s’han dut a terme certes optimitzacions i millores al compositor referència de Wayland: Weston. En primer lloc es realitza un programa de prova, atomictest, que mostra com utilitzar el Direct Rendering Manager de Linux des d’una perspectiva d’usuari. Seguidament, es mostra el disseny i la implementació de les diverses millores realitzades a Weston, i per últim s’avaluen aquestes i se n’extreuen les conclusions oportunes.Después de introducir los conceptos básicos y explicar la arquitectura de los diversos componentes de un entorno gráfico de Linux, este trabajo muestra cómo se han llevado a cabo ciertas optimizaciones y mejoras al compositor referencia de Wayland: Weston. En primer lugar se realiza un programa de prueba, atomictest, que muestra cómo utilizar el Direct Rendering Manager de Linux desde una perspectiva de usuario. Seguidamente, se muestra el diseño y la implementación de las diversas mejoras realizadas a Weston, y por último se evalúan estas y se extraen las conclusiones oportunas.After introducing the basics and explaining the architecture of the various components of a Linux graphic environment, this paper shows how some optimizations and improvements have been made to the Wayland’s reference compositor: Weston. First of all, a test program called atomictest is developed to show how to use the Direct Rendering Manager of Linux from a user perspective. Secondly, the design and implementation of the various improvements made to Weston are shown, and finally these are evaluated and the appropriate conclusions are extracted
    corecore