top of page

Circuitos Programáveis em FPGA​

Responsável: Prof. Dr. Tiago de Oliveira, ICT UNIFESP

 

Os dispositivos lógicos programáveis (PLDs) estão cada vez mais presentes no dia-a-dia das empresas e dos projetistas das áreas de computação, eletrônica, automação e afins, sendo o FPGA um de seus principais representantes. Esses componentes estão inseridos no âmbito dos circuitos digitais, que ao contrário da lógica tradicional, não fazem uso de funções predefinidas pelo fabricante, mas possibilitam ao projetista configurar as funções desejadas conforme a necessidade do projeto, a partir de uma linguagem de descrição de hardware (Verilog). Um outra maneira mais simples de configurar os FPGAs é através do uso de modelos representados por diagramas em blocos que representam os circuitos digitais projetados.

Os FPGAs são dispositivos extremamente importantes nos dias atuais que podem ser empregados em diferentes finalidade, tais como: 1) implementar filtros digitais complexos de alta ordem e com isto separar o que é sinal e ruído em uma transmissão de telecomunicações; 2) implementar a lógica de acionamento de um conjunto de motores com o intuito controlar os movimentos de um robô com vários graus de liberdade; 3) implementar técnicas de modulação digital de sinais para transmissão de dados na ordem de megahertz; 4) Implementar técnica de aprendizagem de máquina para atuar na detecção de característica em imagens de vídeo. Pode-se afirmar que não há limites para a aplicação de FPGAs quando se tem conhecimento sobre suas características e suas formas de programação.

O objetivo deste minicurso é chamar a atenção dos alunos do ensino técnico e de graduação do ICT/Unifesp e de outras instituições, e despertar o interesse para uma tecnologia presente e já em utilização nas principais empresas de desenvolvimento eletrônico do mundo. Mais especificamente, apresentar o potencial desta tecnologia, suas ferramentas de desenvolvimento e técnicas básicas de descrição de hardware para sistemas digitais. O aluno que participar do curso terá o fundamento necessário para prosseguir seus estudos de forma autônoma e aprofundar-se no assunto, se assim desejar.

Como Programar Aplicações de Alto Desempenho com Produtividade

Responsáveis: Prof. Dr. Álvaro Luiz Fazenda e Profª. Dra. Denise Stringhini, ICT UNIFESP

​

O desenvolvimento de aplicações científicas que se utilizam de recursos de computação de alto desempenho historicamente é considerado complexo e especializado. A princípio, o programador deve conhecer as características do problema de forma a realizar sua modelagem computacional. Considerando o uso de um hardware paralelo, ele ainda deve conhecer suas características arquiteturais, assim como paradigmas, linguagens paralelas e possíveis frameworks a serem empregados. O curso aqui proposto apresentará os princípios básicos e intermediários da programação paralela baseada em diretivas, aplicáveis a problemas comumente encontrados em aplicações científicas, tais como modelagem numérica e inteligência computacional, por exemplo. Serão apresentadas técnicas de programação usando OpenMP para computadores multicore e OpenACC para máquinas equipadas com aceleradores do tipo GPU.

Introdução ao Aprendizado de Máquina em Python

Responsável: Prof. Dr. Luis Augusto Martins Pereira, ICT UNIFESP

​

Esse minicurso tem a seguinte descrição: Neste minicurso aprenderemos a aplicar técnicas de Aprendizado de Máquina em problemas reais utilizando a linguagem Python, uma das mais populares em ciências de dados. O minicurso será dividido em duas partes. Na primeira, veremos alguns conceitos teóricos de modelos de Aprendizado de Máquina. Na segunda parte, aplicaremos esses conceitos para resolver alguns problemas reais utilizando uma das mais populares bibliotecas de aprendizado de máquina, a scikit-learn. Para este minicurso, é  necessário conhecimentos básicos em Python e Linux.

Minicurso de programação Cython - Performance Pythonizada

Tutor: Marcos Paulo Bispo Magueta

​

Analisar a viabilidade de implementação de códigos em linguagens de programação compiladas com Python é uma tarefa factível se complementações de código forem estabelecidas. No entanto, a grande maioria das implementações tende a não colaborar com a filosofia do Python. A proposta do minicurso é demonstrar um modelo de programação em múltiplas camadas de nível de programação, hibridizando elementos de programação C e sintaxe do Python, de forma a ganhar em performance e prover uma comunicação facilitada entre os agentes de processamento. É uma oportunidade de aprender a programar soluções em tempos de execução viável, utilizando bibliotecas como OpenMP. O minicurso será composto por 3 horas de programação intensiva, sendo a primeira hora de apresentação dos conceitos do Cython, a segunda hora sobre a ligação e utilização de bibliotecas e por fim, exercícios e exemplos.

Instituto de Ciência e Tecnologia 
 Universidade Federal de São Paulo - UNIFESP

 Campus Parque Tecnológico
 Av. Cesare Mansueto Giulio Lattes, 1201

 São José dos Campos - SP

​

  Contato: 

 Prof. Sérgio Barros (sergio.ronaldo@unifesp.br)

 Profa Daniela Musa (musa@unifesp.br)

bottom of page