Obrigado por enviar sua consulta! Um dos membros da nossa equipe entrará em contato com você em breve.
Obrigado por enviar sua reserva! Um dos membros da nossa equipe entrará em contato com você em breve.
Programa do Curso
Introdução
- O que é programação de GPU?
- Por que usar a programação de GPU?
- Quais são os desafios e trade-offs da programação de GPU?
- Quais são os frameworks para programação de GPU?
- Escolhendo o framework certo para sua aplicação
OpenCL
- O que é OpenCL?
- Quais são as vantagens e desvantagens do OpenCL?
- Configurando o ambiente de desenvolvimento para OpenCL
- Criando um programa básico de OpenCL que realiza adição vetorial
- Usando a API do OpenCL para consultar informações do dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre o host e o dispositivo, lançar kernels e sincronizar threads
- Usando a linguagem C do OpenCL para escrever kernels que são executados no dispositivo e manipulam dados
- Usando funções, variáveis e bibliotecas integradas do OpenCL para realizar tarefas e operações comuns
- Usando espaços de memória do OpenCL, como global, local, constante e privado, para otimizar transferências de dados e acessos à memória
- Usando o modelo de execução do OpenCL para controlar os work-items, work-groups e ND-ranges que definem o paralelismo
- Depurando e testando programas de OpenCL usando ferramentas como CodeXL
- Otimizando programas de OpenCL usando técnicas como coalescimento, cache, pré-busca e profiling
CUDA
- O que é CUDA?
- Quais são as vantagens e desvantagens do CUDA?
- Configurando o ambiente de desenvolvimento para CUDA
- Criando um programa básico de CUDA que realiza adição vetorial
- Usando a API do CUDA para consultar informações do dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre o host e o dispositivo, lançar kernels e sincronizar threads
- Usando a linguagem C/C++ do CUDA para escrever kernels que são executados no dispositivo e manipulam dados
- Usando funções, variáveis e bibliotecas integradas do CUDA para realizar tarefas e operações comuns
- Usando espaços de memória do CUDA, como global, compartilhada, constante e local, para otimizar transferências de dados e acessos à memória
- Usando o modelo de execução do CUDA para controlar as threads, blocos e grades que definem o paralelismo
- Depurando e testando programas de CUDA usando ferramentas como CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight
- Otimizando programas de CUDA usando técnicas como coalescimento, cache, pré-busca e profiling
ROCm
- O que é ROCm?
- Quais são as vantagens e desvantagens do ROCm?
- Configurando o ambiente de desenvolvimento para ROCm
- Criando um programa básico de ROCm que realiza adição vetorial
- Usando a API do ROCm para consultar informações do dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre o host e o dispositivo, lançar kernels e sincronizar threads
- Usando a linguagem C/C++ do ROCm para escrever kernels que são executados no dispositivo e manipulam dados
- Usando funções, variáveis e bibliotecas integradas do ROCm para realizar tarefas e operações comuns
- Usando espaços de memória do ROCm, como global, local, constante e privado, para otimizar transferências de dados e acessos à memória
- Usando o modelo de execução do ROCm para controlar as threads, blocos e grades que definem o paralelismo
- Depurando e testando programas de ROCm usando ferramentas como ROCm Debugger e ROCm Profiler
- Otimizando programas de ROCm usando técnicas como coalescimento, cache, pré-busca e profiling
Comparação
- Comparando as características, desempenho e compatibilidade de OpenCL, CUDA e ROCm
- Avaliando programas de GPU usando benchmarks e métricas
- Aprendendo as melhores práticas e dicas para programação de GPU
- Explorando as tendências atuais e futuras e os desafios da programação de GPU
Resumo e Próximos Passos
Requisitos
- Conhecimento da linguagem C/C++ e conceitos de programação paralela
- Conhecimento básico de arquitetura de computadores e hierarquia de memória
- Experiência com ferramentas de linha de comando e editores de código
Público-Alvo
- Desenvolvedores que desejam aprender a usar diferentes frameworks para programação de GPU e comparar suas características, desempenho e compatibilidade
- Desenvolvedores que desejam escrever código portátil e escalável que possa ser executado em diferentes plataformas e dispositivos
- Programadores que desejam explorar os trade-offs e desafios da programação de GPU e otimização
28 Horas