Обстоятельный разбор аудита tt-metal показывает, почему случайные тесты не заменяют таблицу особых значений. Функция ttnn.atan2 для +∞ и +0 возвращала 0 вместо π/2: конечный диапазон тестов этот случай не создавал.
Карта расследования:
1. Заранее записать эталон для ±0, ±∞, NaN и значений у границ диапазона;
2. восстановить алгоритм ядра и вручную провести через него каждый случай;
3. заменить ошибочную проверку
min == 0 на max == 0 во всех трёх аппаратных копиях;4. закрепить точные входы детерминированным тестом.
В полном разборе поиска и исправления ошибки ценен порядок работы: спецификация идёт раньше кода, а крайние значения становятся регрессионными тестами. Читать разработчикам вычислительных библиотек и ML-инфраструктуры, которые проверяют численную корректность ускорителей.
