Cuda 10.2 and cublas10 deb package to install on arm64 docker container

My requirement is to run application inside docker on tx2. How to install cuda, cudnn and related libraries inside docker container?

I tried the following.

  1. Mounted /usr/local/cuda/ to docker container (cuda 10.2).
  2. infact the following command
    docker container run --rm --net=host --privileged -e PATH=:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/cm:/usr/lib:/opt/libav/lib:/opt/pylon5/lib64:/usr/lib/aarch64-linux-gnu/tegra:/usr/local/cuda/lib64 --device=/dev/nvhost-ctrl --device=/dev/nvhost-ctrl-gpu --device=/dev/nvhost-prof-gpu --device=/dev/nvmap --device=/dev/nvhost-gpu --device=/dev/nvhost-as-gpu -v /usr/local/cuda-10.2:/usr/local/cuda -v /usr/lib/aarch64-linux-gnu/tegra:/usr/lib/aarch64-linux-gnu/tegra
  3. then I faced issue regarding related to libcudnn.so and libcublas.so.10. I overcome the libcudnn issue by installing libcudnn8_8.0.0.180-1+cuda10.2_arm64.deb and libcudnn8-dev_8.0.0.180-1+cuda10.2_arm64.deb inside docker container.
  4. But still facing issue for libcublas.so.10. how to overcome this?
  5. Or do you have a prebuilt docker image for cuda10.2 an cudnn 8. so that I can simply derived my docker from that.
  6. I have found an image 10.2-cudnn8-devel-ubuntu18.04. but this is applicable for x86_64 I need similar image for arm64.

Eagerly waiting for the image names.

Thanks,
Harendra

Hi,

Could you run the docker with --runtime nvidia?
It will allow the container to use the CUDA library on the host directly.

Thanks.

./example1
2021-05-05 08:16:54.751115: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library ‘libcudart.so.10.2’; dlerror: libcudart.so.10.2: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/lib:/usr/local/lib/cm:/usr/lib:/opt/libav/lib:/opt/pylon5/lib64:/usr/lib/aarch64-linux-gnu/tegra
2021-05-05 08:16:54.751219: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
Hello from TensorFlow C library version 2.3.1

No it is not able to access cudart libraries. I have used the following command

docker container run --rm --runtime nvidia --net=host --privileged -e PATH=:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/cm:/usr/lib:/opt/libav/lib:/opt/pylon5/lib64:/usr/lib/aarch64-linux-gnu/tegra --device=/dev/nvhost-ctrl --device=/dev/nvhost-ctrl-gpu --device=/dev/nvhost-prof-gpu --device=/dev/nvmap --device=/dev/nvhost-gpu --device=/dev/nvhost-as-gpu -v /usr/lib/aarch64-linux-gnu/tegra:/usr/lib/aarch64-linux-gnu/tegra test_container /bin/bash

In the command above I have not mounted “-v /usr/local/cuda-10.2:/usr/local/cuda” to the container. also removed “/usr/local/cuda/bin” from PATH and /usr/local/cuda/lib64 from LD_LIBRARY_PATH variables.