Please use this identifier to cite or link to this item: https://hdl.handle.net/10216/75062
Author(s): Luis Alexandre Cubal dos Reis
Title: Optimização e Geração de código OpenCL para computação embutida
Issue Date: 2014-07-17
Abstract: High-performance computing is increasingly multi-core. As such, sequencialcomputations must be replaced by their parallel counterparts for the hardwarepotential to be achieved.Programmers typically develop and validate sequential applications usinghigh-level languages such as MATLAB and later manually migrate to lower-levelparallel languages such as CUDA and OpenCL.This process is time consuming and error prone, so automatic source-to-sourceapproaches are highly desirable, even when there is a considerable slow-downcompared to the manual porting process.We present a tool capable of processing MATLAB and output the equivalent OpenCLand C wrapper code, based on an existing framework called MATISSE, which isalready capable of generating C code from MATLAB source code.OpenCL generation is not entirely automated since it relies on the manualinsertion of directives to guide the compilation.Future work could reduce this effort, since some directives are redundant andcould be inferred by the compiler and others could be automatically injected intothe code by Aspect-Oriented languages and tools.
Description: Computação de alto desempenho é cada vez mais multi-núcleo. Como tal,computações sequenciais têm de ser substituidas pelo equivalente paralelo paraque o potencial do hardware seja atingido.Os programadores tipicamente desenvolvem e validam aplicações sequenciais emlinguagens de alto nível, como o MATLAB, que posteriormente traduzem paralinguagens paralelas de baixo nível, como o CUDA e o OpenCL.Este processo requer tempo e esforço e há o risco de introduzir erros, pelo queabordagens automáticas são altamente desejáveis, mesmo que estejam associadasa perdas significativas de desempenho comparativamente ao processo de traduçãomanual.Apresentamos uma ferramenta capaz de processar MATLAB e gerar o código OpenCLe C equivalente, baseada num projeto já existente chamado MATISSE que já écapaz de gerar código C sequencial a partir de código-fonte MATLAB.A geração de OpenCL não é totalmente automatizada visto que é baseada emdiretivas, que são manualmente inseridas pelo programador, para guiar acompilação.Trabalhos futuros podem reduzir este esforço, visto que algumas diretivas sãoredundantes e poderiam ser inferidas pelo compilador e outras poderiam serinjetadas automaticamente no código usando linguagens e ferramentas orientadasa aspetos.
Subject: Engenharia electrotécnica, electrónica e informática
Electrical engineering, Electronic engineering, Information engineering
Scientific areas: Ciências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática
Engineering and technology::Electrical engineering, Electronic engineering, Information engineering
TID identifier: 201311119
URI: https://repositorio-aberto.up.pt/handle/10216/75062
Document Type: Dissertação
Rights: openAccess
License: https://creativecommons.org/licenses/by-nc/4.0/
Appears in Collections:FEUP - Dissertação

Files in This Item:
File Description SizeFormat 
31640.pdfOptimização e Geração de código OpenCL para computação embutida1.08 MBAdobe PDFThumbnail
View/Open


This item is licensed under a Creative Commons License Creative Commons