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 GPU?
- Porquê utilizar a programação GPU?
- Quais são os desafios e as vantagens e desvantagens da programação GPU?
- Quais são as estruturas e ferramentas para a programação GPU?
- Escolher a estrutura e a ferramenta correctas para a sua aplicação
OpenCL
- O que é OpenCL?
- Quais são as vantagens e desvantagens de OpenCL?
- Configurando o ambiente de desenvolvimento para OpenCL
- Criação de um programa OpenCL básico que executa adição de vectores
- Usando a API OpenCL para consultar informações do dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre o host e o dispositivo, iniciar kernels e sincronizar threads
- Utilização da OpenCL linguagem C para escrever kernels que são executados no dispositivo e manipulam dados
- Utilizar OpenCL funções, variáveis e bibliotecas incorporadas para efetuar tarefas e operações comuns
- Utilização de OpenCL espaços de memória, como global, local, constante e privado, para otimizar as transferências de dados e os acessos à memória
- Utilização do modelo de execução OpenCL para controlar os itens de trabalho, os grupos de trabalho e os intervalos ND que definem o paralelismo
- Depurar e testar programas OpenCL usando ferramentas como o CodeXL
- Otimização de programas OpenCL usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil
CUDA
- O que é CUDA?
- Quais são as vantagens e desvantagens de CUDA?
- Configurando o ambiente de desenvolvimento para CUDA
- Criando um programa CUDA básico que executa adição de vetores
- Usando a API CUDA para consultar informações do dispositivo, alocar e desalocar a memória do dispositivo, copiar dados entre o host e o dispositivo, iniciar kernels e sincronizar threads
- Usando a linguagem CUDA C/C++ para escrever kernels que executam no dispositivo e manipulam dados
- Usando funções integradas, variáveis e bibliotecas CUDA para executar tarefas e operações comuns
- Usar espaços de memória CUDA, como global, compartilhado, constante e local, para otimizar transferências de dados e acessos à memória
- Usar o modelo de execução CUDA para controlar os threads, blocos e grades que definem o paralelismo
- Depuração e teste de programas CUDA usando ferramentas como CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight
- Otimização de programas CUDA usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil
ROCm
- O que é ROCm?
- Quais são as vantagens e desvantagens do ROCm?
- Configurando o ambiente de desenvolvimento para ROCm
- Criação de um programa ROCm básico que executa a adição de vectores
- Usar a API do ROCm para consultar informações do dispositivo, alocar e desalocar a memória do dispositivo, copiar dados entre o host e o dispositivo, iniciar kernels e sincronizar threads
- Utilização da linguagem ROCm C/C++ para escrever kernels que são executados no dispositivo e manipulam dados
- Utilizar as funções, variáveis e bibliotecas incorporadas no ROCm para efetuar tarefas e operações comuns
- Utilizar os espaços de memória do ROCm, tais como global, local, constante e privado, para otimizar as transferências de dados e os acessos à memória
- Utilizar o modelo de execução do ROCm para controlar os threads, blocos e grelhas que definem o paralelismo
- Depurar e testar programas ROCm usando ferramentas como o ROCm Debugger e o ROCm Profiler
- Otimização de programas ROCm utilizando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfis
HIP
- O que é a HIP?
- Quais são as vantagens e desvantagens do HIP?
- Configurando o ambiente de desenvolvimento para HIP
- Criação de um programa HIP básico que executa adição de vectores
- Utilização da linguagem HIP para escrever kernels que são executados no dispositivo e manipulam dados
- Utilização de funções, variáveis e bibliotecas incorporadas na HIP para efetuar tarefas e operações comuns
- Utilização de espaços de memória HIP, como global, partilhado, constante e local, para otimizar as transferências de dados e os acessos à memória
- Utilização do modelo de execução da HIP para controlar os segmentos, blocos e grelhas que definem o paralelismo
- Depurar e testar programas HIP usando ferramentas como o ROCm Debugger e o ROCm Profiler
- Otimização de programas HIP usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil
Comparação
- Comparação dos recursos, desempenho e compatibilidade de OpenCL, CUDA, ROCm e HIP
- Avaliação de programas GPU usando benchmarks e métricas
- Aprender as melhores práticas e dicas para programação GPU
- Explorar as tendências e desafios atuais e futuros da programação GPU
Resumo e próximo passo
Requisitos
- Conhecimento da linguagem C/C++ e dos conceitos de programação paralela
- Conhecimentos básicos 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
- Programadores que pretendam aprender os conceitos básicos de programação GPU e as principais estruturas e ferramentas para o desenvolvimento de aplicações GPU
- Programadores que pretendam escrever código portátil e escalável que possa ser executado em diferentes plataformas e dispositivos
- Programadores que desejam explorar os benefícios e desafios da programação GPU e da otimização
21 Horas
Declaração de Clientes (2)
Muito interativo com vários exemplos, com uma boa progressão de complexidade entre o início e o fim da formação.
Jenny - Andheo
Curso - GPU Programming with CUDA and Python
Máquina Traduzida
A energia e o humor dos formadores.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Curso - NVIDIA GPU Programming - Extended
Máquina Traduzida