Cursos de NVIDIA GPU Programming - Extended
Este curso de treinamento ao vivo ministrado por instrutor cobre como programar GPU para computação paralela, como usar várias plataformas, como trabalhar com a plataforma CUDA e seus recursos, e como executar várias técnicas de otimização usando CUDA. Algumas das aplicações incluem aprendizado profundo, análise, processamento de imagens e aplicativos de engenharia.
Programa do Curso
Introdução
Compreendendo os fundamentos da metodologia de computação heterogênea
Por que computação paralela? Compreendendo a necessidade de computação paralela
Processadores Multi-Core - Arquitetura e Design
Introdução aos Threads, Noções Básicas de Threads e Conceitos Básicos de Paralelo Programming
Compreendendo os fundamentos de GPU processos de otimização de software
OpenMP - Um padrão para paralelo baseado em diretiva Programming
Prática / Demonstração de vários programas em máquinas multicore
Introdução à GPU Computação
GPUs para computação paralela
Modelo de GPUs Programming
Prática / Demonstração de vários programas em GPU
SDK, Toolkit e Instalação de Ambiente para GPU
Trabalhando com várias bibliotecas
Demonstração de GPU e ferramentas com programas de exemplo e OpenACC
Compreendendo o modelo CUDA Programming
Aprendendo a arquitetura CUDA
Explorando e configurando os ambientes de desenvolvimento CUDA
Trabalhando com a API CUDA Runtime
Compreendendo o modelo de memória CUDA
Explorando recursos adicionais da API CUDA
Access ing memória global de forma eficiente em CUDA: Otimização de memória global
Otimizando transferências de dados em CUDA usando CUDA Streams
Usando memória compartilhada em CUDA
Compreendendo e usando operações e instruções atômicas em CUDA
Estudo de caso: Processamento Básico de Imagens Digitais com CUDA
Trabalhando com Multi-GPU Programming
Perfil e amostragem de hardware avançados em NVIDIA / CUDA
Usando API de Paralelismo Dinâmico CUDA para Lançamento de Kernel Dinâmico
Resumo e conclusão
Requisitos
- C Programming
- Linux GCC
Os cursos de treinamento abertos exigem mais de 5 participantes.
Cursos de NVIDIA GPU Programming - Extended - Booking
Cursos de NVIDIA GPU Programming - Extended - Enquiry
NVIDIA GPU Programming - Extended - Solicitação de Consultoria
Solicitação de Consultoria
Declaração de Clientes (1)
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
Próximas Formações Provisórias
Cursos Relacionados
AMD GPU Programming
28 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a desenvolvedores de nível iniciante a intermediário que desejam usar ROCm e HIP para programar AMD GPU s e explorar seu paralelismo.
No final deste treinamento, os participantes serão capazes de:
- Configurar um ambiente de desenvolvimento que inclua a Plataforma ROCm, um AMD GPU e um Código Visual Studio.
- Criar um programa ROCm básico que execute a adição de vectores no GPU e recupere os resultados da memória GPU.
- Utilizar a API do ROCm para consultar informações sobre o dispositivo, atribuir e anular a atribuição de memória ao dispositivo, copiar dados entre o anfitrião e o dispositivo, lançar kernels e sincronizar threads.
- Utilizar a linguagem HIP para escrever kernels que executam no GPU e manipulam dados.
- Utilizar funções, variáveis e bibliotecas incorporadas na HIP para executar tarefas e operações comuns.
- Utilizar espaços de memória ROCm e HIP, tais como global, partilhada, constante e local, para otimizar as transferências de dados e os acessos à memória.
- Utilizar os modelos de execução do ROCm e da HIP para controlar os threads, blocos e grelhas que definem o paralelismo.
- Depurar e testar programas ROCm e HIP usando ferramentas como o ROCm Debugger e o ROCm Profiler.
- Otimizar programas ROCm e HIP usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil.
Administration of CUDA
35 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a administradores de sistema de nível iniciante e profissionais de TI que desejam instalar, configurar, gerenciar e solucionar problemas de ambientes CUDA.
Ao final deste treinamento, os participantes serão capazes de:
- Compreender a arquitetura, os componentes e os recursos do CUDA.
- Instalar e configurar ambientes CUDA.
- Gerenciar e otimizar recursos CUDA.
- Depurar e solucionar problemas comuns de CUDA.
GPU Programming with CUDA and Python
14 HorasEsta formação ao vivo, ministrada pelo instrutor em Brasil (online ou presencial), é direcionada a desenvolvedores de nível intermediário que desejam usar CUDA para criar aplicações Python que rodem em paralelo nos dispositivos NVIDIA GPU.
No final desta formação, os participantes serão capazes de
- Usar o compilador Numba para acelerar aplicações Python rodando em NVIDIA GPU.
- Criar, compilar e lançar kernels CUDA personalizados.
- Gerenciar a memória GPU.
- Converter uma aplicação baseada em CPU em uma aplicação acelerada por GPU.
Introduction to GPU Programming
21 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a desenvolvedores de nível iniciante a intermediário que desejam aprender os conceitos básicos de programação GPU e as principais estruturas e ferramentas para o desenvolvimento de aplicativos GPU.
- Ao final deste treinamento, os participantes serão capazes de:
Compreender a diferença entre CPU e computação GPU e os benefícios e desafios da programação GPU. - Escolher a estrutura e a ferramenta correcta para a sua aplicação GPU.
- Criar um programa GPU básico que executa adição de vectores usando uma ou mais das estruturas e ferramentas.
- Utilizar as respectivas API, linguagens e bibliotecas para consultar informações sobre o dispositivo, atribuir e anular a atribuição de memória ao dispositivo, copiar dados entre o anfitrião e o dispositivo, lançar kernels e sincronizar threads.
- Utilizar os respectivos espaços de memória, tais como global, local, constante e privado, para otimizar as transferências de dados e os acessos à memória.
- Utilizar os respectivos modelos de execução, tais como work-items, work-groups, threads, blocos e grelhas, para controlar o paralelismo.
- Depurar e testar programas GPU usando ferramentas como CodeXL, CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight.
- Otimizar programas GPU usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil.
GPU Programming with CUDA
28 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a desenvolvedores de nível iniciante a intermediário que desejam usar o CUDA para programar NVIDIA GPU s e explorar seu paralelismo.
Ao final deste treinamento, os participantes serão capazes de:
- Configurar um ambiente de desenvolvimento que inclua o CUDA Toolkit, um código NVIDIA GPU e Visual Studio.
- Criar um programa CUDA básico que execute a adição de vetores no GPU e recupere os resultados da memória GPU.
- Use 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.
- Use a linguagem CUDA C/C++ para escrever kernels que são executados no GPU e manipulam dados.
- Usar funções, variáveis e bibliotecas internas da 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.
- Depurar e testar programas CUDA usando ferramentas como CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight.
- Otimizar programas CUDA usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil.
97% dos clientes satisfeitos.
GPU Programming with OpenACC
28 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a desenvolvedores de nível iniciante a intermediário que desejam usar o OpenACC para programar dispositivos heterogêneos e explorar seu paralelismo.
No final deste treinamento, os participantes serão capazes de:
- Configurar um ambiente de desenvolvimento que inclua o OpenACC SDK, um dispositivo que suporte OpenACC, e Visual Studio Código.
- Criar um programa OpenACC básico que execute a adição de vectores no dispositivo e recupere os resultados da memória do dispositivo.
- Utilize as directivas e cláusulas OpenACC para anotar o código e especificar as regiões paralelas, o movimento de dados e as opções de otimização.
- Utilizar a API OpenACC para consultar informações do dispositivo, definir o número do dispositivo, tratar erros e sincronizar eventos.
- Usar as bibliotecas OpenACC e os recursos de interoperabilidade para integrar o OpenACC a outros modelos de programação, como CUDA, OpenMP e MPI.
- Usar ferramentas OpenACC para criar perfis e depurar programas OpenACC e identificar gargalos e oportunidades de desempenho.
- Otimizar programas OpenACC usando técnicas como localidade de dados, fusão de loop, fusão de kernel e auto-tuning.
GPU Programming with OpenCL
28 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a desenvolvedores de nível iniciante a intermediário que desejam usar OpenCL para programar dispositivos heterogêneos e explorar seu paralelismo.
No final deste treinamento, os participantes serão capazes de:
- Configurar um ambiente de desenvolvimento que inclua o OpenCL SDK, um dispositivo que suporte o OpenCL e o Visual Studio Code.
- Criar um programa OpenCL básico que execute a adição de vectores no dispositivo e recupere os resultados da memória do dispositivo.
- Utilizar a API OpenCL para consultar informações sobre o dispositivo, criar contextos, filas de comandos, buffers, kernels e eventos.
- Utilizar a OpenCL linguagem C para escrever kernels que são executados no dispositivo e manipulam dados.
- Utilizar OpenCL funções incorporadas, extensões e bibliotecas para efetuar tarefas e operações comuns.
- Utilizar OpenCL modelos de memória do anfitrião e do dispositivo para otimizar as transferências de dados e os acessos à memória.
- Utilizar o modelo de execução OpenCL para controlar os work-items, os grupos de trabalho e os intervalos ND.
- Depurar e testar programas OpenCL usando ferramentas como CodeXL, Intel VTune e NVIDIA Nsight.
- Otimizar programas OpenCL usando técnicas como vetorização, desenrolamento de loop, memória local e criação de perfil.
GPU Programming - OpenCL vs CUDA vs ROCm
28 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a desenvolvedores de nível iniciante a intermediário que desejam usar diferentes estruturas para programação GPU e comparar seus recursos, desempenho e compatibilidade.
No final deste treinamento, os participantes serão capazes de:
- Configurar um ambiente de desenvolvimento que inclui OpenCL SDK, CUDA Toolkit, Plataforma ROCm, um dispositivo que suporta OpenCL, CUDA, ou ROCm, e Visual Studio Código.
- Crie um programa GPU básico que execute a adição de vectores utilizando OpenCL, CUDA e ROCm e compare a sintaxe, a estrutura e a execução de cada estrutura.
- Use as respectivas APIs 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.
- Utilizar as respectivas linguagens para escrever kernels que executam no dispositivo e manipulam dados.
- Utilizar as respectivas funções incorporadas, variáveis e bibliotecas para executar tarefas e operações comuns.
- Utilizar os respectivos espaços de memória, tais como global, local, constante e privado, para otimizar as transferências de dados e os acessos à memória.
- Utilizar os respectivos modelos de execução para controlar as threads, blocos e grelhas que definem o paralelismo.
- Depurar e testar programas GPU usando ferramentas como CodeXL, CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight.
- Otimizar programas GPU usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil.
ROCm for Windows
21 HorasEste treinamento ao vivo conduzido por instrutor em Brasil (no local ou remoto) é destinado a desenvolvedores de nível iniciante a intermediário que desejam instalar e usar o ROCm no Windows para programar AMD GPU s e explorar seu paralelismo.
No final deste treinamento, os participantes serão capazes de:
- Configurar um ambiente de desenvolvimento que inclua a plataforma ROCm, um AMD GPU e um código Visual Studio no Windows.
- Criar um programa ROCm básico que execute a adição de vectores no GPU e recupere os resultados da memória do GPU.
- Use 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, iniciar kernels e sincronizar threads.
- Utilizar a linguagem HIP para escrever kernels que executam no GPU e manipulam dados.
- Utilizar funções, variáveis e bibliotecas incorporadas na HIP para executar tarefas e operações comuns.
- Utilizar espaços de memória ROCm e HIP, tais como global, partilhada, constante e local, para otimizar as transferências de dados e os acessos à memória.
- Utilizar os modelos de execução do ROCm e da HIP para controlar os threads, blocos e grelhas que definem o paralelismo.
- Depurar e testar programas ROCm e HIP usando ferramentas como o ROCm Debugger e o ROCm Profiler.
- Otimizar programas ROCm e HIP usando técnicas como coalescência, armazenamento em cache, pré-busca e criação de perfil.