Arquiteturas Modernas de Computação

Objetivo:

Aprender os principais componentes que compõem as arquiteturas computacionais modernas e como tais componentes podem ser utilizados para otimizar o desempenho de aplicações. O aluno aprenderá também como são estruturados aceleradores GPU, que são os recursos mais utilizados atualmente para prover suporte a execução de aplicações de aprendizado de máquina. Por último o aluno aprenderá como utilizar ambientes de nuvem computacional, com atividades práticas de utilização dos principais provedores de ambiente de nuvem, tais como, AWS, Google e IBM.

Tópicos:

  • Arquitetura Multicore
    • Recursos de Vetorização
    • Sistema Hierárquico de Memória
    • Recursos de Otimizações do Compilador
    • Vetorização Automática
  • GPUs:
    • Organização de núcleos da arquitetura GPU
    • Modelo de memória GPU
    • Modelo de execução SIMT
    • Sincronização
    • Paralelismo de dados
    • Processamento de Streams
    • Programação usando aceleradores
  • Ambientes de nuvem computacional
    • Introdução ao conceito de nuvem computacional
    • Uso de nuvens comerciais para Machine Learning (AWS, Google Cloud, IBM Cloud)

Duração:

  • Aula Teórica Presencial: 2 Semanas (16h). Dois encontros de 4 horas.
  • Projetos individuais da disciplina: 64 h

Audiência:

Estudantes Graduados em Ciência da Computação ou áreas correlatas.

Bibliografia:

Jeffers, J., Reinders, J., Sodani, A., 2016. Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, 2nd ed. Morgan Kaufmann, Cambridge, MA.

Aamodt, T.M., Fung, W.W.L., Rogers, T.G., 2018. General-Purpose Graphics Processor Architectures. Morgan & Claypool.

Share This Course