MetaX-Tech Developer Forum 论坛首页
  • 沐曦开发者
search
Sign in

rn_99

  • Members
  • Joined 2026年9月23日
  • message 帖子
  • forum 主题
  • favorite 关注者
  • favorite_border Follows
  • person_outline 详细信息

rn_99 has posted 2 messages.

  • See post chevron_right
    rn_99
    Members
    更改GPU MaxPayload/ MaxReadReq = 128 bytes后,不生效 已解决 2026年9月24日 14:45

    感谢回复。针对我提交的两个现象可能有所误解,且其中"MPS / MRRS 出厂已调至最优"这一表述与 PCIe 协议规范的定义不符。
    一、MPS 与 MRRS 是 PCIe 协议规范定义的寄存器域
    二者均位于 PCI Express Capability 的 Device Control Register(相对 capability 起始偏移 08h),定义见 PCI Express Base Specification §7.5.3.4:

    位域 名称 编码
    bits [2:0] Max_Payload_Size (MPS) 000b=128B、001b=256B、010b=512B、011b=1024B
    bits [7:5] Max_Read_Request_Size (MRRS) 000b=128B、001b=256B、010b=512B、011b=1024B、100b=2048B、101b=4096B
    其取值上限由 Device Capabilities Register (§7.5.3.3) 的 Max_Payload_Size_Supported 字段给出,属于硬件能力上报,由软件(操作系统 / 驱动 / 管理程序)在枚举阶段决定实际写多少。也就是说,这两个值是由主机侧软件在运行时配置的协议参数,而非芯片厂商在产品出厂时可以固化并宣称"最优"的私有调优项。
    MRRS 仅约束本 Function 发出的读请求长度上限,规范中不存在"对端不支持某 MRRS"的情形,改小只会降低吞吐、不会破坏协议正确性。
    故 MRRS=128 在任何 PCIe 设备上都是合法且必须被接受的配置。 若写入后被自动回滚,只能说明有代码路径在重写该寄存器

  • See post chevron_right
    rn_99
    Members
    更改GPU MaxPayload/ MaxReadReq = 128 bytes后,不生效 已解决 2026年9月24日 14:12

    环境:
    Intel Avenucity-GNRAP
    root@switch-ArcherCity:/home/switch# uname -a
    Linux switch-ArcherCity 5.15.0-105-generic #115-Ubuntu SMP Mon Apr 15 09:52:04 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
    root@switch-ArcherCity:/home/switch# mx-smi
    mx-smi version: 2.3.1

    =================== MetaX System Management Interface Log ===================
    Timestamp : Fri Sep 25 01:37:05 2026

    Attached GPUs : 1
    +---------------------------------------------------------------------------------+
    | MX-SMI 2.3.1 Kernel Mode Driver Version: 3.8.30 |
    | MACA Version: 3.7.0.38 BIOS Version: 1.33.5.0 |
    |------------------+-----------------+---------------------+----------------------|
    | Board Name | GPU Persist-M | Bus-id | GPU-Util sGPU-M |
    | Pwr:Usage/Cap | Temp Perf | Memory-Usage | GPU-State |
    |==================+=================+=====================+======================|
    | 0 MetaX C500 | 0 Off | 0000:63:00.0 | 0% Disabled |
    | 35W / 350W | 44C P0 | 858/65536 MiB | Available |
    +------------------+-----------------+---------------------+----------------------+

    +---------------------------------------------------------------------------------+
    | Process: |
    | GPU PID Process Name GPU Memory |
    | Usage(MiB) |
    |=================================================================================|
    | no process found |
    +---------------------------------------------------------------------------------+

    问题描述:
    现象一:MPS / MRRS 修改后自动回滚,配置不生效
    将 GPU 的 PCIe Max Payload Size (MPS) 从默认 256B 改为 128B、Max Read Request Size (MRRS) 从默认 4096B 改为 128B 后,配置无法保持。

    写入操作本身返回成功,无报错;
    进行GPU相关performance测试, GPU 驱动重新加载后> 再次查询,两项值已自动恢复为默认的 256 / 4096;
    重复写入多次,现象一致,未出现任何一次成功保持的情况;
    Default:
    DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
    RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
    MaxPayload 256 bytes, MaxReadReq 4096 bytes
    Change MPS/MRRS=128
    DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
    RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
    MaxPayload 128 bytes, MaxReadReq 128 bytes
    DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-

    修改方式:setpci
    现象二:
    在完成上述 MPS/MRRS 修改后,运行性能测试,服务器发生整机重启(100%)。

    C500 上修改 PCIe MPS / MRRS 的官方支持方法和工具是什么?setpci 直写是否被支持?
    GPU 驱动是否会在运行时主动重写 Device Control 寄存器?是否有配置项或环境变量可以让外部设定生效并保持?
    C500 支持的 MPS 取值范围是哪些?是否强制要求 ≥ 256b?128b 是否为非法/不受支持配置?

  • 沐曦开发者论坛
powered by misago