MATS/MODS инструкция
Данный пост написан, чтобы скомпоновать основные тезисы по использованию программного комплекса для тестирования видеопамяти на видеокартах nVidia в одном месте, а не лазить каждый раз в мануал, заметки или на форум, сами знаете какой.
Предполагается, что вы имеете необходимый дистрибутив, понимаете, что для разных поколений видеокарт используются разные версии софта, знаете как устроена видеокарта и что наличие ошибок по видеопамяти не значит, что неисправна сама память.
MATS
Данный тест запускается на базовой частоте памяти 300мгц.
Не рекомендуется запускать тестирование больше 100Мб памяти, т.к. возможно ложное отображение ошибок по всем каналам.
Если видеокарта выдает изображение
./mats -e 20
Запускается тест 20 мегабайт, начиная с 0 мб
./mats -b 512 -e 532
Запускается тест 20 мегабайт, начиная с 512 мб
./mats -с 1
Запускается тест 1% памяти.
При прохождении теста с результатом FAIL и общим количеством ошибок = 32 или 33, нужно запустить тестирование повторно с аргументом -no_scan_out, чтобы утилита не считала сбойной область, отвечающую за вывод изображения
Если видеокарта не выдает изображение
Первый вариант - тестируем образом с автозагрузкой.
Второй вариант - выводим изображение со встроенной графики, либо устанавливаем тестируемую карту в дополнительный разъем PCI-Express (в том числе через райзер)
Если изображение выводится не с тестируемой карты, предварительно требуется воспроизвести команду:
./mods gputest.js -oqa -skip_rm_state_init -notest (если при вводе следующей команды в отчете будут ошибки по всем каналам на чтение и запись, повторите данную команду с ключом -no_gold)
Далее, стандартные команды MATS с запуском теста по индексу устройства, либо с аргументом -3d_card
./mats -n 01 -e 20
Запускается тестирование карты по индексу 01, например, если изображение берется со встроенной графики (индекс 0). Допускается указание индекса без 0, т.е. аргументы -n 1 и -n 01 равнозначные.
./mats -3d_card -e 20
В результате, по окончанию тестирования, мы увидим зелёненькую надпись PASS, означающую, что тестирование не выявило проблем, либо красненькую FAIL, соответственно, тест завершился неудачно.
По умолчанию, результаты теста записываются в файл report.txt. Посмотреть отчет можно через встроенный текстовый редактор, вызвав его командой nano report.txt
Также можно изменить файл отчета аргументом
-logfile filename.txt
Ещё раз, тестирование не выявляет неисправные чипы памяти, а лишь указывает на канал, в котором есть проблемы. Причиной могут быть, как неисправные чипы памяти, так и неисправный ГПУ, либо проблемы в их связи (некачественная пайка, дефект текстолита).
MODS
Когда MATS проходит тест, но при этом имеются дефекты при работе видеокарты, следует провести более ресурсоемкое тестирование с помощью MODS. Данная утилита позволяет изменять частоты, запускать более ста разных тестов или зацикливать тестирование.
Синтаксис для работы следующий:
./mods [options] [file] [JavaScript arguments]
например:
./mods –d –C gputest.js –mfg –run_on_error
где -d и -С - это аргументы для MODS, а -mfg и -run_on_error - аргументы для скрипта gputest.js
Аргументы для MODS в большинстве случаев не используются, но иногда бывает полезно вывести общую информацию о карте: биосе, ГПУ (VID, DID, SKU), памяти, частотах, напряжении и т.д. без запуска тестов. Для этого запустите mods с аргументом -s
./mods –s
Основной скрипт, предназначенный для тестирования - gputest.js, имеющий различные варианты запуска, в зависимости от используемых аргументов и варианта тестирования.
./mods gputest.js -mfg (for CEM testing)
./mods gputest.js -oqa (for OEM outgoing QA testing)
Разница между этими двумя вариантами тестирования заключается в том, что опция -mfg запускает полный набор тестов. Тест -oqa - это более лёгкий и быстрый набор тестов, оптимизированный для ускорения тестирования.
В целях диагностики подходят оба варианта тестирования. Один из вариантов запуска
./mods gputest.js -oqa -old_gold -test 94 -loops 10 -fan_speed 90 -dramclk_percent 119 -ignore_fatal_errors -run_on_error -matsinfo -mats_cov 20 -pte_random
-oqa - вариант тестирования, другой вариант -mfg для mods 400+ -long
-old_gold - использование файла с т.н. золотыми (правильными, эталонными) значениями контрольных сумм производимых вычислений. Другие варианты: -no_gold - не использовать -goldenfile <имя файла> - указать конкретный файл. Для использования стандартного голд файла - данный параметр не используется, при условии наличия данного файла в директории с тестом. Если данный файл отсутствует - получим ошибку heatstresstest is not define (необязательный параметр)
-test 94 - запуск выбранного теста *
-loops 10 - цикл из 10 запусков (необязательный параметр)
-fan_speed 90 - скорость вращения вентиляторов в %. Для работы вентиляторов в штатном режиме - данный параметр не используется (необязательный параметр)
-dramclk_percent 119 - частота памяти в %, другой вариант использования: -dramclk Х, где Х - частота в мегагерцах. Если параметр указан не будет - тест будет произведен на рабочей частоте - 100%
-ignore_fatal_errors - игнорировать ошибки PEX (желательно использовать)
-run_on_error - продолжение теста при обнаружении ошибок (желательно использовать)
-matsinfo - при обнаружении ошибок вывод информации в отчет. Если не будет указан данный параметр, при наличии ошибок по памяти - в отчёте будет строка bad memory без указания каналов с ошибками. Для MODS 400+ данный аргумент используется по умолчанию (т.е. вручную можно не прописывать)
-mats_cov 20 - процент охвата памяти (от 0 до 100), по умолчанию 10. (необязательный параметр)
-pte_random - распределение системной памяти в произвольном порядке (необязательный параметр)
-gpcclk X - установить частоту GPU, где X - частота в мегагерцах
Наиболее популярные тесты
Mats тесты используют данные передаваемые процессором через PCI-E; FastMats, WfMats - используют движок 2D; RmStress, GLStress - 3D
2 - GLStress
3 - MatsTest
19 - FastMatsTest
73 - HeatStressTest (RmStress)
94 - NewWfMats - наиболее популярный ресурсоёмкий тест памяти.
95 - GLStressFbPulse - хорош для дефектовки проблем по питанию
112 - CudaMarchTest
127 - CudaColumnTest - долгий и результативный
143 - NewCudaMatsTest
166 - GLStressZ
178 - WfMatsBgStress - один из самых ресурсоемких, фоном запускается тест 2 - GLStress
242 - NewCudaMatsRandom
243 - NewCudaMatsStress, включает тест 200 - CudaLinpackSgemm
355 - NewCudaMatsRandomPulse
RTX3000 на GDDR6X
При наличии явных ошибок по памяти (либо обрывов по дата-линиям), сориентироваться по каналу с ошибками можно при инициализации карты (запускать со встройки или второй картой) через mods используя информацию training status
./mods gputest.js - oqa -skip_rm_state_init -notest
В ответ получим карту каналов со статусом
0x00000000 - ошибок нет
0x00000002 - ошибки в младшем канале x0
0x00000008 - ошибки в старшем канале x1
0x0000000A - ошибки по всему каналу
Посмотреть отчет MODS можно командой nano mods.log
Отключение каналов памяти
Бывают случаи, когда карта проходит тест MATS, но MODS не запускается, либо после запуска черный экран, в Windows также при загрузке драйверов черный или синий экран. Для дефектовки можно попробовать выявить сбойный канал перебором.
Данная процедура актуальная для версий MODS 400+
Тестируемая карта должна быть установлена второй, либо тестироваться со встройки, иначе после запуска теста получим черный экран (отключение видеовыхода) до перезагрузки ПК
./mods gputest.js -run_on_error -notest -floorsweep fbio_disable:0x01:fbp_disable:0x01
Отключение конкретного канала
A -floorsweep fbio_disable:0x01:fbp_disable:0x01
B -floorsweep fbio_disable:0x02:fbp_disable:0x02
C -floorsweep fbio_disable:0x04:fbp_disable:0x04
D -floorsweep fbio_disable:0x08:fbp_disable:0x08
E -floorsweep fbio_disable:0x10:fbp_disable:0x10
F -floorsweep fbio_disable:0x20:fbp_disable:0x20
Отключение всех каналов кроме
A -floorsweep fbio_disable:0x3E:fbp_disable:0x3E
B -floorsweep fbio_disable:0x3D:fbp_disable:0x3D
C -floorsweep fbio_disable:0x3B:fbp_disable:0x3B
D -floorsweep fbio_disable:0x37:fbp_disable:0x37
E -floorsweep fbio_disable:0x2F:fbp_disable:0x2F
F -floorsweep fbio_disable:0x1F:fbp_disable:0x1F
A/B -floorsweep fbio_disable:0x3C:fbp_disable:0x3C
C/D -floorsweep fbio_disable:0x33:fbp_disable:0x33
E/F -floorsweep fbio_disable:0x0F:fbp_disable:0x0F
Eсли карта уже имеет отключенный канал памяти (например RTX3080 10G), то следует в т.ч. отключать отсутствующий канал. Скрипт коллеги
Ошибки и их интерпретация
Отчет mats выглядит примерно следующим образом. Разница будет в количестве каналов памяти, в зависимости от видеокарты.
Поиск проблемного канала у NVIDIA
Ошибки mods
Не являются неисправностями видеокарты
stored CRC/Checksum not found
user aborted the script
PCI Express bus error
I2C device not found
heatstresstest is not define
unexpected device interrupts - добавить аргумент -ignore_unexpected_interrupts
Замечания/предложения > @notebook116
Подписывайся на канал, чтобы не потерять статью: Группа в тележке
Продолжение следует...