Hardware

О работе с диагностическим комплексом MODS (MATS) для видеокарт Nvidia

Диагностика видеокарт Nvidia с помощью программного обеспечения из состава программного комплекса MODS (MODULAR DIAGNOSTIC SOFTWARE), в особенности программа MATS (предназначена для тестирования видеопамяти под Linux), позволяет уверенно определить причину неисправности.

MODS используется для трех основных целей:

  • Функциональная проверка чипа и компонентов печатной платы.
  • Анализ сбоев и отладка GPU и компонентов печатной платы.
  • Архитектурная проверка.

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

Версия MODS/MATS
Поддерживаемые видеокарты
367.xxx

GTX 1000 и ниже

400.xxx

RTX 2000 и ниже (например, GTX 16XX)

455.xxx

RTX 3000 и ниже

Для старых видеокарт может понадобиться комплекс версии 295 или другой, в соответствии с данными из таблицы соответствия видеокарт Nvidia и версий программного комплекса MODS:

MODS работает на базе операционной системы Tiny Core Linux, поэтому для полного раскрытия возможностей комплекса стоит изучить синтаксис ее команд.

В большинстве случаев для запуска тестирования видеокарт и расшифровки полученных результатов достаточно внимательно изучить соответствующее руководство MODULAR DIAGNOSTIC SOFTWARE FOR X.X DIAGNOSTICS, которое обычно находится на носителе MODS в каталоге home (файл mods.pdf):

В нем подробно описывается порядок проведения и расшифровки результатов тестирования видеокарт Nvidia.

К наиболее важным тестам MODS можно отнести (согласно руководству для MODS R367_v02, раздел 4.1, таблица 5):

  • Тест номер 2 — GLStress на базе OpenGL.
  • Тест номер 73 —HeatStressTest GPU.
  • Тест номер 78 — CheckFanSanity (для проверки работоспособности системы охлаждения).
  • Тест номер 92 — GLStressPulse 3D (версия GLStress с пониженным разрешением экрана, паузами между пакетами кадров, чтобы создать нагрузку на подсистему питания с 50% рабочим циклом. Фактическая частота работы ШИМ-контроллера GPU варьируется в зависимости от конкретной платы).
  • Тест номер 94 — NewWfMats (тест VRAM).
  • Тест номер 143 — NewCudaMats, проверка framebuffer памяти.
  • Тест номер 178 — WfMatsBgStress (Memory Test с нагрузкой (WfMats и GLStress на 3D-движке). Это гибридный тест, нагружающий интерфейс кадрового буфера, рекомендуется для проверки VRAM.
  • Тест номер 187 — CudaMatsShmoo, проверка максимально возможной частоты памяти.
  • Тест номер 275 — BoostBaseClockTest (Тест на основе GLStress для достижения целевых значений температуры, тактовой частоты, напряжения и скорости вращения вентилятора).

Для запуска теста, например, номер 275 (для проверки температуры, частоты, вольтажа и скорости вращения вентиляторов видеокарты) может использоваться команда:

  ./mods gputest.js -test 275 -no_gold -adc_cal_check_ignore

По умолчанию результаты выполнения диагностики MODS регистрируются в файле журнала mods.log, например:

MODS start: Sun Jun 22 21:42:03 2025 
Command Line : gputest.js -test 275 -no_gold -adc_cal_check_ignore 
CPU
...
Version
MODS           : 520.249
MLE Mode       : 0
System
 ...
Error 000000000818 : Gpu.ShutDown Mods detected an assertion failure [0.049 seconds]
Error Code = 000000000541 (NVRM Detected memory error)
...

Как расшифровать код ошибки, который выдает диагностический комплекс MODS?

В примере, приведенном выше, лог содержит информацию о двух ошибках:

  Error 000000000818 Gpu.ShutDown Mods detected an assertion failure
  Error Code = 000000000541 (NVRM Detected memory error)

Оба кода свидетельствуют о наличиии проблем с VRAM. Ошибка 818 может свидетельствовать о неисправности памяти (90%) или GPU (10% случаев), BIOS или слишком большой рабочей частоте микросхем памяти. Аналогичные проблемы приводят к возникновению ошибок с кодами 139, 187, 194.

Таблица с информацией о наиболее распространенных кодах ошибок в MATS:

На проблемы с GPU указывают коды ошибок 083, 095, 097, 074, 154, 155. 229, 236, 272, 489, 582, 606, 666. 855.

Ошибки с кодами 270 и 281 обычно связаны с проблемами с вентиляторами.

Коды ошибок с номерами 143 и 665 указывают на проблемы с шиной PCI-E.

Ошибки с номерами 273, 280 и 778 свидетельствуют о проблемах с питанием.

Ошибка номер 087 является багом системы TinyLinux, после ее появления следует повторить тест.

Ошибка с кодом 578 указывает на проблемы с интерфейсом ввода-вывода видеокарты.

Некоторая информация о номерах ошибок имеется в разделе 11.0 руководства MODS:

Согласно документации на старые версии MODS, при тестировании видеокарт Nvidia выдаются коды ошибок, состоящие из 12 цифр, обозначающиеся комбинацией букв SVVVPPTTTEEE.

Их описание можно найти в разделе TEST RESULT (подраздел 5.1) руководства MODS:

  • первая цифра (кодируется буквой S) — может иметь следующие значения: 0 — отдельный тест, 1 — jump в тесте номер 145 (PerfSwitch), 2 — выдача данных о производительности по кривой VF (voltage-frequency) в тесте номер 145, 3 — NVVDD Stress (стрессовый тест фаз питания ядра видеокарты), 4 — для PwmMode, 5 — для PerfPunish;
  • следующие 3 цифры (кодируются буквами VVV) связаны с кривой зависимости частоты ядра от вольтажа GPU (VF Index). Точка, в которой происходит сбой обозначается 1, либо принимает значение 0 для неизвестного VF индекса;
  • 2 цифры (буквы PP) — обозначают номер состояния Pstate видеокарты;
  • 3 цифры (TTT) — номер теста согласно руководству MODS;
  • последние три цифры (код EEE) — обозначают номер ошибки.

Например, код ошибки 201208010083 расшифровывается так: тест производительности Perf Sweep (построение графика зависмости максимальной частоты GPU от приложенного к нему напряжения), VF точка 11, состояние видеокарты pstate номер 8, производился тест номер 10 (класс 05f), выявлена ошибка 83 (Golden Value Miscompare).

Согласно руководству MODS версии 3.67 в последних версиях диагностического комплекса коды ошибок кодируются также 12 цифрами, но немного иначе:

Первая цифра может обозначать:

  • a. диагностика видеокарты производилась при статическом значении вольтажа и частоты
  • b. при тестировании производилось переключение между точками перегиба (inflection points) на кривой V-F
  • c. характеристика V-F кривой

Следующие три цифры связаны с Pstate:

a. Представление вида Pstate:

0 – explicit

1 – min

2 – max

3 – TDP (Thermal Design Point)

4 – TURBO (aka Boost or TurboBoost)

5 – intersect – voltage

6 – intersect – voltage/frequency point

7 – intersect – PState

8 – intersect – VPState

9 – multiple intersect parameters

b. Intersect Rail:

0 – Not at intersect

1 – NVVDD

2 – NVVDDS

c. Значение Master Clock Domain использующееся для Intersect:

0 – Not at intersect

1 – At intersect but not applicable

2 – gpcclk

3 – dispclk

4 – dramclk

Например, код ошибки 271108119083 обозначает: CudaRandom, тест номер 119, ошибка в функции PerfSweep теста номер 145 в связи с проблемами по цепи питания NVVDD, в состоянии p-state 8 с ощибкой номер 83, которая обозначает Golden Value Miscompare.

Поиск неисправного канала памяти видеокарт Nvidia в программе MATS

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

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

Для проверки программой mats первых 20 мегабайт видеопамяти с записью результатов в файл mats.log может использоваться команда:

  ./mats -e 20 -logfile mats.log

Добавление ключа

  -n 1 

позволяет запустить проверку на второй видеокарте, производя вывод на экран на основной, заведомо исправной.

MATS выдает адрес каналов памяти, по которым имеются ошибки, например:

  mats version 367.38. Testing GP104 with 20 MB of memory starting with 0 MB.
  
Errors found. Use -matsinfo for details.
This message will only appear once.
SUBPART RANK0 RD ERR RANK0 WR ERR UNKNOWN ERR
------------- ------------- ------------- ------------
FBIOA[ 31: 0] 0 0 0
FBIOA[ 63: 32] 0 0 0
FBIOB[ 31: 0] 0 0 0
FBIOB[ 63: 32] 0 0 0
FBIOC[ 31: 0] 0 33 0
FBIOC[ 63: 32] 0 0 0
FBIOD[ 31: 0] 0 123456 0
FBIOD[ 63: 32] 0 0 0

Rank 0 Failing bits:
C000 C001 C002 C003 C004 C005 C006 C007 C008 C009 C010 C011 C012 C013 C014 C015
D000 D001 D002 D003 D004 D005 D006 D007 D016 D017 D018 D019 D020 D021 D022 D023

где буквы FBIOA обозначают номер тестируемого канала/банки памяти.

В каждом канале работает по две микросхемы с номерами А1 и А0 и так далее. В примере, приведенном выше, имеются ошибки в канале FBIOD, линия обмена с чипом D1.

Ошибки mats могут возникать из-за неисправности чипов памяти, контроллера памяти GPU, плохих (отсутствующих) контактов по линиям приема-передачи данных, отвале GPU/чипов памяти, неправильно выставленных страпах, а также при проблемах по линиям питания памяти/контроллера памяти (несоответствие вольтажа, большие пульсации и т. д.).

При поиске сбойного канала памяти на платах видеокарт Nvidia следует считать от правого нижнего угла GPU (если смотреть на печатную плату со стороны чипа, при этом разъем PCI_E находится снизу, выходы карты — слева) против часовой стрелки (начиная с А1, затем А0.

Чипы памяти считаются против часовой стрелки, начиная с A1, A0, B1, B0 и так далее:

Так как утилита MATS по умолчанию проверяет работспособность памяти только на базовой частоте памяти (обычно это 300 МГц), то выявить проблемы, возникающие при поднятии частоты до рабочей, она выявить не может. Она полезна для выявления обрывов сигнальных линий, появляющихся при плохой пропайке контактов видеопроцессора (серых пятаках), наличии критических проблем с контроллером памяти или чипом памяти.

При прохождении теста MATS с результатом FAIL и общим количеством ошибок, равным 32 или 33, нужно запустить тестирование повторно с аргументом -no_scan_out:

  ./mats -e 20 -no_scan_out

чтобы утилита не считала сбойной область, отвечающую за вывод изображения.

Подобное безобразие может проявится если используется вывод изображения с проверямой видеокарты на выходы HDMI или VGA.

При ремонте видеокарт с выявленными проблемами по какому-то из каналов памяти следует выпаять неисправные микросхемы и диодной прозвонкой проверить сигнальные линии, а также проверить сопротивление по линиям питания памяти (подробнее в статье О проверке памяти GDDR5 на видеокартах):

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *