CUDA Academy · Aula

cuDNN para aprendizado profundo

Convoluções e operações com tensores em escala.

Aula 4 de 413 etapas

cuDNN para aprendizado profundo é uma aula grátis de CUDA Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CUDA Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CUDA Academy inclui 4 aulas no total.

O mecanismo por trás das estruturas de IA

cuDNN é a biblioteca de aprendizado profundo da NVIDIA. PyTorch e TensorFlow dependem dela para convoluções rápidas e outros componentes básicos de redes neurais. 🧠

Por que as convoluções precisam de ajuda

Uma convolução desliza um filtro pequeno sobre uma imagem, realizando uma enorme quantidade de cálculos. cuDNN a implementa muito mais rapidamente que um kernel ingênuo.

Comece com um identificador

Assim como cuBLAS, cuDNN mantém o estado em um identificador que você cria uma vez e reutiliza em cada operação, destruindo-o depois, durante o encerramento.

cudnnHandle_t h;
cudnnCreate(&h);

Descreva seus dados

cuDNN funciona por meio de descritores. Um descritor de tensor registra a forma, o tipo de dados e o layout para que a biblioteca saiba exatamente o que está processando.

cudnnTensorDescriptor_t xDesc;
cudnnCreateTensorDescriptor(&xDesc);

O layout NCHW

Os tensores normalmente usam o formato NCHW: lote, canais, altura e largura. Definir esse layout corretamente é essencial para que os cálculos se alinhem.

cudnnSetTensor4dDescriptor(xDesc,
  CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, N, C, H, W);

Os filtros têm seu próprio descritor

Os pesos do kernel de convolução usam um descritor de filtro separado, que descreve os canais de saída, os canais de entrada e a altura e a largura do filtro.

cudnnFilterDescriptor_t wDesc;
cudnnCreateFilterDescriptor(&wDesc);

Configurações da convolução

Um descritor de convolução armazena o preenchimento, o passo e a dilatação — os parâmetros que determinam como o filtro percorre o tensor de entrada.

Escolha um algoritmo

cuDNN oferece vários algoritmos de convolução, com diferentes compromissos entre velocidade e memória. Você consulta qual é o melhor para as formas dos seus tensores.

Reserve um espaço de trabalho

Algoritmos rápidos precisam de espaço temporário. Você aloca no dispositivo um buffer de espaço de trabalho cujo tamanho cuDNN informa antecipadamente.

size_t bytes;
cudnnGetConvolutionForwardWorkspaceSize(...,&bytes);

Execute a passagem direta

cudnnConvolutionForward reúne tudo: o identificador, os descritores, o algoritmo e o espaço de trabalho produzem o mapa de características de saída em uma única chamada.

cudnnConvolutionForward(h, &alpha, xDesc, x,
  wDesc, w, convDesc, algo, ws, bytes, &beta, yDesc, y);

Mais do que convoluções

cuDNN também acelera agrupamento, funções de ativação e normalização, as outras camadas que compõem uma rede neural moderna.

Verificação rápida

Recupere o que cuDNN foi criado para acelerar.

Recapitulação

Você configurou um identificador, descreveu tensores e filtros em NCHW, escolheu um algoritmo com um espaço de trabalho e executou uma passagem direta de convolução. 🎓

Grátis para começar

Aprenda C++ com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “cuDNN para aprendizado profundo” é grátis?

Sim — o texto completo de “cuDNN para aprendizado profundo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CUDA Academy, atualize para CoddyKit PRO. O curso de CUDA Academy inclui 4 aulas no total.

O que vou aprender em “cuDNN para aprendizado profundo”?

Convoluções e operações com tensores em escala. Você pratica CUDA Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar CUDA Academy?

Nenhuma experiência prévia é necessária. CUDA Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “cuDNN para aprendizado profundo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de CUDA Academy?

Sim. Cada aula de CUDA Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. GEMM com cuBLAS do jeito certo
  2. Vetores e transformações com Thrust
  3. Reduce, Scan e Sort com Thrust
  4. cuDNN para aprendizado profundo
← Voltar para CUDA Academy