Ubuntu 18.04 Intel+Nvidia设备非root用户无法识别OpenCL设备问题
问题修复方案
- 第一步:确认video用户组配置生效
执行groups命令查看当前用户所属组列表,确认包含video组。如果执行完adduser命令后未退出当前用户会话,组配置不会生效,*需要完全退出当前登录会话(重启设备可确保配置100%生效)*后再测试。 - 第二步:添加用户到render用户组
Ubuntu 18.04及以上版本新增了render用户组,用于管理DRI渲染设备的访问权限,仅加入video组不足以获取OpenCL设备访问权限,执行以下命令添加:
执行完成后同样需要重新登录生效。sudo usermod -aG render $USER - 第三步:修复ICD配置文件权限
检查OpenCL厂商配置文件的读权限,执行以下命令确认普通用户拥有读取权限:
如果输出的ls -l /etc/OpenCL/vendors/.icd文件权限不允许普通用户读取,执行以下命令修复:sudo chmod a+r /etc/OpenCL/vendors/*.icd - 第四步:排查设备节点权限
执行ls -l /dev/nvidia* /dev/dri/查看显卡设备节点的权限,NVIDIA设备节点属组应为video,Intel核显设备节点属组应为render,权限均应为rw-rw----。如果权限异常,可重启设备触发udev规则自动修复,或手动添加对应权限。 - 第五步:排查环境变量干扰
执行echo $OPENCL_VENDOR_PATH查看是否设置了错误的OpenCL厂商路径,如果有非空输出,执行unset OPENCL_VENDOR_PATH后再运行clinfo测试。
内容的提问来源于stack exchange,提问作者Alkor
相关产品推荐
相关产品推荐

