docker with tensorflow gpu - ImportError: libcublas.so.9.0: cannot open shared object file: No such file or...












1















Im trying to run docker with tensorflow using Nvidia GPUs, however when I run my container I get the following error:



pgp_1  | Traceback (most recent call last):
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
pgp_1 | from tensorflow.python.pywrap_tensorflow_internal import *
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
pgp_1 | _pywrap_tensorflow_internal = swig_import_helper()
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
pgp_1 | _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 243, in load_module
pgp_1 | return load_dynamic(name, filename, file)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 343, in load_dynamic
pgp_1 | return _load(spec)
pgp_1 | ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory


Docker-compose



My docker compose file looks like:



version: '3'
services:
pgp:
devices:
- /dev/nvidia0
- /dev/nvidia1
- /dev/nvidia2
- /dev/nvidia3
- /dev/nvidia4
- /dev/nvidiactl
- /dev/nvidia-uvm
image: "myimg/pgp"
ports:
- "5000:5000"
environment:
- LD_LIBRARY_PATH=/opt/local/cuda/lib64/
- GPU_DEVICE=4
- NVIDIA_VISIBLE_DEVICES all
- NVIDIA_DRIVER_CAPABILITIES compute,utility
volumes:
- ./train_package:/opt/app-root/src/train_package
- /usr/local/cuda/lib64/:/opt/local/cuda/lib64/


As you can see, I have tried having a volume to map host cuda to the docker container but this didnt help.



I am able to successfully run nvidia-docker run --rm nvidia/cuda nvidia-smi



Versions



Cuda



cat /usr/local/cuda/version.txt shows CUDA Version 9.0.176



nvcc -V



nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176



nvidia-docker version



NVIDIA Docker: 2.0.3
Client:
Version: 17.12.1-ce



API version: 1.35



Go version: go1.9.4



Git commit: 7390fc6
Built: Tue Feb 27 22:17:40 2018



OS/Arch: linux/amd64



Server:
Engine:
Version: 17.12.1-ce



API version: 1.35 (minimum version 1.12)



Go version: go1.9.4



Git commit: 7390fc6



Built: Tue Feb 27 22:16:13 2018



OS/Arch: linux/amd64



Experimental: false



Tensorflow



1.5 with gpu support, via pip



ldconfig -p | grep cuda
libnvrtc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so.9.0
libnvrtc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so
libnvrtc-builtins.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.9.0
libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so
libnvgraph.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so.9.0
libnvgraph.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so
libnvblas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so.9.0
libnvblas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so
libnvToolsExt.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so.1
libnvToolsExt.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so
libnpps.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so.9.0
libnpps.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so
libnppitc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so.9.0
libnppitc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so
libnppisu.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so.9.0
libnppisu.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so
libnppist.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so.9.0
libnppist.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so
libnppim.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so.9.0
libnppim.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so
libnppig.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so.9.0
libnppig.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so
libnppif.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so.9.0
libnppif.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so
libnppidei.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so.9.0
libnppidei.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so
libnppicom.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so.9.0
libnppicom.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so
libnppicc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so.9.0
libnppicc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so
libnppial.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so.9.0
libnppial.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so
libnppc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so.9.0
libnppc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so
libicudata.so.55 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicudata.so.55
libcusparse.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so.9.0
libcusparse.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so
libcusolver.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so.9.0
libcusolver.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so
libcurand.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so.9.0
libcurand.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so
libcuinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so.9.0
libcuinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so
libcufftw.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so.9.0
libcufftw.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so
libcufft.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so.9.0
libcufft.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so
libcudart.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so.9.0
libcudart.so.7.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so.7.5
libcudart.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so
libcudart.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so
libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so
libcublas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so.9.0
libcublas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so
libaccinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so.9.0
libaccinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so
libOpenCL.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so


Tests with Tensorflow on Docker vs host



The following works, when running on the host:



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"

v1.5.0-0-g37aa430d84 1.5.0


Run container



nvidia-docker run -d --name testtfgpu -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu



Log in



nvidia-docker exec -it testtfgpu bash



Test Tensorflow version



pip show tensorflow-gpu shows:




pip show tensorflow-gpu
Name: tensorflow-gpu
Version: 1.6.0
Summary: TensorFlow helps the tensors flow
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: astor, protobuf, gast, tensorboard, six, wheel, absl-py, backports.weakref, termcolor, enum34, numpy, grpcio, mock



Python 2



python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



Illegal instruction (core dumped)


Python 3



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



python3 -c "import tensorflow as tf; print(tf.GIT_ 
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'tensorflow'









share|improve this question

























  • Did you try to install this way, pip3 install --upgrade tensorflow-gpu?

    – Dinusha Dilanka
    Mar 22 '18 at 14:49
















1















Im trying to run docker with tensorflow using Nvidia GPUs, however when I run my container I get the following error:



pgp_1  | Traceback (most recent call last):
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
pgp_1 | from tensorflow.python.pywrap_tensorflow_internal import *
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
pgp_1 | _pywrap_tensorflow_internal = swig_import_helper()
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
pgp_1 | _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 243, in load_module
pgp_1 | return load_dynamic(name, filename, file)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 343, in load_dynamic
pgp_1 | return _load(spec)
pgp_1 | ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory


Docker-compose



My docker compose file looks like:



version: '3'
services:
pgp:
devices:
- /dev/nvidia0
- /dev/nvidia1
- /dev/nvidia2
- /dev/nvidia3
- /dev/nvidia4
- /dev/nvidiactl
- /dev/nvidia-uvm
image: "myimg/pgp"
ports:
- "5000:5000"
environment:
- LD_LIBRARY_PATH=/opt/local/cuda/lib64/
- GPU_DEVICE=4
- NVIDIA_VISIBLE_DEVICES all
- NVIDIA_DRIVER_CAPABILITIES compute,utility
volumes:
- ./train_package:/opt/app-root/src/train_package
- /usr/local/cuda/lib64/:/opt/local/cuda/lib64/


As you can see, I have tried having a volume to map host cuda to the docker container but this didnt help.



I am able to successfully run nvidia-docker run --rm nvidia/cuda nvidia-smi



Versions



Cuda



cat /usr/local/cuda/version.txt shows CUDA Version 9.0.176



nvcc -V



nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176



nvidia-docker version



NVIDIA Docker: 2.0.3
Client:
Version: 17.12.1-ce



API version: 1.35



Go version: go1.9.4



Git commit: 7390fc6
Built: Tue Feb 27 22:17:40 2018



OS/Arch: linux/amd64



Server:
Engine:
Version: 17.12.1-ce



API version: 1.35 (minimum version 1.12)



Go version: go1.9.4



Git commit: 7390fc6



Built: Tue Feb 27 22:16:13 2018



OS/Arch: linux/amd64



Experimental: false



Tensorflow



1.5 with gpu support, via pip



ldconfig -p | grep cuda
libnvrtc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so.9.0
libnvrtc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so
libnvrtc-builtins.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.9.0
libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so
libnvgraph.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so.9.0
libnvgraph.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so
libnvblas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so.9.0
libnvblas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so
libnvToolsExt.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so.1
libnvToolsExt.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so
libnpps.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so.9.0
libnpps.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so
libnppitc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so.9.0
libnppitc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so
libnppisu.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so.9.0
libnppisu.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so
libnppist.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so.9.0
libnppist.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so
libnppim.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so.9.0
libnppim.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so
libnppig.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so.9.0
libnppig.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so
libnppif.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so.9.0
libnppif.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so
libnppidei.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so.9.0
libnppidei.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so
libnppicom.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so.9.0
libnppicom.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so
libnppicc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so.9.0
libnppicc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so
libnppial.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so.9.0
libnppial.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so
libnppc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so.9.0
libnppc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so
libicudata.so.55 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicudata.so.55
libcusparse.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so.9.0
libcusparse.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so
libcusolver.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so.9.0
libcusolver.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so
libcurand.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so.9.0
libcurand.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so
libcuinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so.9.0
libcuinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so
libcufftw.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so.9.0
libcufftw.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so
libcufft.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so.9.0
libcufft.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so
libcudart.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so.9.0
libcudart.so.7.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so.7.5
libcudart.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so
libcudart.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so
libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so
libcublas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so.9.0
libcublas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so
libaccinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so.9.0
libaccinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so
libOpenCL.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so


Tests with Tensorflow on Docker vs host



The following works, when running on the host:



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"

v1.5.0-0-g37aa430d84 1.5.0


Run container



nvidia-docker run -d --name testtfgpu -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu



Log in



nvidia-docker exec -it testtfgpu bash



Test Tensorflow version



pip show tensorflow-gpu shows:




pip show tensorflow-gpu
Name: tensorflow-gpu
Version: 1.6.0
Summary: TensorFlow helps the tensors flow
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: astor, protobuf, gast, tensorboard, six, wheel, absl-py, backports.weakref, termcolor, enum34, numpy, grpcio, mock



Python 2



python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



Illegal instruction (core dumped)


Python 3



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



python3 -c "import tensorflow as tf; print(tf.GIT_ 
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'tensorflow'









share|improve this question

























  • Did you try to install this way, pip3 install --upgrade tensorflow-gpu?

    – Dinusha Dilanka
    Mar 22 '18 at 14:49














1












1








1


1






Im trying to run docker with tensorflow using Nvidia GPUs, however when I run my container I get the following error:



pgp_1  | Traceback (most recent call last):
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
pgp_1 | from tensorflow.python.pywrap_tensorflow_internal import *
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
pgp_1 | _pywrap_tensorflow_internal = swig_import_helper()
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
pgp_1 | _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 243, in load_module
pgp_1 | return load_dynamic(name, filename, file)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 343, in load_dynamic
pgp_1 | return _load(spec)
pgp_1 | ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory


Docker-compose



My docker compose file looks like:



version: '3'
services:
pgp:
devices:
- /dev/nvidia0
- /dev/nvidia1
- /dev/nvidia2
- /dev/nvidia3
- /dev/nvidia4
- /dev/nvidiactl
- /dev/nvidia-uvm
image: "myimg/pgp"
ports:
- "5000:5000"
environment:
- LD_LIBRARY_PATH=/opt/local/cuda/lib64/
- GPU_DEVICE=4
- NVIDIA_VISIBLE_DEVICES all
- NVIDIA_DRIVER_CAPABILITIES compute,utility
volumes:
- ./train_package:/opt/app-root/src/train_package
- /usr/local/cuda/lib64/:/opt/local/cuda/lib64/


As you can see, I have tried having a volume to map host cuda to the docker container but this didnt help.



I am able to successfully run nvidia-docker run --rm nvidia/cuda nvidia-smi



Versions



Cuda



cat /usr/local/cuda/version.txt shows CUDA Version 9.0.176



nvcc -V



nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176



nvidia-docker version



NVIDIA Docker: 2.0.3
Client:
Version: 17.12.1-ce



API version: 1.35



Go version: go1.9.4



Git commit: 7390fc6
Built: Tue Feb 27 22:17:40 2018



OS/Arch: linux/amd64



Server:
Engine:
Version: 17.12.1-ce



API version: 1.35 (minimum version 1.12)



Go version: go1.9.4



Git commit: 7390fc6



Built: Tue Feb 27 22:16:13 2018



OS/Arch: linux/amd64



Experimental: false



Tensorflow



1.5 with gpu support, via pip



ldconfig -p | grep cuda
libnvrtc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so.9.0
libnvrtc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so
libnvrtc-builtins.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.9.0
libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so
libnvgraph.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so.9.0
libnvgraph.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so
libnvblas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so.9.0
libnvblas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so
libnvToolsExt.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so.1
libnvToolsExt.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so
libnpps.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so.9.0
libnpps.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so
libnppitc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so.9.0
libnppitc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so
libnppisu.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so.9.0
libnppisu.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so
libnppist.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so.9.0
libnppist.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so
libnppim.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so.9.0
libnppim.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so
libnppig.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so.9.0
libnppig.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so
libnppif.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so.9.0
libnppif.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so
libnppidei.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so.9.0
libnppidei.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so
libnppicom.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so.9.0
libnppicom.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so
libnppicc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so.9.0
libnppicc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so
libnppial.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so.9.0
libnppial.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so
libnppc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so.9.0
libnppc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so
libicudata.so.55 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicudata.so.55
libcusparse.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so.9.0
libcusparse.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so
libcusolver.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so.9.0
libcusolver.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so
libcurand.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so.9.0
libcurand.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so
libcuinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so.9.0
libcuinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so
libcufftw.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so.9.0
libcufftw.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so
libcufft.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so.9.0
libcufft.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so
libcudart.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so.9.0
libcudart.so.7.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so.7.5
libcudart.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so
libcudart.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so
libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so
libcublas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so.9.0
libcublas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so
libaccinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so.9.0
libaccinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so
libOpenCL.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so


Tests with Tensorflow on Docker vs host



The following works, when running on the host:



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"

v1.5.0-0-g37aa430d84 1.5.0


Run container



nvidia-docker run -d --name testtfgpu -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu



Log in



nvidia-docker exec -it testtfgpu bash



Test Tensorflow version



pip show tensorflow-gpu shows:




pip show tensorflow-gpu
Name: tensorflow-gpu
Version: 1.6.0
Summary: TensorFlow helps the tensors flow
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: astor, protobuf, gast, tensorboard, six, wheel, absl-py, backports.weakref, termcolor, enum34, numpy, grpcio, mock



Python 2



python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



Illegal instruction (core dumped)


Python 3



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



python3 -c "import tensorflow as tf; print(tf.GIT_ 
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'tensorflow'









share|improve this question
















Im trying to run docker with tensorflow using Nvidia GPUs, however when I run my container I get the following error:



pgp_1  | Traceback (most recent call last):
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
pgp_1 | from tensorflow.python.pywrap_tensorflow_internal import *
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
pgp_1 | _pywrap_tensorflow_internal = swig_import_helper()
pgp_1 | File "/opt/app-root/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
pgp_1 | _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 243, in load_module
pgp_1 | return load_dynamic(name, filename, file)
pgp_1 | File "/opt/app-root/lib64/python3.6/imp.py", line 343, in load_dynamic
pgp_1 | return _load(spec)
pgp_1 | ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory


Docker-compose



My docker compose file looks like:



version: '3'
services:
pgp:
devices:
- /dev/nvidia0
- /dev/nvidia1
- /dev/nvidia2
- /dev/nvidia3
- /dev/nvidia4
- /dev/nvidiactl
- /dev/nvidia-uvm
image: "myimg/pgp"
ports:
- "5000:5000"
environment:
- LD_LIBRARY_PATH=/opt/local/cuda/lib64/
- GPU_DEVICE=4
- NVIDIA_VISIBLE_DEVICES all
- NVIDIA_DRIVER_CAPABILITIES compute,utility
volumes:
- ./train_package:/opt/app-root/src/train_package
- /usr/local/cuda/lib64/:/opt/local/cuda/lib64/


As you can see, I have tried having a volume to map host cuda to the docker container but this didnt help.



I am able to successfully run nvidia-docker run --rm nvidia/cuda nvidia-smi



Versions



Cuda



cat /usr/local/cuda/version.txt shows CUDA Version 9.0.176



nvcc -V



nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176



nvidia-docker version



NVIDIA Docker: 2.0.3
Client:
Version: 17.12.1-ce



API version: 1.35



Go version: go1.9.4



Git commit: 7390fc6
Built: Tue Feb 27 22:17:40 2018



OS/Arch: linux/amd64



Server:
Engine:
Version: 17.12.1-ce



API version: 1.35 (minimum version 1.12)



Go version: go1.9.4



Git commit: 7390fc6



Built: Tue Feb 27 22:16:13 2018



OS/Arch: linux/amd64



Experimental: false



Tensorflow



1.5 with gpu support, via pip



ldconfig -p | grep cuda
libnvrtc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so.9.0
libnvrtc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so
libnvrtc-builtins.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.9.0
libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so
libnvgraph.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so.9.0
libnvgraph.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so
libnvblas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so.9.0
libnvblas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so
libnvToolsExt.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so.1
libnvToolsExt.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so
libnpps.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so.9.0
libnpps.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so
libnppitc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so.9.0
libnppitc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so
libnppisu.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so.9.0
libnppisu.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so
libnppist.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so.9.0
libnppist.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so
libnppim.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so.9.0
libnppim.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so
libnppig.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so.9.0
libnppig.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so
libnppif.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so.9.0
libnppif.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so
libnppidei.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so.9.0
libnppidei.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so
libnppicom.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so.9.0
libnppicom.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so
libnppicc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so.9.0
libnppicc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so
libnppial.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so.9.0
libnppial.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so
libnppc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so.9.0
libnppc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so
libicudata.so.55 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicudata.so.55
libcusparse.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so.9.0
libcusparse.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so
libcusolver.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so.9.0
libcusolver.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so
libcurand.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so.9.0
libcurand.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so
libcuinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so.9.0
libcuinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so
libcufftw.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so.9.0
libcufftw.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so
libcufft.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so.9.0
libcufft.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so
libcudart.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so.9.0
libcudart.so.7.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so.7.5
libcudart.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so
libcudart.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so
libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so
libcublas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so.9.0
libcublas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so
libaccinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so.9.0
libaccinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so
libOpenCL.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so


Tests with Tensorflow on Docker vs host



The following works, when running on the host:



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"

v1.5.0-0-g37aa430d84 1.5.0


Run container



nvidia-docker run -d --name testtfgpu -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu



Log in



nvidia-docker exec -it testtfgpu bash



Test Tensorflow version



pip show tensorflow-gpu shows:




pip show tensorflow-gpu
Name: tensorflow-gpu
Version: 1.6.0
Summary: TensorFlow helps the tensors flow
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: astor, protobuf, gast, tensorboard, six, wheel, absl-py, backports.weakref, termcolor, enum34, numpy, grpcio, mock



Python 2



python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



Illegal instruction (core dumped)


Python 3



python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"



Results in:



python3 -c "import tensorflow as tf; print(tf.GIT_ 
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'tensorflow'






docker tensorflow docker-compose nvidia nvidia-docker






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 22 '18 at 5:49







Magick

















asked Mar 21 '18 at 1:17









MagickMagick

76132954




76132954













  • Did you try to install this way, pip3 install --upgrade tensorflow-gpu?

    – Dinusha Dilanka
    Mar 22 '18 at 14:49



















  • Did you try to install this way, pip3 install --upgrade tensorflow-gpu?

    – Dinusha Dilanka
    Mar 22 '18 at 14:49

















Did you try to install this way, pip3 install --upgrade tensorflow-gpu?

– Dinusha Dilanka
Mar 22 '18 at 14:49





Did you try to install this way, pip3 install --upgrade tensorflow-gpu?

– Dinusha Dilanka
Mar 22 '18 at 14:49












2 Answers
2






active

oldest

votes


















1














The problem because of your cuDNN version. Tensorflow-GPU 1.5 version will support cuDNN 7.0._ version. You can download that from here. Make sure that your CUDA version 9.0._ and cuDNN version 7.0._ . Please refer link in here for more details.






share|improve this answer


























  • How can I check which version of cuDNN installed? Also, the the link that you provide - the url - contains v7.0.5 and cudnn-9.0 - so I am confused about which version I should have, and which version I am getting.

    – Magick
    Mar 21 '18 at 12:27











  • If you are using tensorflow 1.5 it will support to CUDA 9.0._. But you have to chose correct cuDNN version v7.0.5 or v7.0.4 should support.

    – Dinusha Dilanka
    Mar 21 '18 at 12:38











  • I am using TF 1.5. How do I find out which version of cuDNN I have installed. And thanks for your help.

    – Magick
    Mar 21 '18 at 12:43






  • 2





    You do not want to find cuDNN version just download v7.0.4 and extract and copy and paste to CUDA folder as they mention in site. I used CUDA 9.0 and cuDNN v7.1._ but it not work and then I changed cuDNN version to v7.0.4 after it was working find.

    – Dinusha Dilanka
    Mar 21 '18 at 12:51



















0














It looks like a conflict between CUDA's version and TensorFlow's



First, try to check your CUDA version with one of the commands such as nvcc --version or cat /usr/local/cuda/version.txt



If that's 8.x, you may need to reinstall CUDA or simpler, downgrade TensorFlow to 1.4. Otherwise, if your CUDA is 9.x, you need TensorFlow 1.5 or newer.



Hope that helps.






share|improve this answer
























  • Thanks @Dong, I've updated my post with the versions. I am using TF1.5 that should support nvidia 9.

    – Magick
    Mar 21 '18 at 1:39











  • I see your log says that it's CUDA 7.5, right? I have a training server with CUDA 8.0, I just tried to replace tensorflow-gpu 1.4 with 1.5 and got the same error as your: i.imgur.com/0rmz2Ds.png In another server I have CUDA 9.0, it works with TensorFlow 1.5 as well: i.imgur.com/P7m0EW7.png So, I still would like to suggest you to try several different versions of tensorflow-gpu to see which one works. As my experience: - TF 1.4 works with CUDA 8.0 - TF 1.5 and 1.6 work with CUDA 9.0 - Nothing work with CUDA 9.1, I've installed it at first, then removed.

    – Dong Nguyen
    Mar 21 '18 at 4:28













  • I have cuda-9.0 installed. But nvcc -V shows release 7. Are you suggesting that nvcc should be version 9?

    – Magick
    Mar 21 '18 at 4:36











  • Something went wrong with your installation. At first time deal with CUDA, I was also confused with it much. Your path looks odd. Not Debian? You may try something like cat /usr/local/cuda/version.txt to see which output?

    – Dong Nguyen
    Mar 21 '18 at 4:39








  • 1





    If so I have no more idea. However I never run them in docker.

    – Dong Nguyen
    Mar 21 '18 at 4:53











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f49396659%2fdocker-with-tensorflow-gpu-importerror-libcublas-so-9-0-cannot-open-shared-o%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














The problem because of your cuDNN version. Tensorflow-GPU 1.5 version will support cuDNN 7.0._ version. You can download that from here. Make sure that your CUDA version 9.0._ and cuDNN version 7.0._ . Please refer link in here for more details.






share|improve this answer


























  • How can I check which version of cuDNN installed? Also, the the link that you provide - the url - contains v7.0.5 and cudnn-9.0 - so I am confused about which version I should have, and which version I am getting.

    – Magick
    Mar 21 '18 at 12:27











  • If you are using tensorflow 1.5 it will support to CUDA 9.0._. But you have to chose correct cuDNN version v7.0.5 or v7.0.4 should support.

    – Dinusha Dilanka
    Mar 21 '18 at 12:38











  • I am using TF 1.5. How do I find out which version of cuDNN I have installed. And thanks for your help.

    – Magick
    Mar 21 '18 at 12:43






  • 2





    You do not want to find cuDNN version just download v7.0.4 and extract and copy and paste to CUDA folder as they mention in site. I used CUDA 9.0 and cuDNN v7.1._ but it not work and then I changed cuDNN version to v7.0.4 after it was working find.

    – Dinusha Dilanka
    Mar 21 '18 at 12:51
















1














The problem because of your cuDNN version. Tensorflow-GPU 1.5 version will support cuDNN 7.0._ version. You can download that from here. Make sure that your CUDA version 9.0._ and cuDNN version 7.0._ . Please refer link in here for more details.






share|improve this answer


























  • How can I check which version of cuDNN installed? Also, the the link that you provide - the url - contains v7.0.5 and cudnn-9.0 - so I am confused about which version I should have, and which version I am getting.

    – Magick
    Mar 21 '18 at 12:27











  • If you are using tensorflow 1.5 it will support to CUDA 9.0._. But you have to chose correct cuDNN version v7.0.5 or v7.0.4 should support.

    – Dinusha Dilanka
    Mar 21 '18 at 12:38











  • I am using TF 1.5. How do I find out which version of cuDNN I have installed. And thanks for your help.

    – Magick
    Mar 21 '18 at 12:43






  • 2





    You do not want to find cuDNN version just download v7.0.4 and extract and copy and paste to CUDA folder as they mention in site. I used CUDA 9.0 and cuDNN v7.1._ but it not work and then I changed cuDNN version to v7.0.4 after it was working find.

    – Dinusha Dilanka
    Mar 21 '18 at 12:51














1












1








1







The problem because of your cuDNN version. Tensorflow-GPU 1.5 version will support cuDNN 7.0._ version. You can download that from here. Make sure that your CUDA version 9.0._ and cuDNN version 7.0._ . Please refer link in here for more details.






share|improve this answer















The problem because of your cuDNN version. Tensorflow-GPU 1.5 version will support cuDNN 7.0._ version. You can download that from here. Make sure that your CUDA version 9.0._ and cuDNN version 7.0._ . Please refer link in here for more details.







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 21 '18 at 4:58

























answered Mar 21 '18 at 4:33









Dinusha DilankaDinusha Dilanka

10711




10711













  • How can I check which version of cuDNN installed? Also, the the link that you provide - the url - contains v7.0.5 and cudnn-9.0 - so I am confused about which version I should have, and which version I am getting.

    – Magick
    Mar 21 '18 at 12:27











  • If you are using tensorflow 1.5 it will support to CUDA 9.0._. But you have to chose correct cuDNN version v7.0.5 or v7.0.4 should support.

    – Dinusha Dilanka
    Mar 21 '18 at 12:38











  • I am using TF 1.5. How do I find out which version of cuDNN I have installed. And thanks for your help.

    – Magick
    Mar 21 '18 at 12:43






  • 2





    You do not want to find cuDNN version just download v7.0.4 and extract and copy and paste to CUDA folder as they mention in site. I used CUDA 9.0 and cuDNN v7.1._ but it not work and then I changed cuDNN version to v7.0.4 after it was working find.

    – Dinusha Dilanka
    Mar 21 '18 at 12:51



















  • How can I check which version of cuDNN installed? Also, the the link that you provide - the url - contains v7.0.5 and cudnn-9.0 - so I am confused about which version I should have, and which version I am getting.

    – Magick
    Mar 21 '18 at 12:27











  • If you are using tensorflow 1.5 it will support to CUDA 9.0._. But you have to chose correct cuDNN version v7.0.5 or v7.0.4 should support.

    – Dinusha Dilanka
    Mar 21 '18 at 12:38











  • I am using TF 1.5. How do I find out which version of cuDNN I have installed. And thanks for your help.

    – Magick
    Mar 21 '18 at 12:43






  • 2





    You do not want to find cuDNN version just download v7.0.4 and extract and copy and paste to CUDA folder as they mention in site. I used CUDA 9.0 and cuDNN v7.1._ but it not work and then I changed cuDNN version to v7.0.4 after it was working find.

    – Dinusha Dilanka
    Mar 21 '18 at 12:51

















How can I check which version of cuDNN installed? Also, the the link that you provide - the url - contains v7.0.5 and cudnn-9.0 - so I am confused about which version I should have, and which version I am getting.

– Magick
Mar 21 '18 at 12:27





How can I check which version of cuDNN installed? Also, the the link that you provide - the url - contains v7.0.5 and cudnn-9.0 - so I am confused about which version I should have, and which version I am getting.

– Magick
Mar 21 '18 at 12:27













If you are using tensorflow 1.5 it will support to CUDA 9.0._. But you have to chose correct cuDNN version v7.0.5 or v7.0.4 should support.

– Dinusha Dilanka
Mar 21 '18 at 12:38





If you are using tensorflow 1.5 it will support to CUDA 9.0._. But you have to chose correct cuDNN version v7.0.5 or v7.0.4 should support.

– Dinusha Dilanka
Mar 21 '18 at 12:38













I am using TF 1.5. How do I find out which version of cuDNN I have installed. And thanks for your help.

– Magick
Mar 21 '18 at 12:43





I am using TF 1.5. How do I find out which version of cuDNN I have installed. And thanks for your help.

– Magick
Mar 21 '18 at 12:43




2




2





You do not want to find cuDNN version just download v7.0.4 and extract and copy and paste to CUDA folder as they mention in site. I used CUDA 9.0 and cuDNN v7.1._ but it not work and then I changed cuDNN version to v7.0.4 after it was working find.

– Dinusha Dilanka
Mar 21 '18 at 12:51





You do not want to find cuDNN version just download v7.0.4 and extract and copy and paste to CUDA folder as they mention in site. I used CUDA 9.0 and cuDNN v7.1._ but it not work and then I changed cuDNN version to v7.0.4 after it was working find.

– Dinusha Dilanka
Mar 21 '18 at 12:51













0














It looks like a conflict between CUDA's version and TensorFlow's



First, try to check your CUDA version with one of the commands such as nvcc --version or cat /usr/local/cuda/version.txt



If that's 8.x, you may need to reinstall CUDA or simpler, downgrade TensorFlow to 1.4. Otherwise, if your CUDA is 9.x, you need TensorFlow 1.5 or newer.



Hope that helps.






share|improve this answer
























  • Thanks @Dong, I've updated my post with the versions. I am using TF1.5 that should support nvidia 9.

    – Magick
    Mar 21 '18 at 1:39











  • I see your log says that it's CUDA 7.5, right? I have a training server with CUDA 8.0, I just tried to replace tensorflow-gpu 1.4 with 1.5 and got the same error as your: i.imgur.com/0rmz2Ds.png In another server I have CUDA 9.0, it works with TensorFlow 1.5 as well: i.imgur.com/P7m0EW7.png So, I still would like to suggest you to try several different versions of tensorflow-gpu to see which one works. As my experience: - TF 1.4 works with CUDA 8.0 - TF 1.5 and 1.6 work with CUDA 9.0 - Nothing work with CUDA 9.1, I've installed it at first, then removed.

    – Dong Nguyen
    Mar 21 '18 at 4:28













  • I have cuda-9.0 installed. But nvcc -V shows release 7. Are you suggesting that nvcc should be version 9?

    – Magick
    Mar 21 '18 at 4:36











  • Something went wrong with your installation. At first time deal with CUDA, I was also confused with it much. Your path looks odd. Not Debian? You may try something like cat /usr/local/cuda/version.txt to see which output?

    – Dong Nguyen
    Mar 21 '18 at 4:39








  • 1





    If so I have no more idea. However I never run them in docker.

    – Dong Nguyen
    Mar 21 '18 at 4:53
















0














It looks like a conflict between CUDA's version and TensorFlow's



First, try to check your CUDA version with one of the commands such as nvcc --version or cat /usr/local/cuda/version.txt



If that's 8.x, you may need to reinstall CUDA or simpler, downgrade TensorFlow to 1.4. Otherwise, if your CUDA is 9.x, you need TensorFlow 1.5 or newer.



Hope that helps.






share|improve this answer
























  • Thanks @Dong, I've updated my post with the versions. I am using TF1.5 that should support nvidia 9.

    – Magick
    Mar 21 '18 at 1:39











  • I see your log says that it's CUDA 7.5, right? I have a training server with CUDA 8.0, I just tried to replace tensorflow-gpu 1.4 with 1.5 and got the same error as your: i.imgur.com/0rmz2Ds.png In another server I have CUDA 9.0, it works with TensorFlow 1.5 as well: i.imgur.com/P7m0EW7.png So, I still would like to suggest you to try several different versions of tensorflow-gpu to see which one works. As my experience: - TF 1.4 works with CUDA 8.0 - TF 1.5 and 1.6 work with CUDA 9.0 - Nothing work with CUDA 9.1, I've installed it at first, then removed.

    – Dong Nguyen
    Mar 21 '18 at 4:28













  • I have cuda-9.0 installed. But nvcc -V shows release 7. Are you suggesting that nvcc should be version 9?

    – Magick
    Mar 21 '18 at 4:36











  • Something went wrong with your installation. At first time deal with CUDA, I was also confused with it much. Your path looks odd. Not Debian? You may try something like cat /usr/local/cuda/version.txt to see which output?

    – Dong Nguyen
    Mar 21 '18 at 4:39








  • 1





    If so I have no more idea. However I never run them in docker.

    – Dong Nguyen
    Mar 21 '18 at 4:53














0












0








0







It looks like a conflict between CUDA's version and TensorFlow's



First, try to check your CUDA version with one of the commands such as nvcc --version or cat /usr/local/cuda/version.txt



If that's 8.x, you may need to reinstall CUDA or simpler, downgrade TensorFlow to 1.4. Otherwise, if your CUDA is 9.x, you need TensorFlow 1.5 or newer.



Hope that helps.






share|improve this answer













It looks like a conflict between CUDA's version and TensorFlow's



First, try to check your CUDA version with one of the commands such as nvcc --version or cat /usr/local/cuda/version.txt



If that's 8.x, you may need to reinstall CUDA or simpler, downgrade TensorFlow to 1.4. Otherwise, if your CUDA is 9.x, you need TensorFlow 1.5 or newer.



Hope that helps.







share|improve this answer












share|improve this answer



share|improve this answer










answered Mar 21 '18 at 1:31









Dong NguyenDong Nguyen

1,022714




1,022714













  • Thanks @Dong, I've updated my post with the versions. I am using TF1.5 that should support nvidia 9.

    – Magick
    Mar 21 '18 at 1:39











  • I see your log says that it's CUDA 7.5, right? I have a training server with CUDA 8.0, I just tried to replace tensorflow-gpu 1.4 with 1.5 and got the same error as your: i.imgur.com/0rmz2Ds.png In another server I have CUDA 9.0, it works with TensorFlow 1.5 as well: i.imgur.com/P7m0EW7.png So, I still would like to suggest you to try several different versions of tensorflow-gpu to see which one works. As my experience: - TF 1.4 works with CUDA 8.0 - TF 1.5 and 1.6 work with CUDA 9.0 - Nothing work with CUDA 9.1, I've installed it at first, then removed.

    – Dong Nguyen
    Mar 21 '18 at 4:28













  • I have cuda-9.0 installed. But nvcc -V shows release 7. Are you suggesting that nvcc should be version 9?

    – Magick
    Mar 21 '18 at 4:36











  • Something went wrong with your installation. At first time deal with CUDA, I was also confused with it much. Your path looks odd. Not Debian? You may try something like cat /usr/local/cuda/version.txt to see which output?

    – Dong Nguyen
    Mar 21 '18 at 4:39








  • 1





    If so I have no more idea. However I never run them in docker.

    – Dong Nguyen
    Mar 21 '18 at 4:53



















  • Thanks @Dong, I've updated my post with the versions. I am using TF1.5 that should support nvidia 9.

    – Magick
    Mar 21 '18 at 1:39











  • I see your log says that it's CUDA 7.5, right? I have a training server with CUDA 8.0, I just tried to replace tensorflow-gpu 1.4 with 1.5 and got the same error as your: i.imgur.com/0rmz2Ds.png In another server I have CUDA 9.0, it works with TensorFlow 1.5 as well: i.imgur.com/P7m0EW7.png So, I still would like to suggest you to try several different versions of tensorflow-gpu to see which one works. As my experience: - TF 1.4 works with CUDA 8.0 - TF 1.5 and 1.6 work with CUDA 9.0 - Nothing work with CUDA 9.1, I've installed it at first, then removed.

    – Dong Nguyen
    Mar 21 '18 at 4:28













  • I have cuda-9.0 installed. But nvcc -V shows release 7. Are you suggesting that nvcc should be version 9?

    – Magick
    Mar 21 '18 at 4:36











  • Something went wrong with your installation. At first time deal with CUDA, I was also confused with it much. Your path looks odd. Not Debian? You may try something like cat /usr/local/cuda/version.txt to see which output?

    – Dong Nguyen
    Mar 21 '18 at 4:39








  • 1





    If so I have no more idea. However I never run them in docker.

    – Dong Nguyen
    Mar 21 '18 at 4:53

















Thanks @Dong, I've updated my post with the versions. I am using TF1.5 that should support nvidia 9.

– Magick
Mar 21 '18 at 1:39





Thanks @Dong, I've updated my post with the versions. I am using TF1.5 that should support nvidia 9.

– Magick
Mar 21 '18 at 1:39













I see your log says that it's CUDA 7.5, right? I have a training server with CUDA 8.0, I just tried to replace tensorflow-gpu 1.4 with 1.5 and got the same error as your: i.imgur.com/0rmz2Ds.png In another server I have CUDA 9.0, it works with TensorFlow 1.5 as well: i.imgur.com/P7m0EW7.png So, I still would like to suggest you to try several different versions of tensorflow-gpu to see which one works. As my experience: - TF 1.4 works with CUDA 8.0 - TF 1.5 and 1.6 work with CUDA 9.0 - Nothing work with CUDA 9.1, I've installed it at first, then removed.

– Dong Nguyen
Mar 21 '18 at 4:28







I see your log says that it's CUDA 7.5, right? I have a training server with CUDA 8.0, I just tried to replace tensorflow-gpu 1.4 with 1.5 and got the same error as your: i.imgur.com/0rmz2Ds.png In another server I have CUDA 9.0, it works with TensorFlow 1.5 as well: i.imgur.com/P7m0EW7.png So, I still would like to suggest you to try several different versions of tensorflow-gpu to see which one works. As my experience: - TF 1.4 works with CUDA 8.0 - TF 1.5 and 1.6 work with CUDA 9.0 - Nothing work with CUDA 9.1, I've installed it at first, then removed.

– Dong Nguyen
Mar 21 '18 at 4:28















I have cuda-9.0 installed. But nvcc -V shows release 7. Are you suggesting that nvcc should be version 9?

– Magick
Mar 21 '18 at 4:36





I have cuda-9.0 installed. But nvcc -V shows release 7. Are you suggesting that nvcc should be version 9?

– Magick
Mar 21 '18 at 4:36













Something went wrong with your installation. At first time deal with CUDA, I was also confused with it much. Your path looks odd. Not Debian? You may try something like cat /usr/local/cuda/version.txt to see which output?

– Dong Nguyen
Mar 21 '18 at 4:39







Something went wrong with your installation. At first time deal with CUDA, I was also confused with it much. Your path looks odd. Not Debian? You may try something like cat /usr/local/cuda/version.txt to see which output?

– Dong Nguyen
Mar 21 '18 at 4:39






1




1





If so I have no more idea. However I never run them in docker.

– Dong Nguyen
Mar 21 '18 at 4:53





If so I have no more idea. However I never run them in docker.

– Dong Nguyen
Mar 21 '18 at 4:53


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f49396659%2fdocker-with-tensorflow-gpu-importerror-libcublas-so-9-0-cannot-open-shared-o%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Contact image not getting when fetch all contact list from iPhone by CNContact

count number of partitions of a set with n elements into k subsets

A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks