R5350 G6服务器 PCIE 配置方案为pcie switch 串联 配置8张RTX PRO 6000D ,在HDM中可以正常识别,系统为Ubuntu24.04.2 LTS 进入系统后lspci |grep -i nvidia 可以识别到8张GPU卡,安装完驱动后nVidia -smi 只能显示7张,查看demsg显示资源分配不足,在bios中查找mmio没有任何输出,ctrl+shift+F8后进入隐藏bios 设置也是不行 PFMIOO 64 bit resources padding 最大8G 设置后还是之前一样的显示,后更换系统windows 也是和Ubuntu一样的现象



(0)
最佳答案
根据你描述的现象(lspci 能识别 8 张卡但驱动只加载 7 张,dmesg 报资源分配不足),核心问题基本可以定位在 PCIe 地址空间(MMIO / BAR)资源耗尽上。RTX PRO 6000D 单卡显存高达 84GB,8 张卡所需的 64 位 BAR 地址空间非常可观,如果 BIOS 没有正确开启大地址空间分配,就会出现这种“硬件在,但驱动加载不了”的情况。
你之前尝试的 PFMMIO 64 bit resources padding 可能不是最关键的那个选项。请按以下顺序检查 R5350 G6 的 BIOS 设置:
开启 Above 4G Decoding
这是支持 64 位地址空间分配的前提。如果这个选项没开,后续的 MMIO 大小调整选项可能会是灰色不可选的。
调整 MMIO High Size(关键)
这个选项决定了系统能为 PCIe 设备分配多大的 64 位地址空间。
开启 PCIe 64-bit BAR Support
确保 PCIe 64-bit BAR Support 或类似选项为 Enabled。8 卡环境下必须启用,否则 32 位地址空间完全无法容纳所有 GPU 的 BAR。
调整 PCIe 插槽拆分 (Slot Bifurcation)
R5350 G6 的 PCIe 插槽默认拆分可能是 x8+x8。确认所有安装了 GPU 的插槽都拆分到了 x16,以确保每张卡获得足够的 PCIe 资源。
关闭无关特性释放资源
如果未使用 GPU 虚拟化,可以尝试 Disabled SR-IOV Global Support,以释放部分 PCIe 资源。
BIOS 调整后如果问题依旧,需要在 Ubuntu 内核层面强制重新分配 PCIe 资源。
编辑 GRUB 配置文件:sudo vi /etc/default/grub
找到 GRUB_CMDLINE_LINUX_DEFAULT,在引号内添加以下参数:
更新 GRUB 并重启:sudo update-grub && sudo reboot
注意:有用户报告
pci=realloc在某些情况下可能无效,甚至可以尝试pci=realloc=off来观察是否改善。但通常对于资源不足问题,启用realloc是首要方向。
核心现象:HDM 硬件层面识别全部 8 张 GPU;操作系统
lspci能枚举到 8 个 PCI 设备;加载 NVIDIA 驱动后,其中 1 张 GPU BAR1 资源分配失败,驱动无法初始化,nvidia-smi 不显示,dmesg 提示 PCI 资源不足。Windows/Ubuntu 现象完全一致,证明不是操作系统 / 驱动问题,是BIOS PCIe MMIO 64 位地址空间资源不足,叠加PCIe Switch 串联组网带来的额外地址开销。
RTX6000D(84GB)BAR1 固定占用128GiB。8 卡合计需要 8 ×128GB =1024GB MMIO 地址空间;PCIe Switch 串联结构,每一级 Switch 桥设备本身也要占用额外 MMIO 地址窗口,会进一步放大 MMIO 空间需求。 你当前只设置 PFM64 MMIO Padding=8G,这个预留量远远不够。
BAR1 is 0M、资源分配失败。PFMMIO 64 bit Resources Padding只是桥设备的 padding 预留,不是全局 MMIO High 空间大小;R5350 G6 AMD 平台有独立的MMIO High Granularity Size参数,这个才是控制全局 64 位 MMIO 地址池总容量,这个选项你没找到,是本次故障核心。你按 Ctrl+Shift+F8 调出隐藏菜单,只修改 PFMMIO 64bit padding 是无效的,这个参数是给 PCIe 桥做填充,不是全局 MMIO 地址池。
全部操作在 BIOS Advanced > PCIe/PCI PnP Configuration 菜单
Above 4G Decoding:Enabled(必开,关闭就无法使用 64 位大 MMIO)Resizable BAR / Large BAR Support:EnabledCSM Support:Disabled(Legacy 模式 MMIO 地址池受限,多卡场景必须纯 UEFI)这个就是全局 64 位 MMIO 地址池总容量,R5350G6 隐藏选项,部分版本需要
Ctrl+Shift+F8调出。 8 张 RTX6000D 建议设置为 1024G(1T),最低不要低于 512G;默认值一般是 64G,完全不够 8 卡。
PFMMIO 64 bit Resources Padding:设置为32G 或 64G,不要仅 8G;PFMMIO 32 bit Resources Padding:Disabled(32bit 地址空间很小,多卡场景关闭避免抢占资源)MMIO 32 bit Resources Padding:Disabled⚠️注意:R5350 G6 老 BIOS 版本,MMIO High Granularity Size 最大只能到 256G,老 BIOS 版本硬件限制无法设置 1T,这种情况必须升级 R5350 G6 最新 BIOS 固件(6.30 及以上版本)。
当前架构:PCIe Switch 串联级联,8 张 GPU 全部挂在 Switch 下。
修改 BIOS 重启后,进入系统执行:
#查看BAR分配状态,失败卡会看到BAR1地址为0
lspci -vv -s 21:00.0
#查看内核PCI资源报错
dmesg | grep -E "BAR|resource|MMIO|nrm"
若 BAR1 地址正常分配,
nvidia-smi即可识别全部 8 张卡。 Ubuntu 24.04 可选内核参数(GRUB),作为兜底保障:
pci=realloc,nocrs
修改/etc/default/grub,更新 grub 并重启。
Windows 平台无需内核参数,BIOS 改完直接生效。
PFMMIO padding 只是桥设备预留填充,不是全局 MMIO 总地址池,修改这个参数解决不了 8 张 RTX6000D 的 BAR1 大地址需求。
HDM 是 BMC 底层读取硬件 ID,不涉及操作系统 PCI 地址分配与 BAR 映射,两者完全独立。
两个不同 OS 现象一致,证明是 BIOS / 硬件 PCI 资源层面限制,不是驱动 bug。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论