Enabling OpenMP task parallelism on Multi-FPGAs [recurso eletrônico] = Habilitando o paralelismo de tarefas do OpenMP em Multi-FPGAs
Ramon Santos Nepomuceno
TESE
Inglês
T/UNICAMP N352e
[Habilitando o paralelismo de tarefas do OpenMP em Multi-FPGAs]
Campinas, SP : [s.n.], 2021.
1 recurso online (86 p.) : il., digital, arquivo PDF.
Orientador: Guido Costa Souza de Araújo
Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação
Resumo: Os aceleradores de hardware baseados em FPGA têm recebido uma crescente atenção nos últimos anos. Um dos principais motivos para isso é que seus recursos reconfiguráveis facilitam a adaptação do acelerador a diferentes tipos de cargas de trabalho. Em alguns casos, os aceleradores baseados em...
Ver mais
Resumo: Os aceleradores de hardware baseados em FPGA têm recebido uma crescente atenção nos últimos anos. Um dos principais motivos para isso é que seus recursos reconfiguráveis facilitam a adaptação do acelerador a diferentes tipos de cargas de trabalho. Em alguns casos, os aceleradores baseados em FPGA fornecem maior desempenho computacional e eficiência energética. Foi relatado que o offload para FPGA alcança um melhor desempenho quando comparado GPUs e CPUs para algumas aplicações, como Fast Fourier Transform. Esse desempenho pode ser ainda maior se conectarmos vários FPGAs criando um cluster Multi-FPGA. No entanto, programar esses sistemas heterogêneos é um empreendimento desafiador que ainda requer esforços de pesquisa e desenvolvimento para torná-lo realmente simples. O modelo de programação baseado em tarefas OpenMP é uma boa escolha para programar sistemas Multi-FPGA Heterogêneos. Isso advém da capacidade deste modelo de expor um grau mais alto de paralelismo que combina: (a)offload de computação para aceleradores; (b) dependências explícitas de dados; e (c) definição das regiões de código para cada dispositivo específico. Com base nisso, o trabalho desta tese estende a infraestrutura LLVM/OpenMP existente, bem como propõe uma plataforma de hardware para ajudar o programador a expressar facilmente o offload e o uso de IP-cores disponíveis em um código binário reconfigurável pré-existente (bitstream). Para isto, foi utilizada uma metodologia de co-design, que implementa a arquitetura de hardware e software em paralelo. No lado do software, duas modificações principais foram feitas na implementação do OpenMP: (a) construir um plugin VC709 na biblioteca libomptarget; e(b) modificar o algoritmo de tempo de execução que gerencia o grafo de tarefas. No lado do hardware, foi criada uma infraestrutura baseada no Target Reference Design(TRD)da placa Xilinx VC709. As principais contribuições desta tese são: (a) um novo plugin Clang/LLVM que entende placas FPGA como dispositivos OpenMP, e usa a diretiva OpenMP declare variant para especificar IPs-cores de hardware; (b) Um mecanismo baseado na dependência de tarefa OpenMP e no modelo de transferência de computação que permite a comunicação transparente de IPs-cores em uma arquitetura Multi-FPGA;(c) Uma arquitetura em hardware, baseada no Target Reference Design da placa VC709, capaz de executar tarefas OpenMP utilizando preexistentes IP-cores; (d) Um modelo de programação baseado em paralelismo de tarefas OpenMP, que torna simples mover dados entre FPGAs, CPUs ou outros dispositivos de aceleração (por exemplo, GPUs), e que permite ao programador usar um único modelo de programação para executar sua aplicação em uma verdadeira arquitetura heterogênea. Resultados experimentais para um conjunto de aplicações de stencil em OpenMP que executaram em uma plataforma Multi-FPGA com 6 placas Xilinx VC709 interconectadas através de links de fibra óptica, mostraram acelerações quase lineares conforme o número de FPGAs e IP-cores por FPGA aumenta
Ver menos
Abstract: FPGA-based hardware accelerators have received increasing attention in recent years. One of the main reasons for this comes from its reconfiguration capabilities which facilitate the adaptation of the accelerator to distinct types of workloads. In some cases, FPGA-based accelerators...
Ver mais
Abstract: FPGA-based hardware accelerators have received increasing attention in recent years. One of the main reasons for this comes from its reconfiguration capabilities which facilitate the adaptation of the accelerator to distinct types of workloads. In some cases, FPGA-based accelerators provide higher computational performance and energy efficiency. It has been reported that offloading to FPGA achieves better performance when compared with aGPU and CPU for some applications such as Fast Fourier Transform. This performance can be even higher if one connect multiple FPGAs creating a Multi-FPGA cluster. However, programming such heterogeneous systems is a challenging endeavor and still requires research and development efforts to make it really productive. The OpenMP task-based programming model is a good choice for programming such Heterogeneous Multi-FPGAsystems. This is indicated by its ability to expose a higher degree of parallelism that combines: (a) computation offloading to accelerators; (b) explicit data dependencies; and (c)definition of the regions of code for each specific device. Based on that, the work of thisthesis extends the existing LLVM/OpenMP infrastructure as well as a hardware platform to help the programmer easily express the offloading and use of IP-cores available in an already existing reconfigurable binary code (bitstream). A codesign methodology was used, which implements both the hardware and software architectures in parallel. On the software side, three main modifications to the OpenMP implementation were made: (a)Insert offload information into the construction of the task; (b) a modification in the taskgraph management mechanism; and (c) the design of the VC709 plugin in the libomptarget library. On the hardware side, an infrastructure based on the Xilinx VC709 boardTarget Reference Design (TRD) was created. The main contributions of this thesis are:(a) a new Clang/LLVM plugin that understands FPGA boards as OpenMP devices, and uses OpenMPdeclare variant directive to specify hardware IPs-cores; (b) A mechanism based on the OpenMP task dependence and computation offloading model that enables transparent communication of IP-cores in a Multi-FPGA architecture; (c) A hardware architecture, based on the Target Reference Design of the VC709 board, capable of executing OpenMP tasks using pre-existing IP-cores; and (d) A programming model based on OpenMP task parallelism, which makes it simple to move data among FPGAs, CPUsor other acceleration devices (e.g. GPUs), and that allows the programmer to use a single programming model to run its application on a truly heterogeneous architecture. Experimental results for a set of OpenMP stencil applications running on a Multi-FPGAplatform consisting of 6 Xilinx VC709 boards interconnected through fiber-optic links, have shown close to linear speedups as the number of FPGAs and IP-cores per FPGAincrease
Ver menos
Requisitos do sistema: Software para leitura de arquivo em PDF
Araújo, Guido Costa Souza de, 1962-
Orientador
Bonato, Vanderlei
Avaliador
Moreano, Nahri Balesdent
Avaliador
Ferreira, Ricardo dos Santos
Avaliador
Pannain, Ricardo, 1958-
Avaliador
Enabling OpenMP task parallelism on Multi-FPGAs [recurso eletrônico] = Habilitando o paralelismo de tarefas do OpenMP em Multi-FPGAs
Ramon Santos Nepomuceno
Enabling OpenMP task parallelism on Multi-FPGAs [recurso eletrônico] = Habilitando o paralelismo de tarefas do OpenMP em Multi-FPGAs
Ramon Santos Nepomuceno