Verificar la corrección numérica
Compare los resultados con una referencia.
Verificar la corrección numérica es una lección gratuita de Mojo 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 Mojo Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Mojo Academy incluye 4 lecciones en total.
Rápido pero incorrecto no sirve
Un kernel optimizado solo cuenta si calcula la respuesta correcta. Siempre debe verificar el resultado antes de confiar en una mejora de velocidad.
Conserve una referencia
Conserve la versión sencilla y claramente correcta. Es su referencia, la fuente de verdad que todo kernel rápido debe igualar.
Los floats no son exactos
La aritmética de coma flotante redondea, por lo que reordenar las sumas puede cambiar los últimos dígitos. Los resultados optimizados pueden diferir ligeramente sin estar equivocados.
Evite la igualdad exacta
Debido al redondeo, nunca compare floats con ==. Las pequeñas diferencias harán que un código correcto parezca defectuoso.
if fast == ref: # fragile, avoidCompare con una tolerancia
En su lugar, compruebe que los valores sean suficientemente cercanos dentro de una pequeña tolerancia. Si la diferencia es menor que epsilon, considérelos iguales.
if abs(fast - ref) <= 1e-5:
pass # close enoughError absoluto frente a relativo
El error absoluto es la diferencia directa; el error relativo la escala según la magnitud. Los números grandes necesitan comprobaciones relativas para que la comparación sea justa.
rel = abs(fast - ref) / abs(ref)Compruebe cada elemento
Recorra todo el resultado y compruebe cada celda. Una sola discrepancia que supere la tolerancia significa que la optimización ha introducido un problema.
for i in range(n):
if abs(fast[i] - ref[i]) > tol:
print("mismatch at", i)Registre la mayor diferencia
Registre la mayor diferencia que observe. El error máximo entre todos los elementos es un indicador único y claro del estado del kernel.
Pruebe los casos límite
Pruebe entradas vacías, un solo elemento y tamaños impares que no sean divisibles exactamente por el ancho de SIMD. Los casos límite revelan rápidamente los errores de cola.
Use respuestas conocidas
Multiplique por la matriz identidad o sume un vector de unos. Las entradas predecibles producen respuestas que puede verificar manualmente.
Automatice la comprobación
Incluya la verificación en una prueba pequeña que falle claramente ante cualquier discrepancia. Ejecútela después de cada cambio para que las regresiones nunca pasen inadvertidas.
Comprobación rápida
Su matmul SIMD difiere de la referencia en 0.0000007. ¿Qué debería concluir?
Resumen
Verifique el código rápido con una referencia fiable, compare con una tolerancia en lugar de ==, compruebe los casos límite y las respuestas conocidas, y automatice el proceso. ✅
Preguntas frecuentes
¿La lección «Verificar la corrección numérica» es gratis?
Sí — el texto completo de «Verificar la corrección numérica» 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 Mojo Academy, actualiza a CoddyKit PRO. El curso de Mojo Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Verificar la corrección numérica»?
Compare los resultados con una referencia. Practicas Mojo 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 Mojo Academy?
No se requiere experiencia previa. Mojo 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 «Verificar la corrección numérica»?
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 Mojo Academy?
Sí. Cada lección de Mojo 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
- Modelar un tensor en Mojo
- Construir una multiplicación de matrices paso a paso
- Optimizar el producto escalar
- Verificar la corrección numérica