我在Ubuntu 19.10上。并且希望在docker中使用OpenCL。在docker容器中,我安装了opencl头、ocl-icd-opencl-dev和clinfo。当我在docker之外的机器上运行clinfo时,我有以下响应:
Number of platforms 1
Platform Name NVIDIA CUDA
Platform Vendor NVIDIA Corporation
Platform Version OpenCL 1.2 CUDA 10.2.159
...
当相同的程序在docker中运行时:
Number of platforms 0
我认为docker容器应该可以使用我的显卡,但不确定我是否/如何允许它。感谢您的一些见解
您需要使用--gpus all
选项启动docker,例如:
docker run --rm --gpus all nvidia/opencl clinfo
您也可以只公开特定的gpu
:
docker run -it --rm --gpus "device=0" ubuntu nvidia-smi
点击此处阅读更多信息:https://docs.docker.com/config/containers/resource_constraints/
如果你得到这个错误:
$ docker run --rm --gpus all nvidia/opencl clinfo
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
在Ubuntu上,你可以用进行补救
$ sudo apt install -y nvidia-container-toolkit; sudo systemctl restart docker