CUDA Academy · Lección

Verificar el resultado en la CPU

Compare con un resultado de referencia.

Lección 3 de 413 pasos

Verificar el resultado en la CPU es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 3 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.

Confíe, pero verifique

Que un kernel se ejecute sin bloquearse no demuestra que sea correcto. Debe comprobar los números, porque los errores lógicos silenciosos son fáciles de pasar por alto. 🔍

Calcule una referencia

La comprobación más sencilla es un bucle normal de CPU que haga las mismas operaciones matemáticas. Este resultado de referencia es su fuente de verdad confiable.

for (int i = 0; i < n; i++)
    ref[i] = h_A[i] + h_B[i];

Compare elemento por elemento

Recorra ambos arrays y compare cada resultado de la GPU con la referencia. Un bucle sobre los n elementos detecta cualquier valor incorrecto.

for (int i = 0; i < n; i++)
    if (h_C[i] != ref[i]) { /* mismatch */ }

Los números en coma flotante no son exactos

Con números en coma flotante, no use nunca una prueba de igualdad simple. Las pequeñas diferencias de redondeo indican que debe comparar usando una pequeña tolerancia.

if (fabs(h_C[i] - ref[i]) > 1e-5f) { /* fail */ }

Por qué usar tolerancia y no igualdad

La GPU y la CPU pueden redondear en órdenes distintos, por lo que los resultados pueden diferir ligeramente. Un epsilon pequeño, como 1e-5, absorbe ese ruido inofensivo.

Cuente los errores

En lugar de detenerse ante la primera discrepancia, lleve un recuento de errores. Ver cuántos elementos fallan da pistas sobre el tipo de error que tiene.

int errors = 0;
if (fabs(h_C[i] - ref[i]) > 1e-5f) errors++;

Muestre un veredicto claro

Termine con un único mensaje claro y honesto. Una línea nítida de PASS o FAIL evita tener que examinar arrays sin formato.

printf(errors == 0 ? "PASS\n" : "FAIL: %d\n", errors);

Compruebe rápidamente los extremos

Los errores en los límites suelen afectar al primer y al último elemento. Imprimir C[0] y C[n-1] permite hacer una comprobación rápida antes del bucle completo.

Una señal de desfase en uno

Si exactamente el último elemento es incorrecto, sospeche de los cálculos de límites. Un recuento incorrecto de bloques o una condición de protección defectuosa suele dejar fuera al último hilo.

Verifique antes de optimizar

Confirme siempre que el resultado es correcto antes de ajustar el rendimiento. Un kernel rápido que devuelve respuestas incorrectas es peor que uno lento pero correcto.

Conserve la comprobación

Mantenga el paso de verificación durante el desarrollo. Es su prueba de regresión y detecta los errores en cuanto cambia el kernel.

Comprobación rápida

¿Cómo debe comparar los resultados de la GPU en coma flotante con una referencia de CPU?

Repaso

Ha verificado el resultado: una referencia de CPU, una comparación con tolerancia, un recuento de errores y un PASS o FAIL claro. La corrección es siempre lo primero. ✅

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 «Verificar el resultado en la CPU» es gratis?

Sí — el texto completo de «Verificar el resultado en la CPU» 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 «Verificar el resultado en la CPU»?

Compare con un resultado de referencia. 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 3 de 4.

¿Cuánto tiempo toma la lección «Verificar el resultado en la CPU»?

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. El kernel de suma de vectores
  2. Preparar el lado del host
  3. Verificar el resultado en la CPU
  4. Medir su primera aceleración
← Volver a CUDA Academy