This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
start [2022/01/13 11:55] 127.0.0.1 external edit |
start [2022/11/14 14:39] (current) jbispo |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| + | |||
| + | Wiki for gathering ideas and documentation regarding research work of the SPeCS research group. | ||
| + | |||
| + | ===== Guides ===== | ||
| + | |||
| + | [[doc: | ||
| + | |||
| + | ===== Documentation ===== | ||
| + | |||
| + | [[doc: | ||
| + | |||
| + | [[doc: | ||
| + | |||
| + | [[doc: | ||
| + | ===== Members-Only ===== | ||
| + | |||
| + | [[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/ | ||
| - | * 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 é 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." | ||
| - | * " | ||
| - | * | ||
| - | - 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 ====== | ||
| - | - Language Server para se conseguir usar LARA fora do GUI do Clava | ||
| - | * https:// | ||
| - | - Extensão para vscode | ||
| - | * Lança um processo do Clava em modo de servidor e sempre que se quer executar algo usa-se esse servidor. | ||
| - | * Integração LSP | ||
| - | * Syntax highlight | ||
| - | * Mouse-over sobre uma função indica o seu protótipo (agora não é possível porque os módulos do Clava estão em Java Resources e não em ficheiros analisáveis pelas ferramentas de desenvolvimento de código) | ||
| - | * Muitas destas features tornar-se-ão obsoletas se a [[https:// | ||
| - | * Adicionalmente não se consegue usar Typescript para desenvolver para LARA/Clava exactamente porque o compilador para JS não consegue encontrar muitas partes de código e saber quais os seus tipos. | ||
| - | - Expandir as capacidades de criação de extensões pela comunidade para o Clava. | ||
| - | * O principal entrave neste momento é que não é possível adiconar configurações adicionais ao Clava. | ||
| - | * Lembro-me de desenhar e definir no quadro um formato standard para permitir às pessoas acrescentarem campos de opções ao ficheiro ClavaOptions só para essa feature num ficheiro JSON. | ||
| - | * Uma das coisas que pode permitir é exactamente o ponto acima na secção do Tribble sobre LLVM-IR. Passar o comando de compilação, | ||
| - | * Dá bastante jeito também para teses porque permite aos estudantes adicionarem features facilmente sem ter de pedir ao João que mude o source-code do Clava para todos até porque as modificações não interessariam a toda a gente. | ||
| - | - Gestor de versões do Clava e revamp da maneira de como a ferramenta é actualizada (e revertida) para permitir melhro controlo do código que se está a correr. | ||