迅维网

查看: 21327|回复: 7
打印 上一主题 下一主题

使用 MODS 诊断复合体的 MATS 程序测试 nvidia 显卡的内存

  [复制链接]
跳转到指定楼层
1#
发表于 2022-6-4 11:06:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 广东深圳 来自 广东深圳

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
操作和维修大量显卡时,不可避免地会出现需要检查安装在视频加速器印刷电路板上的内存芯片的情况。
用于这些目的的一个非常方便的工具是带有 MATS 程序的 MODS 软件包(MOdular Diagnostic Suite 或 Modular Diagnostic Software),它允许您测试 Nvidia 视频卡的视频内存。
验证过程非常简单,包括使用可引导的 MODS 闪存驱动器加载,然后分析自动生成的 repot.txt 文件中的错误。如果需要,此实用程序可以在部署了所需环境的任何 Linux 计算机上使用。
本文讨论了创建和实际使用 NVIDIA 模块化诊断软件包中的 MATS 程序来检查显卡内存的过程。
什么是模块化诊断复合体 MODS 和 MATS 程序?
MODS 复合体是 NVIDIA 的专有实用软件,旨在使用 JavaScript 脚本诊断 NVIDIA 显卡。
MODS综合体旨在执行三个主要操作:
  • 检查低水平的芯片和主板性能;
  • 分析芯片和 GPU 电路板上发现的故障和问题;
  • 检查视频卡的架构。

MODS 复合体适用于 Linux 系列的操作系统,在 MacOSX 中,也有适用于 Windows 的版本。版本 290 之前的 MODS 版本可以在 DOS 下运行。

MATS 是来自 MODS 综合体的一个程序,用于测试 Nvidia 视频卡的内存。
它仅适用于具有必要二进制文件的 Linux 操作系统。MATS 有助于在视频卡上查找有问题的芯片,这些芯片通常表现为代码 10 或 43 的错误以及图像中的伪影:
Nvidia显卡的内存芯片出现故障时Windows任务管理器中通常出现的错误示例(此设备无法启动,代码10):
让我们仔细看看在运行 Linux 的计算机上以常规方式检查显卡的过程。
使用 MODS 诊断系统的 MATS 诊断程序创建可启动的 USB 闪存驱动器
带有 MODS 程序的 MATS 软件包可以在具有至少 4 GB RAM 的支持物理地址扩展 (PAE) 的 x86_64 或 aarch64 处理器的系统上运行。
要使用 MATS/MODS 测试程序创建可启动闪存驱动器,您需要:

  • 例如,从 Google Drive 下载带有 MATS 程序(mats.img 文件)的 MODS 图像:

  • 下载并安装用于写入工具的 Etcher 程序。[url]https://www.balena.io/etcher/[/url]
  • 将容量至少为 128 MB 的 USB 闪存驱动器连接到您的计算机。
  • 使用 balenaEtcher 程序将 MATS-MODS 映像写入闪存驱动器(存储在闪存驱动器上的所有数据都将被销毁,此闪存驱动器不会在 Windows 中打开。

其他合适的程序,如 Rufus,也可用于将映像部署到可引导的 USB 闪存驱动器。生成的闪存驱动器包含一个 ARCH Linux 操作系统的分发版,其中包含一个从 MODS 复合体自动加载的 MATS 程序,用于测试 VRAM。
要检查显卡内存芯片的性能,您需要从有问题显卡的计算机上的 MATS/MODS 闪存驱动器启动。
在测试显示器上不显示图像但被系统检测到的显卡的情况下,建议将 poweroff 命令添加到 runmats 配置文件(Mods 文件夹)的末尾。之后,电脑会在检查显存后自动关机,无需猜测检查过程何时结束。
使用 MODS 程序检查显卡内存芯片是否有错误
要使用 MATS-MODS 程序测试显存,您需要:

  • 在要安装被测显卡的主板的 BIOS 中预先设置,并在其上显示图像。
  • 将安装了 MATS-MODS 复合体的闪存驱动器插入将测试视频卡的计算机。最好将显示器连接到它,以便直观地控制验证过程。
  • 从 MATS-MODS 闪存驱动器启动,测试程序会自动启动,几分钟后会检查内存芯片:

并将结果写入 repot.txt 文件。
您可以通过运行以下命令查看扫描结果:
纳米报告.txt
如果您选择从集成的 Intel 卡而不是 Nvidia 选中的卡启动,程序会显示错误消息“无法识别此卡”,错误代码 00000003:
如果被测试的视频加速器没有在显示器上显示图像,但至少初始化了它(这可以通过在打开显示器后短时间打开显示器来看到),那么程序将能够对其进行测试。
如果使用常规的可启动闪存驱动器和默认设置,则 MATS/MODS 程序会测试 20 MB 的视频内存,这通常足以检测出故障芯片。
如有必要,您可以在 Mods 文件夹的 runmats 文件中更改正在测试的视频内存量。设置显存测试量的参数在以下行中:
“$LOCATION/$PKGNAME/垫子”-e 20
其中 20 是加载时程序测试的显存量。
同时,应该记住,被检查的内存量的增加会成比例地延长测试时间。
如何分析内存测试程序中获得的结果
内存测试结果保存到 mods 文件夹下的 repot.txt 文件中:
通过 MODS 包的 MATS 程序验证有问题的 Nvidia GTX 1080 显卡期间获得的结果示例,版本 367.38(repot.txt 文件中的信息表明 FBIOC [31] 中的小问题(33 个错误): 0] 内存库):
垫子版本 367.38。使用 20 MB 内存(从 0 MB 开始)测试 GP104。发现错误。使用 -matsinfo 了解详细信息。此消息只会出现一次。子部分 RANK0 RD ERR RANK0 WR ERR UNKNOWN ERR------------- ------------- ------------- ------------ -FBIOA[31:0] 0 0 0FBIOA[63:32] 0 0 0FBIOB[31:0] 0 0 0FBIOB[63:32] 0 0 0FBIOC[31:0] 0 33 0FBIOC[63:32] 0 0 0FBIOD[31:0] 0 0 0FBIOD[63:32] 0 0 0等级 0 失败位:C000 C001 C002 C003 C004 C005 C006 C007 C008 C009 C010 C011 C012 C013 C014 C015读取错误计数:0写入错误计数:33未知错误计数:0位 RANK0 写 RANK0 读 未知--- ----------- ---------- --------C000 2 0 0C000 4 0 0C000 4 0 0...地址预期实际重读 1 重读 2 故障位 TPSEIB ROW COL---------- -------- -------- -------- -------- -------- ------ ---- ---0000002638 00000000 00000763 00000763 00000763 00000763 WC0046 0000 026...00000025f8 ffffffff ffff0754 ffff0754 ffff0754 0000f8ab WC0046 0000 05e如果您的第一个 MBof FB 失败,请尝试选项 -no_scan_out错误代码 = 00000001
如果您得到的结果表明存在“损坏”的内存条,则需要确定其在显卡板上的位置并更换为新的。不建议重复使用相同的微电路,尽管是重新焊球的微电路,因为它会退化,而且半导体晶体很可能落后于存储器微电路基板。
如果显存没有问题,报告文件应该包含表明没有错误的信息,例如:
垫子版本 400.184。使用 20 MB 内存(从 0 MB 开始)测试 TU106。读取错误计数:0写入错误计数:0未知错误计数:0=== 子分区导致的内存错误 ===子部分 读取错误 写入错误 未知错误-------- ------------ ------------ ------------联邦调查局0 0 0 0FBIOA1 0 0 0FBIOB0 0 0 0FBIOB1 0 0 0联邦调查局0 0 0 0FBIOC1 0 0 0FBIOD0 0 0 0FBIOD1 0 0 0失败位:没有任何错误代码 = 00000000(正常)
出于测试目的,最好使用单独的可启动闪存驱动器,但如果您愿意,您可以不制作特殊的可启动闪存驱动器,而是在部署了 MODS 内核的 Linux 计算机上运行 Mats。
如何判断故障显存芯片的位置?
在视频卡上,内存芯片的串行放置通常是逆时针使用的(如果您从视频处理器的侧面看视频卡,而 PCI-E 连接器在底部)。
在 Nvidia GeForce RTX 2070 视频卡(带有选择的 TU106-400A-A1 视频处理器)上放置内存芯片的示例:
注意:Nvidia Turing 系列芯片名称中的字母 A 表示这是一款选择芯片,可以在不增加电源电压的情况下稳定工作在更高的频率。
在使用 MATS/MODS 程序检查显卡时,您需要考虑到它只支持 Nvidia 显卡,而不是所有型号。
/mats/mods/367.38.1/mods.pdf 文件中描述了具体的发布功能和错误代码,其中 367.38.1 是正在使用的程序的版本。
可以使用脚本或使用中文程序 TserverLite 检查 AMD 视频卡。
在运行替代 Linux 发行版的计算机上运行 Mats 程序
检查不是来自常规可引导闪存驱动器的视频卡会带来许多问题,因此不建议使用。对于该实用程序的完整操作,模块诊断套件包中的驱动程序的功能是必需的。
要在 Linux 上运行 Mats 程序,首先需要安装必要的软件包。这是由 mods/release 文件夹中的脚本完成的(不要忘记分配必要的权限来执行它):
install_module.sh --安装
从程序目录的 Linux 命令行启动 mats 程序是使用以下命令完成的:
./runmats

评分

参与人数 1下载分 +2 +2 收起 理由
A721326822 + 2 + 2

查看全部评分

推荐
发表于 2022-8-6 10:16:19 | 只看该作者 来自: 辽宁沈阳 来自 辽宁沈阳
一.MODS描述
MODS是一个强大的软件程序,允许用户测试NVIDIA硬件
使用MODS出于三个主要目的:
*芯片和电路板功能验证
*芯片和电路板故障分析和调试
*架构验证
mods gputest.js –mfg      *用于制造测试
mods gputest.js –mfg2     *用于Gen2平台制造测试
mods gputest.js –oqa      *用于OEM出厂测试
*这两个测试选项之间的区别在于 -mfg选项运行全套测试一系列的测试-oqa测试是一个压力更小、速度更快的测试套件。
*版本对应367.x   mfg,   400.x   short,  455.x  oqa


二.gputest.js脚本描述
Gputest.js是MODS程序的衍生脚本
-?        显示帮助
-bgstress        启动背景3d压力任务
-dramclk xxxx        设置DRAM时钟频率*Mhz*
-dramclk_percent X        将dramclk设置为默认值的X%。*50<=X<=150*
-fan_speed X        强制当前gpu设备风扇达到此最大值的%
- fullpower        全功率模式
-gpc2clk XX        设置GPC时钟频率*Mhz*
-gpc2clk_percent X        将GPC设置为默认值的X%。*50<=X<=150*
-list_tests        列出所有MODS测试及其测试编号
-matsinfo        如果mats衍生测试失败,显示更多信息
-run_on_error        如果发生错误,继续运行
-skip        跳过指定测试
-skip_rm_state_init        跳过RM初始化,只执行VBIOS参数
-test        仅运行指定的测试
-testforce        运行并强制执行指定的测试
*例:./mods gputest.js –mfg –fullpwer –dramclk 3000 –gpc2clk1200 –test 118 –run_on_error –matsinfo
    Mfg测试,全功率模式、显存频率3000Mhz核心频率1200Mhz、测试118项、错误也继续执行,结果输出至report.txt


三.制造测试中代码定义
3        MatsTest                        *Mats测试        同Mats,–matsinfo可与此一起使用
19        FastMatsTest                  *Mats测试        与Mats类似,使用GPU硬件写入而不是CPU
70        PatternTest                    *Mats测试        这是调用Mats测试的另一种方法,此版本使用苹果公司提供的一种内存模式
94        NewWfMats                    *Mats测试        同Mats带宽报告
98        CudaStress                    *GPU测试        GPU负载增加,CPU负载降低
123        NewWfMatsBus Test       *Mats测试        显存一致性
143        NewCudaMats            *Mats测试        同Mats
144        CudaMatsPatCom bi       *Mats测试        同Mats,高负载
157        NewWfMatsMem ToMem   *Mats测试        同94,
174        CheckPwrSensor           *电源功率        电源传感器是否匹配
*例:./mods gputest.js –mfg –test 3 –matsinfo
     367.xx版本测试mfg脚本中第三项并输出日志到report.txt
./mods gputest.js –short –test 118 –run_on_error
     400.xx版本118项测试


四、MATS描述
MATS是在Linux上进行独立内存测试,在某些情况下,由于边缘帧缓冲,MODS无法初始化GPU接口定时或内存缺陷。在这种情况下,可以尝试运行该扩展程序。要运行MATS,必须将GPU作为主引导。该实用程序将对帧缓冲区进行初步测试,实用程序仅适用于Linux。独立MATS生成一个名为“report.txt”的输出文件,其中包含有关哪些帧缓冲区位失败。通常不需要测试整个帧缓冲区来收集足够的错误统计信息。用户可以运行“mats–c 1”,它将测试分布的1%内存在整个帧缓冲区中。这很有用,因为它将在很短的时间内完成并且仍然在report.txt文件中生成有意义的调试信息。
./mats –e 20                 *测试20MB显存
./mats –c 20                 *测试20%显存
./mats –n 1 –e 20             *测试序号1显卡20MB显存
./mats -3d_card –e 20         *测试3d显卡20MB显存
./mats –e 20 >20.txt           *测试20MB显存输出日志文件至20.txt


五、部分命令
传说中的diag:
./mods gputest.js -short -pstate 0.max -matsinfo -test 178 -test 118 -test 143 -test 242 -test 19 -test 166 -dramclk 7500 -loops 3

400版本图灵核心diag指令:
./mods gputest.js -short -pstate 0.max -test 242 -test 94 -adc_cal_check_ignore -matsinfo
忽略 ADC 校准保险丝修订检查
./mods gputest.js -mfg -test 19 -floorsweep fbio_disable:0x3e:fbp_disable:0x3e -run_on_error -pstate 0.max -matsinfo -test 118                     ----只保留A通道测试
./mods gputest.js -mfg -test 19 -floorsweep fbio_disable:0x3d:fbp_disable:0x3d -run_on_error -pstate 0.max -matsinfo -test 118                     ----只保留B通道测试
./mods gputest.js -mfg -test 19 -floorsweep fbio_disable:0x3b:fbp_disable:0x3b -run_on_error -pstate 0.max -matsinfo -test 118                     ----只保留C通道测试
./mods gputest.js -mfg -test 19 -floorsweep fbio_disable:0x37:fbp_disable:0x37 -run_on_error -pstate 0.max -matsinfo -test 118                     ----只保留D通道测试
./mods gputest.js -mfg -test 19 -floorsweep fbio_disable:0x2f:fbp_disable:0x2f -run_on_error -pstate 0.max -matsinfo -test 118                     ----只保留E通道测试
./mods gputest.js -mfg -test 19 -floorsweep fbio_disable:0x1f:fbp_disable:0x1f -run_on_error -pstate 0.max -matsinfo -test 118                     ----只保留F通道测试

-floorsweep fbio_disable:0x01:fbp_disable:0x01   ----  屏蔽A通道

-floorsweep fbio_disable:0x02:fbp_disable:0x02   ----  屏蔽B通道

-floorsweep fbio_disable:0x03:fbp_disable:0x03   ----  屏蔽C通道

-floorsweep fbio_disable:0x04:fbp_disable:0x04   ----  屏蔽D通道

-floorsweep fbio_disable:0x05:fbp_disable:0x05   ----  屏蔽E通道

-floorsweep fbio_disable:0x06:fbp_disable:0x06   ----  屏蔽F通道

回复 支持 3 反对 0

使用道具 举报

2#
发表于 2022-6-5 12:28:25 | 只看该作者 来自: 美国 来自 美国
联邦调查局都出来了,自己不读一下吗?

回复 支持 反对

使用道具 举报

3#
发表于 2022-6-15 16:26:08 | 只看该作者 来自: 安徽合肥 来自 安徽合肥
感谢分享。楼主辛苦

回复 支持 反对

使用道具 举报

4#
发表于 2022-8-6 10:14:32 | 只看该作者 来自: 辽宁沈阳 来自 辽宁沈阳
NVIDIA,Mods命令定义.docx (18.79 KB, 下载次数: 112)

回复 支持 反对

使用道具 举报

6#
发表于 2022-9-23 22:19:54 | 只看该作者 来自: 中国 来自 中国
给力这么详尽的技术贴真好

回复 支持 反对

使用道具 举报

7#
发表于 2022-9-24 09:30:04 | 只看该作者 来自: 广东广州 来自 广东广州
机翻的吧。mats其实很好用,就是黑屏的时候也可以用。

回复 支持 反对

使用道具 举报

头像被屏蔽
8#
发表于 2022-11-16 06:17:57 | 只看该作者 来自: 欧洲 来自 欧洲
Best article I've read on mods so far. Thank you very, very much.

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复