cuDNN para aprendizado profundo
Convoluções e operações com tensores em escala.
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. 🎓
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
- GEMM com cuBLAS do jeito certo
- Vetores e transformações com Thrust
- Reduce, Scan e Sort com Thrust
- cuDNN para aprendizado profundo