Last active
September 29, 2020 13:04
-
-
Save Tosainu/366c61c5353dbdded2ada3207cb2dfc3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:20.04 | |
ARG DEBIAN_FRONTEND=noninteractive | |
RUN \ | |
apt-get update && \ | |
apt-get install --no-install-recommends -y \ | |
curl ca-certificates git \ | |
gcc g++ libc-dev clang clang cmake make patchutils \ | |
libboost-all-dev libeigen3-dev libyaml-dev libprotobuf-dev protobuf-compiler libgtkmm-3.0-dev \ | |
libarchive-dev python3 python3-mako python3-yaml python3-six ninja-build \ | |
nvidia-cuda-toolkit && \ | |
apt-get autoclean && \ | |
apt-get autoremove && \ | |
rm -rf /var/lib/apt/lists/* | |
RUN \ | |
curl -fsSLO https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb && \ | |
curl -fsSLO https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb && \ | |
echo "3f83b8d599a2ccfd9bdc6c22363d1abdccd02cfb0bffd7350a93e7b961e26ecb libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb" \ | |
| sha256sum -c - && \ | |
echo "07d73672d03836126050e5b78b1a5199fabaa5a540b924903acba00cbfe81848 libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb" \ | |
| sha256sum -c - && \ | |
dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb && \ | |
rm libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb | |
ARG NNABLA_VERSION=v1.11.0 | |
RUN \ | |
mkdir -p /tmp/nnabla /tmp/nnabla-ext-cuda && \ | |
curl -fsSL https://github.com/sony/nnabla/archive/${NNABLA_VERSION}.tar.gz -o nnabla.tar.gz && \ | |
curl -fsSL https://github.com/sony/nnabla-ext-cuda/archive/${NNABLA_VERSION}.tar.gz -o nnabla-ext-cuda.tar.gz && \ | |
echo "adadfc7dd561efe3a533189f377939c05a182aad8740dd793c713aac723111e1 nnabla.tar.gz" \ | |
| sha256sum -c - && \ | |
echo "3b3f2bdde1e7803a97cc46e07f4cf9bc25aa2fde66430658612821f522b69253 nnabla-ext-cuda.tar.gz" \ | |
| sha256sum -c - && \ | |
tar xf nnabla.tar.gz --strip-components=1 -C /tmp/nnabla/ && \ | |
tar xf nnabla-ext-cuda.tar.gz --strip-components=1 -C /tmp/nnabla-ext-cuda/ && \ | |
rm nnabla.tar.gz nnabla-ext-cuda.tar.gz && \ | |
cd /tmp/nnabla && \ | |
sed -i '/# includes/ a find_package(Eigen3 3.3.5 REQUIRED)' CMakeLists.txt && \ | |
sed -i 's!${CMAKE_SOURCE_DIR}/third_party/eigen-3.3.5!${EIGEN3_INCLUDE_DIRS}!' CMakeLists.txt && \ | |
sed -i 's/^download_and_extract_library(eigen/# \0/' third_party/CMakeLists.txt && \ | |
cmake -S . -B build -G Ninja \ | |
-DBUILD_PYTHON_PACKAGE=OFF \ | |
-DPYTHON_COMMAND_NAME=python3 \ | |
-DBUILD_CPP_UTILS=ON && \ | |
cmake --build build && \ | |
cd build && \ | |
ninja install && \ | |
cd /tmp/nnabla-ext-cuda && \ | |
sed -i 's/add_subdirectory(third_party)/# \0/' CMakeLists.txt && \ | |
sed -i '/# includes/ a find_package(Eigen3 3.3.5 REQUIRED)' CMakeLists.txt && \ | |
sed -i 's!${CMAKE_CURRENT_SOURCE_DIR}/third_party/eigen-3.3.5!${EIGEN3_INCLUDE_DIRS}!' CMakeLists.txt && \ | |
cmake -S . -B build -G Ninja \ | |
-DCUDA_HOST_COMPILER=/usr/bin/gcc-8 \ | |
-DNNABLA_DIR=/tmp/nnabla \ | |
-DCPPLIB_LIBRARY=/usr/local/lib/libnnabla.so \ | |
-DCUDA_SELECT_NVCC_ARCH_ARG=Common \ | |
-DBUILD_PYTHON_PACKAGE=OFF \ | |
-DPYTHON_COMMAND_NAME=python3 \ | |
-DBUILD_CPP_LIB=ON \ | |
-DBUILD_CPP_UTILS=ON && \ | |
cmake --build build && \ | |
cd build && \ | |
ninja install && \ | |
cd / && \ | |
rm -rf /tmp/nnabla /tmp/nnabla-ext-cuda |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment