我在docker做一些袖口动作,遇到了一些问题。我使用以下Dockerfile。你知道吗
FROM nvidia/cuda:9.1-runtime-ubuntu16.04
ENV NVIDIA_VISIBLE_DEVICES all
ENV LD_LIBRARY_PATH /usr/local/cuda-9.1/lib64/
FROM python:3.7
COPY --from=0 /usr/local/cuda-9.1 /usr/local/cuda-9.1
ENV VIRTUAL_ENV=/opt/venv
ENV PATH="/opt/venv:$PATH"
RUN pip install numpy
RUN apt update && \
apt-get -y install gcc && \
apt-get -y install apt-utils && \
apt-get -y install g++ && \
apt-get -y install pciutils && \
apt-get -y install libc6
ADD helmsolver /helmsolver
CMD ls /usr && ls /usr/local
CMD dpkg -l | grep -i cuda
CMD cd helmsolver && bash tests.sh
为了构建和运行docker,我使用了这样的命令。你知道吗
docker build -t helm .
docker run --gpus all helm
我可以在主机上运行我的代码,但是在docker中运行之后,错误35(cudaErrorInsufficientDriver
)出现在这种类型的代码cudaMalloc((void**)&d_array, memsize)
。我的代码有什么问题,或者只是缺少了一些.so
文件?
这是我的CUDA,docker,nvidia smi版本
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
Docker version 19.03.4
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67 Driver Version: 418.67 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 640 On | 00000000:01:00.0 N/A | N/A |
| 40% 36C P8 N/A / N/A | 48MiB / 4035MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 760 On | 00000000:02:00.0 N/A | N/A |
| 17% 36C P8 N/A / N/A | 1MiB / 4037MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
添加
NVIDIA_DRIVER_CAPABILITIES compute, utility
作为ENV解决了这个问题。你知道吗相关问题 更多 >
编程相关推荐