CUDA Academy · Lección

cuDNN para deep learning

Convoluciones y operaciones con tensores a gran escala

Lección 4 de 413 pasos

cuDNN para deep learning es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CUDA Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CUDA Academy incluye 4 lecciones en total.

El motor de los frameworks de IA

cuDNN es la biblioteca de aprendizaje profundo de NVIDIA. PyTorch y TensorFlow se apoyan en ella para realizar convoluciones rápidas y otros componentes básicos de las redes neuronales. 🧠

Por qué las convoluciones necesitan ayuda

Una convolution desplaza un filtro pequeño sobre una imagen y realiza enormes cantidades de cálculos. cuDNN la implementa mucho más rápido que un kernel ingenuo.

Comience con un handle

Al igual que cuBLAS, cuDNN mantiene su estado en un handle que crea una vez y reutiliza en cada operación; después lo destruye al apagar el programa.

cudnnHandle_t h;
cudnnCreate(&h);

Describa sus datos

cuDNN funciona mediante descriptors. Un descriptor de tensor registra la forma, el tipo de datos y el formato, para que la biblioteca sepa exactamente qué está procesando.

cudnnTensorDescriptor_t xDesc;
cudnnCreateTensorDescriptor(&xDesc);

El formato NCHW

Los tensores suelen usar NCHW: lote, canales, altura y anchura. Establecer correctamente este formato es esencial para que los cálculos coincidan.

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

Los filtros tienen su propio descriptor

Los pesos del kernel de convolución utilizan un filter descriptor independiente que describe los canales de salida, los canales de entrada y la altura y anchura del filtro.

cudnnFilterDescriptor_t wDesc;
cudnnCreateFilterDescriptor(&wDesc);

Configuración de la convolución

Un convolution descriptor almacena el padding, el stride y la dilatación: los parámetros que determinan cómo recorre el filtro el tensor de entrada.

Elija un algoritmo

cuDNN ofrece varios algorithms de convolución, con diferentes compromisos entre velocidad y memoria. Puede consultar cuál es el mejor para las formas de sus tensores.

Reserve un workspace

Los algoritmos rápidos necesitan espacio temporal. Asigne un búfer de workspace en el dispositivo, cuyo tamaño cuDNN le indica de antemano.

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

Ejecute la pasada hacia delante

cudnnConvolutionForward lo reúne todo: el handle, los descriptores, el algoritmo y el workspace producen el mapa de características de salida en una sola llamada.

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

Más que convoluciones

cuDNN también acelera el pooling, las activaciones y la normalización, las otras capas que forman una red neuronal moderna.

Comprobación rápida

Recuerde qué está diseñado para acelerar cuDNN.

Repaso

Configuró un handle, describió tensores y filtros en NCHW, eligió un algoritmo con un workspace y ejecutó una pasada de convolución hacia delante. 🎓

Gratis para empezar

Aprende C++ con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «cuDNN para deep learning» es gratis?

Sí — el texto completo de «cuDNN para deep learning» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CUDA Academy, actualiza a CoddyKit PRO. El curso de CUDA Academy incluye 4 lecciones en total.

¿Qué aprenderé en «cuDNN para deep learning»?

Convoluciones y operaciones con tensores a gran escala Practicas CUDA Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar CUDA Academy?

No se requiere experiencia previa. CUDA Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «cuDNN para deep learning»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de CUDA Academy?

Sí. Cada lección de CUDA Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. cuBLAS GEMM bien hecho
  2. Vectores y transformaciones de Thrust
  3. Reduce, Scan y Sort de Thrust
  4. cuDNN para deep learning
← Volver a CUDA Academy