User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
start [2022/01/13 12:55]
127.0.0.1 external edit
start [2022/01/13 17:41]
jbispo
Line 1: Line 1:
-====== Tribble Future Work & Loose Ideas ======+====== SPeCS Wiki ====== 
 + 
 +Wiki for gathering ideas and information regarding research work of the SPeCS research group. 
 + 
 +[[ideas|Ideas Playground]] 
 + 
  
-  - Modularizar o Tribble para permitir investigação isolada nos seguintes campos: 
-    * Detecção de hotspots no código. Quer em termos de tempo, quer em termos de energia. 
-    * Análise desse mesmo código para caracterização da sua execução nos diferentes dispositivos disponíveis. 
-    * Criação/inserção de schedulers baseados nas informações recolhidas. 
-    * Extracção dos kernels do resto do código de modo a que sejam compatíveis com as ferramentas que os compilam para os diferentes dispositívos (O Vitis é particularmente picuínhas) 
-    * Inserção de todo o código de escolha (main feature do Tribble de momento) 
-  - Adicionar ao Clava a capacidade de baixar o nível de análise para LLVM-IR e depois fazer alterações ao source-code baseadas em informação recolhida nessas passagens de análise. 
-  - O mesmo para MLIR. Consegue-se aproveitar o facto de esta tecnologia estar agora a ganhar tracção e haver muita investigação na área. Uma ferramenta capaz de facilitar análise em MLIR e modificações do mesmo era algo interessante. Diria até que se poderia fazer todo um novo parser dedicado a MLIR (até porque não é só C que pode ser compilado para isto) mas aí seria necesário rever a maneira como os parsers funcionam e arranjar forma de eles trabalharem melhor em conjunto. Também já propuz uma coisa destas no quadro. Não sei se chegou a ser guardada uma fotografia. 
-  - Expandir o HLSAnalysis do Tiago Santos adicionando feedback dos relatórios do Vitis e tomando decisões informadas sabendo o tamanho da FPGA. Deveria também reportar informação sobre array partitionings pois isto é necessário para criação de código OpenCL. 
-  - Pegar na compilação para LLVM-IR e fazer as optimizações a esse nível para FPGAs.  
-    * A Xilinx colocou o frontend do seu compilador HLS (v++) open-source e abriu a plataforma a plugins através do cmake. 
-    * Com o Clava poderia-se pegar num kernel, fazer a análise ao nível da LLVM-IR, modificar essa IR e passá-la directamente para o v++ (Vitis). Ou seja, abre a porta a investigação em optimização de kernels para aceleradores. 
-  - Usar [[https://onnx.ai/|ONNX]] para optimizar execução de kernels para FPGAs e comparar o performance com geração por HLS. 
-    * ONNX é o formato standard para portabilidade de modelos de ML entre frameworks. No fundo, é um formato para descrever dataflow graphs. 
-    * "ONNX is an open format built to represent machine learning models." 
-    * "Recent Xilinx and Intel tools support the synthesis of ONNX models to heavily optimised IP blocks. Our Hoeffding Tree implementation is exportable to the SciKit Learn format. From there, the skl2onnx Python package can be used to convert it to the ONNX format. Comparisons can be made between the inference performance of our HLS-generated models to the ones from ONNX." 
-    *  
-  - Transformar um programa numa imagem e aplicar algoritmos tried-and-true ML algorithms à imagem que resulta para ver se é capaz de encontrar padrões. 
-    * Uma vez li uma notícia de um artigo qualquer que aplicava o mesmo princípio mas a outro campo de investigação. Transformar dados numa imagem e depois aplicar algoritmos maduros de ML para analisar esses dados. Já se fizeram algumas experiências curtas com o output da ferramenta de Binary Traces do lab. 
  
 ====== LARA/Clava ====== ====== LARA/Clava ======
start.txt · Last modified: 2022/11/14 15:39 by jbispo