问题
配置了4颗NVIDIA P40 24GGPU的服务器,业务反馈在系统中只能显示3颗显卡
查看bmc,并没有发现异常。查看系统日志如下,有一些重新初始化失败的报错
解决方法
厂商建议开启GPU的持久模式。gpu默认持久模式关闭的时候,GPU如果负载低,会休眠。之后唤起的时候,有一定几率失败,nvidia-smi -pm 1 这个命令可以使GPU一直保持准备工作的状态
nvidia-smi -pm 1 #开启持久模式
之后观察下来,gpu的运行稳定,没有类似的情况发生
nvidia-smi命令
nvidia-smi简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从WindowsServer 2008 R2开始的64位的系统。该工具是N卡驱动附带的,只要安装好驱动后就会有它。
nvidia-smi #显示所有GPU的当前信息状态
上面的表格中:
第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
第二栏的Temp:是温度,单位摄氏度。
第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是on的状态。
第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
下面一张表示每个进程占用的显存使用率。
nvidia-smi -L #该命令用于列出所有可用的 NVIDIA 设备信息。