Busca avançada
Ano de início
Entree

Adicionando suporte nativo de escalonamento de tarefas a um processador Rocket chip RISC-V multi-core

Processo: 18/00687-0
Linha de fomento:Bolsas no Exterior - Estágio de Pesquisa - Mestrado
Vigência (Início): 28 de fevereiro de 2018
Vigência (Término): 27 de junho de 2018
Área do conhecimento:Ciências Exatas e da Terra - Ciência da Computação - Sistemas de Computação
Pesquisador responsável:Alfredo Goldman vel Lejbman
Beneficiário:Lucas Henrique Morais
Supervisor no Exterior: Rosa Maria Badia Sala
Instituição-sede: Instituto de Matemática e Estatística (IME). Universidade de São Paulo (USP). São Paulo , SP, Brasil
Local de pesquisa : Barcelona Supercomputing Center (BSC), Espanha  
Vinculado à bolsa:17/02682-2 - Projetando uma arquitetura manycore com suporte nativo a paralelismo baseado em tarefas, BP.MS
Assunto(s):Circuitos FPGA   Arquitetura e organização de computadores

Resumo

Task Scheduling é uma técnica genérica de extração de paralelismo de granularidade arbitrária aplicável sobre programas de vários domínios, com mínimo impacto sobre legibilidade de código, baseada na inferência automática de dependências de dados entre tasks. O desempenho de aplicações paralelas baseadas nesse paradigma depende da velocidade com a qual o runtime de Task Scheduling que lhe dá suporte é capaz de detectar tais dependências, fato que é ainda mais crítico para aplicações envolvendo tasks de granularidade fina, já que nesse cenário o overhead de escalonamento não é amortizado por períodos significativamente maiores de computação útil. Sendo assim, recentemente, diversos grupos têm desenvolvido Sistemas de Suporte a Task Scheduling acelerados por FPGAs, os quais são capazes de fazer offload das operações de inferência de dependências para um acelerador em FPGA de modo a melhorar o seu desempenho ao lidar com tasks de granularidade fina.Por outro lado, ainda que esses sistemas acelerados por FPGA apresentem ganhos substanciais com relação às alternativas baseadas puramente em software, o desempenho dessas soluções é prejudicado por gargalos de comunicação entre a CPU e a FPGA, os quais limitam a capacidade desses sistemas de lidar com cenários envolvendo grande número de núcleos ou tasks muito finas. Motivados por isso, propomos então a implementação de um Sistema de Suporte Nativo a Task Scheduling - isto é, um processador com suporte arquitetural nativo a Task Scheduling - com o objetivo de reduzir consideravelmente tais overheads de comunicação.Mais especificamente, propomos a integração da lógica em HW do Picos++, um acelerador de Task Scheduling desenvolvido pelo Barcelona Supercomputing Center (BSC), ao Rocket Chip, uma implementação multi-core de código livre do RISC-V desenvolvida pela Universidade da Califórnia, Berkeley. O sistema resultante conterá em sua ISA as instruções necessárias para que aplicações baseadas em tasks possam interagir diretamente com essa lógica de escalonamento, removendo os overheads associados ao uso de runtimes intermediários além de eliminar toda a latência de comunicação própria da comunicação FPGA-CPU.