Contorno da seção

  • SSC5883 - 5
    Computação Reconfigurável

    90 h
    3 h
    3 h
    9 h
    6
    6 Semana
    H: 09:00hs – 12:00hs (Presencial)
    Sala: 3.102

    • Conteúdo do seminário com duração prevista de 50 min:

      evolução histórica do tema e seu estado da arte;

      - principais resultados alcançados e os desafios atuais;

      - dependências do mundo externo (padrões de desenvolvimento, complexidade dos problemas, tempo de resposta, custo de desenvolvimento e manutenção, avanço da tecnologia, exigências do mercado e etc..)

      - apresentação de técnicas/algoritmos mais relevantes e, sempre que possível, realização de experimentos reais;

      - apresentação de questões e posicionamento do grupo que motivem a discussão da classe;

    • Descrição do trabalho prático
      Executar em um processador softcore em FPGA (exemplo de softcore: NIOS V da Altera, MicroBlaze da Xilinx ou algum RISC-V) uma rede neural CNN para a classificação de dígitos decimais escritos a mão conforme a base de dados MNIST. O projeto deverá explorar variações de configuração do processador softcore, como a adição de instruções customizadas, a adoção ou não de FPU, tamanho, níveis e modo de operação da memória cache, uso ou não de SO, e etc.. Aplicar também formas de otimização no código fonte. Assim, encontrar um conjunto de soluções que visem maximizar throughput, latência e acurácia das inferências da rede neural. Note que esses objetivos são conflitante, o que acarreta na formação de uma fronteira de Pareto.  A rede pode ser treinada offline e a adoção de runtime é opcional (ONNX Runtime Micro ou TensorFlow Lite for Microcontrollers (TFLM)). Alternativamente, o grupo pode propor a aplicação da CNN em outro problema.

      O trabalho pode ser desenvolvido em trio, dupla ou individualmente.
  • Apresentação do Curso

    Cronograma

    Definição de trabalhos práticos  e sorteio dos seminários

    Introdução à Computação Reconfigurável (RC)

  • Linguagens, ferramentas de programação/simulação e arquiteturas avançadas


    Grupos apresentam proposta de cronograma do trabalho prático (fase 1 e fase 2)


  • Seminário 1: 

    [50 min] O uso do FPGA como acelerador de processamento de grafos e dataflow [Eduardo Sperle Honorato]

    [50 min] O papel dos FPGAs em deep learning [Leonardo Zaniboni Silva]

    Acompanhamento do trabalho prático


  • Seminário 2: 

    [50 min] Ferramentas HLS (High Level Synthesis): objetivo, princípio de funcionamento e exemplos de aplicação [Gabriel Pinho Nogueira]

    [50 min] Arquiteturas avançadas de FPGA [Bruno Pereira de Oliveira]

    Acompanhamento do trabalho prático


  • Seminário 3: 

    [50 min] Processadores de redes neurais, incluindo softcores em FPGA [Melissa Motoki Nogueira]

    Fechamento do curso com a apresentação dos trabalhos práticos

    • Favor incluir um arquivo pdf com o nome e numero USP dos participantes e uma breve descrição do que foi desenvolvido e os resultados obtidos. Incluir nesse pdf um link para o git com os fontes e lá no git incluir as instruções descrevendo o projeto e as instruções para uso do mesmo.