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 é a programação de GPU?
- Por que usar a programação de GPU?
- Quais são os desafios e as 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 sobre o dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre host e dispositivo, lançar kernels e sincronizar threads
- Usando a linguagem C de OpenCL para escrever kernels que executam no dispositivo e manipulam os dados
- Usando funções embutidas do OpenCL, variáveis e bibliotecas para realizar tarefas e operações comuns
- Usando espaços de memória do OpenCL, como global, local, constante e privada, para otimizar transferências de dados e acessos à memória
- Usando o modelo de execução do OpenCL para controlar os work-items, grupos de trabalho e ND-ranges que definem a paralelização
- Depurando e testando programas de OpenCL usando ferramentas como CodeXL
- Otimizando programas de OpenCL usando técnicas como coalescimento, cacheamento, prefetching e perfil
CUDA
- O que é a CUDA?
- Quais são as vantagens e desvantagens da CUDA?
- Configurando o ambiente de desenvolvimento para CUDA
- Criando um programa básico de CUDA que realiza adição vetorial
- Usando a API CUDA para consultar informações sobre o dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre host e dispositivo, lançar kernels e sincronizar threads
- Usando a linguagem C/CUDA para escrever kernels que executam no dispositivo e manipulam os dados
- Usando funções embutidas da CUDA, variáveis e bibliotecas para realizar tarefas e operações comuns
- Usando espaços de memória da CUDA, como global, compartilhada, constante e local, para otimizar transferências de dados e acessos à memória
- Usando o modelo de execução da CUDA para controlar os threads, blocos e grids que definem a paralelização
- Depurando e testando programas CUDA usando ferramentas como CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight
- Otimizando programas CUDA usando técnicas como coalescimento, cacheamento, prefetching e perfil
ROCm
- O que é a ROCm?
- Quais são as vantagens e desvantagens da ROCm?
- Configurando o ambiente de desenvolvimento para ROCm
- Criando um programa básico de ROCm que realiza adição vetorial
- Usando a API ROCm para consultar informações sobre o dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre host e dispositivo, lançar kernels e sincronizar threads
- Usando a linguagem C/CUDA para escrever kernels que executam no dispositivo e manipulam os dados
- Usando funções embutidas da ROCm, variáveis e bibliotecas para realizar tarefas e operações comuns
- Usando espaços de memória da ROCm, como global, local, constante e privada, para otimizar transferências de dados e acessos à memória
- Usando o modelo de execução da ROCm para controlar os threads, blocos e grids que definem a paralelização
- Depurando e testando programas de ROCm usando ferramentas como ROCm Debugger e ROCm Profiler
- Otimizando programas de ROCm usando técnicas como coalescimento, cacheamento, prefetching e perfil
Comparação
- Comparando as características, desempenho e compatibilidade do OpenCL, CUDA e ROCm
- Avaliando programas de GPU usando benchmarks e métricas
- Aprendendo práticas recomendadas e dicas para a programação de GPU
- Explorando as tendências atuais e futuras e desafios da programação de GPU
Resumo e Próximos Passos
Requisitos
- Compreensão 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 GPU programação e comparar suas características, desempenho e compatibilidade
- Desenvolvedores que desejam escrever código portátil e escalável que pode ser executado em diferentes plataformas e dispositivos
- Programadores que desejam explorar os trade-offs e desafios da programação GPU e otimização
28 Horas