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, sequencial computations must be replaced by their parallel counterparts for the hardware potential to be achieved. Programmers typically develop and validate sequential applications using high-level languages such as MATLAB and later manually migrate to lower-level parallel languages such as CUDA and OpenCL. This process is time consuming and error prone, so automatic source-to-source approaches are highly desirable, even when there is a considerable slow-down compared to the manual porting process. We present a tool capable of processing MATLAB and output the equivalent OpenCL and C wrapper code, based on an existing framework called MATISSE, which is already capable of generating C code from MATLAB source code. OpenCL generation is not entirely automated since it relies on the manual insertion of directives to guide the compilation. Future work could reduce this effort, since some directives are redundant and could be inferred by the compiler and others could be automatically injected into the 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 para que o potencial do hardware seja atingido. Os programadores tipicamente desenvolvem e validam aplicações sequenciais em linguagens de alto nível, como o MATLAB, que posteriormente traduzem para linguagens 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 que abordagens automáticas são altamente desejáveis, mesmo que estejam associadas a perdas significativas de desempenho comparativamente ao processo de tradução manual. Apresentamos uma ferramenta capaz de processar MATLAB e gerar o código OpenCL e 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 em diretivas, que são manualmente inseridas pelo programador, para guiar a compilação. Trabalhos futuros podem reduzir este esforço, visto que algumas diretivas são redundantes e poderiam ser inferidas pelo compilador e outras poderiam ser injetadas automaticamente no código usando linguagens e ferramentas orientadas a 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 |
| DOI: | 10.34626/8y9r-rs33 |
| TID identifier: | 201311119 |
| URI: | https://hdl.handle.net/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 | Size | Format | |
|---|---|---|---|---|
| 31640.pdf | Optimização e Geração de código OpenCL para computação embutida | 1.08 MB | Adobe PDF | ![]() View/Open |
This item is licensed under a Creative Commons License
