Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Tosainu
Last active September 29, 2020 13:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tosainu/366c61c5353dbdded2ada3207cb2dfc3 to your computer and use it in GitHub Desktop.
Save Tosainu/366c61c5353dbdded2ada3207cb2dfc3 to your computer and use it in GitHub Desktop.
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