Soluciona problemas de JAX en TPU

En esta guía, se proporcionan punteros a información para solucionar problemas de JAX que te ayudarán a identificar y resolver problemas que podrías encontrar mientras entrenas modelos de JAX en Cloud TPU.

Para obtener una guía más general a fin de comenzar a usar Cloud TPU, consulta la guía de inicio rápido de JAX.

Problemas generales de JAX

Si tienes problemas mientras desarrollas tu modelo de entrenamiento o entrenas con JAX, consulta las Preguntas frecuentes sobre JAX.

Para obtener más información sobre los errores de programación generales que puedes encontrar cuando escribes una aplicación de entrenamiento con JAX, consulta Errores de JAX.

Cómo generar perfiles del rendimiento de JAX

Puedes comprender cómo se utilizan tus recursos de TPU con las herramientas que se describen en Cómo crear perfiles del rendimiento de JAX.

Soluciona problemas de memoria

Puedes supervisar cómo se usa la memoria con el generador de perfiles de memoria del dispositivo JAX, pero no puedes administrar directamente cómo se usa.

El generador de perfiles de memoria del dispositivo JAX se puede usar para lo siguiente:

No puedes especificar cómo se asigna la memoria de la TPU para operaciones específicas. Para obtener más información sobre los problemas de rendimiento de las TPU específicos de JAX, consulta Notas de rendimiento para usar TPU con JAX.

Soluciona problemas de TPU

En las siguientes secciones, se describe cómo resolver algunos problemas comunes que puedes encontrar cuando ejecutas un programa de JAX en una TPU.

¿Cómo puedo verificar que la TPU se esté ejecutando?

Todo se ejecutará en la TPU, siempre y cuando JAX no imprima el mensaje "No se encontró ninguna GPU o TPU. Se recurrirá a la CPU".

Puedes verificar que la TPU esté activa mirando jax.devices(), donde deberías ver varios dispositivos TPU, o bien verificarlo de forma programática con assert jax.devices()[0].platform == 'tpu'.

RuntimeError: No se pudo inicializar el backend "tpu": UNAVAILABLE: No hay disponible ninguna plataforma de TPU.

Este mensaje de error de tiempo de ejecución o encontrar lo siguiente en /tmp/tpu_logs/tpu_driver.WARNING en la VM de TPU: W1118 17:40:20.985243 23901 tpu_version_flag.cc:57] No hardware is found. Using default TPU version:xxxxxx puede indicar que estás ejecutando la versión incorrecta de la VM de TPU.

Verifica que estés ejecutando la versión actual del tiempo de ejecución de JAX y vuelve a intentarlo.

Soluciona problemas de TPU y GKE

Para ayudar a solucionar problemas, habilita el registro detallado en el manifiesto de tu carga de trabajo de GKE y, luego, proporciona los registros al equipo de asistencia de GKE.

TPU_MIN_LOG_LEVEL=0 TF_CPP_MIN_LOG_LEVEL=0 TPU_STDERR_LOG_LEVEL=0

En las siguientes secciones, se describen los mensajes de error relacionados con la configuración y las resoluciones de TPU y GKE.

No hay extremos disponibles para el servicio "jobset-webhook-service".

Este error significa que el conjunto de trabajos no se instaló correctamente. Comprueba si se están ejecutando los Pods de Kubernetes de la implementación de jobset-controller-manager. Para obtener más información, consulta la documentación sobre la solución de problemas de JobSet.

No se pudo inicializar la TPU: No se pudo establecer la conexión

Asegúrate de que la versión de tu nodo de GKE sea 1.30.4-gke.1348000 o posterior (GKE 1.31 no es compatible).