Обзор ошибок XLA

Ошибки XLA классифицируются по различным источникам ошибок XLA. Каждый источник содержит список дополнительных контекстов, помимо сообщения об ошибке, которые будут прикреплены к каждой ошибке в данной категории.

🚧 Обратите внимание, что работа по стандартизации еще не завершена, поэтому не все сообщения об ошибках пока будут иметь прикрепленный код ошибки.

Пример журнала ошибок может выглядеть так:

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=""

Статусы и ошибки CHECK

В общем случае в XLA мы можем отмечать поврежденное выполнение с помощью двух механизмов: статусов и сбоев макроса CHECK.

Статусы предназначены для нефатальных, восстановимых ошибок. Предполагается, что функция возвращает управление, и выполнение продолжается по пути, где вызывающий объект явно проверяет возвращаемый объект Status. Это полезно для обработки недопустимого пользовательского ввода или ожидаемых ограничений ресурсов.

С другой стороны, сбои CHECK охватывают ошибки программиста или нарушения инвариантов, которые никогда не должны возникать при корректном коде. В случае активации CHECK программа регистрирует сообщение об ошибке и немедленно завершает работу. Это может обеспечить внутреннюю согласованность, например, проверяя указатель на ненулевое значение перед его разыменованием.

Коды ошибок

Вот индексный список со всеми кодами ошибок .