Los errores de XLA se clasifican en diferentes fuentes de errores de XLA. Cada fuente tiene una lista de contexto adicional que no es el mensaje de error, que se adjuntará a cada error dentro de la categoría.
🚧 Ten en cuenta que este esfuerzo de estandarización es un trabajo en curso, por lo que aún no todos los mensajes de error tendrán un código de error adjunto.
Un ejemplo de registro de errores podría verse de la siguiente manera:
XlaRuntimeError: RESOURCE_EXHAUSTED: XLA:TPU compile permanent error. Ran out of memory in memory space hbm. Used 49.34G of 32.00G hbm. Exceeded hbm capacity by 17.34G. Total hbm usage >= 49.34G: reserved 3.12M program unknown size arguments 49.34G
JaxRuntimeError: RESOURCE_EXHAUSTED: Ran out of memory in memory space vmem while allocating on stack for %ragged_latency_optimized_all_gather_lhs_contracting_gated_matmul_kernel.18 = bf16[2048,4096]{1,0:T(8,128)(2,1)} custom-call(%get-tuple-element.18273, %get-tuple-element.18274, %get-tuple-element.18275, %get-tuple-element.18276, %get-tuple-element.18277, /*index=5*/%bitcast.8695, %get-tuple-element.19201, %get-tuple-element.19202, %get-tuple-element.19203, %get-tuple-element.19204), custom_call_target=""
Estados y fallas de CHECK
En general, en XLA podemos marcar la ejecución dañada con dos mecanismos: estados y fallas de la macro CHECK.
Los estados están diseñados para errores recuperables y no fatales. Se supone que la función devuelve un valor y que la ejecución continúa por la ruta en la que la persona que llama verifica de forma explícita el objeto Status devuelto. Es útil para controlar entradas del usuario no válidas o restricciones de recursos esperadas.
Por otro lado, las fallas de CHECK abarcan errores del programador o incumplimientos de invariantes que nunca deberían ocurrir si el código es correcto. En caso de que se active una verificación, el programa registrará el mensaje de error y se cerrará de inmediato. Podría garantizar la coherencia interna, por ejemplo, verificando que un puntero no sea nulo antes de desreferenciarlo.
Códigos de error
Aquí tienes una lista de índice con todos los códigos de error.