Les erreurs XLA sont classées dans différentes sources d'erreurs XLA. Chaque source comporte une liste de contextes supplémentaires en plus du message d'erreur, qui sera associé à chaque erreur de la catégorie.
🚧 Notez que cette standardisation est en cours. Par conséquent, tous les messages d'erreur ne seront pas encore associés à un code d'erreur.
Voici un exemple de journal d'erreurs :
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=""
États et échecs de la vérification
En général, dans XLA, nous pouvons signaler une exécution corrompue à l'aide de deux mécanismes : les états et les échecs de macro CHECK.
Les états sont destinés aux erreurs non fatales et récupérables. L'hypothèse est que la fonction renvoie et que l'exécution se poursuit sur le chemin où l'appelant vérifie explicitement l'objet Status renvoyé. Cela est utile pour gérer les entrées utilisateur non valides ou les contraintes de ressources attendues.
En revanche, les échecs de vérification couvrent les erreurs de programmation ou les violations d'invariants qui ne devraient jamais se produire si le code est correct. En cas de CHECK activé, le programme enregistre le message d'erreur et s'arrête immédiatement. Cela peut garantir la cohérence interne, par exemple en vérifiant qu'un pointeur n'est pas nul avant de le déréférencer.
Codes d'erreur
Voici une liste d'index avec tous les codes d'erreur.