导语:在部署docker服务的时候发现容器内部的nvidia-smi命令获取不到自身容器的GPU进程和外部的GPU进程号。验证并找了一些方法解决。
1 使用docker参数pid=host 这个会和容器的systemctl命令冲突
docker run --rm --privileged=true --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=all --pid=host --gpus all nvidia/cuda:10.0-base nvidia-smi
如果是all in one的容器 需要使用systemctl命令则无法使用,目前遇到的正式这种情况。后面靠算法绑定gpu处理了。
2 使用py3smi
pip3 install py3nvml
py3smi
nvidia-smi
https://github.com/fbcotter/py3nvml
3 k8s中 使用hostPID:true