问题描述
服务器安装了Windows10操作系统。为了便于深度学习安装环境(例如CuDF、CuML等无法直接在Windows上安装),需要配置一个Linux环境。为了部署便捷性,选择WSL(Windows Subsystem for Linux)。安装完毕后,执行nvidia-smi
失败,提示Unable to determine the device handle for GPU0000:04:00.0: Unknown Error
。
问题解决
经过排查,问题出在显卡驱动上(将P100禁用后成功执行)。进一步搜索,发现WSL不支持TCC(Tesla Compute Cluster)模式的驱动,必须要WDDM(Windows Display Driver Model)模式。由于Tesla显卡不支持TCC以外的模式,因此需要选择以下几种方法:
1.安装Grid驱动
https://cloud.google.com/compute/docs/gpus/grid-drivers-table?hl=zh-cn#windows_drivers。安装后,P100可以直接作为输出,但问题在于2080Ti的驱动会被覆盖,导致无法正常使用。且会出现虚拟屏幕,分辨率也无法通过正常系统设置调节。因此弃用这种方法。
2.修改注册表
这一方法成功。
首先需要保证2080Ti和P100的驱动为同一版本。打开设备管理器,右键显卡属性,点击驱动程序选项卡即可查看。(由于已经修改驱动,因此显示为Tesla T4。这里的驱动版本以亮机卡为准)
如果二者版本不同,就需要修改P100的驱动版本。依次点击:更新驱动程序–>浏览我的电脑以查找–>从可用列表选取–>取消勾选显示兼容硬件,之后在列表中选择和2080Ti版本相同的驱动即可。
在安装完驱动之后,就需要对注册表进行修改。对于亮机卡和计算卡,分别进行注册表修改如下:
其中,
AdapterType、EnableMsHybrid
决定了高性能、节能模式(Win11不需要EnableMsHybrid设置)。执行注册表修改后禁用再启用显卡即可。显卡对应的编号可以通过右击设备管理器显卡属性–>详细信息选项卡–>驱动程序关键字查看。
WSL中已经可以正常执行nvidia-smi
,显示的名字也正确。