From 81cec5d69c8e39c7f644350bb5ed5972faaa61f6 Mon Sep 17 00:00:00 2001 From: James Conroy Date: Thu, 4 Aug 2022 17:49:23 +0100 Subject: IVGCVSW-6777 Replace old Dockerfile with build-tool * Removed old Dockerfile and associated docs. * Keeping README as it currently ranks highly on web searches for "armnn docker" and providing a link to new alternative Arm NN Build Tool. Change-Id: I0ce79cedffa035728e394c116912f36481804931 Signed-off-by: James Conroy --- docker/README.md | 25 +-- docker/armnn-android/Dockerfile.license | 4 - docker/x86_64/Dockerfile | 295 -------------------------------- docker/x86_64/Dockerfile.license | 4 - 4 files changed, 2 insertions(+), 326 deletions(-) delete mode 100644 docker/armnn-android/Dockerfile.license delete mode 100644 docker/x86_64/Dockerfile delete mode 100644 docker/x86_64/Dockerfile.license diff --git a/docker/README.md b/docker/README.md index cd4ed3d913..bd0ec9cf83 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,29 +1,8 @@ # ARMNN Docker Files -## [ArmNN on x86_64 for arm64 and arm32](https://github.com/ARM-software/armnn/blob/branches/armnn_20_02/BuildGuideCrossCompilation.md) - -x86_64 folder has the docker file to build ArmNN under an x86_64 system to target an Arm64 and Arm32 systems. - -# To build a docker images -```bash -docker build --rm --build-arg proxy=$http_proxy --rm --tag armnn:v1 . -``` - -# To Run docker images -```bash -docker run -v /etc/localtime:/etc/localtime:ro --rm -it -e http_proxy -e https_proxy -e ftp_proxy -v `pwd`:/work armnn:v1 bash -``` - -# To run a docker with X11 support for GUI Application -```bash -docker run -v /etc/localtime:/etc/localtime:ro --rm -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -e http_proxy -e https_proxy -e ftp_proxy -v `pwd`:/work armnn:v1 bash -``` - -# To mount the camera and access camera from docker env -```bash -docker run -v /etc/localtime:/etc/localtime:ro --rm -it --device /dev/video0 -e http_proxy -e https_proxy -e ftp_proxy -v `pwd`:/work armnn:v1 bash -``` +A productized Arm NN Docker solution has been released as part of our new Arm NN Build Tool which can be found at this link on our GitHub website: https://github.com/ARM-software/armnn/tree/HEAD/build-tool +The above link automatically points to the latest release version of the Arm NN Build Tool and will be live when Arm NN 22.08 is released. diff --git a/docker/armnn-android/Dockerfile.license b/docker/armnn-android/Dockerfile.license deleted file mode 100644 index 344cf33718..0000000000 --- a/docker/armnn-android/Dockerfile.license +++ /dev/null @@ -1,4 +0,0 @@ -# -# Copyright © 2020 Arm Ltd and Contributors. All rights reserved. -# SPDX-License-Identifier: MIT -# diff --git a/docker/x86_64/Dockerfile b/docker/x86_64/Dockerfile deleted file mode 100644 index e96b1e9e3d..0000000000 --- a/docker/x86_64/Dockerfile +++ /dev/null @@ -1,295 +0,0 @@ -FROM ubuntu:18.04 -ENV TERM linux -ENV DEBIAN_FRONTEND noninteractive - -# Forward system proxy setting -# ARG proxy -# ENV http_proxy $proxy -# ENV https_proxy $proxy - -# Basic apt update -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends locales ca-certificates && rm -rf /var/lib/apt/lists/* - -# Set the locale to en_US.UTF-8, because the Yocto build fails without any locale set. -RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LC_ALL en_US.UTF-8 - -# Again, off the certificare -RUN echo "check_certificate = off" >> ~/.wgetrc -RUN echo "[global] \n\ -trusted-host = pypi.python.org \n \ -\t pypi.org \n \ -\t files.pythonhosted.org" >> /etc/pip.conf - -# Get basic packages -RUN apt-get update && apt-get install -y \ - apparmor \ - aufs-tools \ - automake \ - bash-completion \ - btrfs-tools \ - build-essential \ - cmake \ - createrepo \ - curl \ - dpkg-sig \ - g++ \ - gcc \ - git \ - iptables \ - jq \ - libapparmor-dev \ - libc6-dev \ - libcap-dev \ - libsystemd-dev \ - libyaml-dev \ - mercurial \ - net-tools \ - parallel \ - pkg-config \ - python-dev \ - python-mock \ - python-pip \ - python-setuptools \ - python-websocket \ - golang-go \ - iproute2 \ - iputils-ping \ - vim-common \ - vim \ - wget \ - libtool \ - unzip \ - scons \ - curl \ - autoconf \ - libtool \ - build-essential \ - libssl-dev \ - g++ && rm -rf /var/lib/apt/lists/* - -# Install Cross-compiling ToolChain -RUN apt-get update && apt-get install -y crossbuild-essential-arm64 crossbuild-essential-armhf - -# Install Cmake 3.19 -RUN cd $HOME && \ - wget -O cmake-3.19.0.tar.gz https://cmake.org/files/v3.19/cmake-3.19.0.tar.gz && \ - tar -xzf cmake-3.19.0.tar.gz && \ - cd $HOME/cmake-3.19.0 && \ - ./bootstrap && \ - make && \ - make install - -# Build and install Google's Protobuf library -# Download and Extract -RUN mkdir -p $HOME/google && \ - cd $HOME/google && \ - wget https://github.com/protocolbuffers/protobuf/releases/download/v3.12.0/protobuf-all-3.12.0.tar.gz && \ - tar -zxvf protobuf-all-3.12.0.tar.gz - -# Build a native (x86_64) version -RUN cd $HOME/google/protobuf-3.12.0 && \ - mkdir x86_build && cd x86_build && \ - ../configure --prefix=$HOME/armnn-devenv/google/x86_64_pb_install && \ - make install -j$(nproc) - -# Build the arm64 version of the protobuf libraries -RUN cd $HOME/google/protobuf-3.12.0 && \ - mkdir arm64_build && cd arm64_build && \ - export CC=aarch64-linux-gnu-gcc && \ - export CXX=aarch64-linux-gnu-g++ && \ - ../configure --host=aarch64-linux \ - --prefix=$HOME/armnn-devenv/google/arm64_pb_install \ - --with-protoc=$HOME/armnn-devenv/google/x86_64_pb_install/bin/protoc && \ - make install -j$(nproc) - -# Build the arm32 version of the protobuf libraries -RUN cd $HOME/google/protobuf-3.12.0 && \ - mkdir arm32_build && cd arm32_build && \ - export CC=arm-linux-gnueabihf-gcc && \ - export CXX=arm-linux-gnueabihf-g++ && \ - ../configure --host=arm-linux \ - --prefix=$HOME/armnn-devenv/google/arm32_pb_install \ - --with-protoc=$HOME/armnn-devenv/google/x86_64_pb_install/bin/protoc && \ - make install -j$(nproc) - -# Dep Error - Bug ARMNN -RUN apt-get update && apt-get install -y \ - python-numpy - -# Setup Env -# ENV PATH=$HOME/armnn-devenv/google/x86_64_pb_install/bin/:$PATH -# ENV LD_LIBRARY_PATH=$HOME/armnn-devenv/google/x86_64_pb_install/lib/:$LD_LIBRARY_PATH - -# Download ArmNN 64-bit -RUN cd $HOME/armnn-devenv && git clone "https://review.mlplatform.org/ml/armnn" && \ - cd armnn/ && git checkout master - -# Download ArmNN 32-bit -RUN cd $HOME/armnn-devenv && git clone "https://review.mlplatform.org/ml/armnn" armnn-32 && \ - cd armnn-32/ && git checkout master - -# Build 64-bit Compute Library -RUN cd $HOME/armnn-devenv/ && git clone https://review.mlplatform.org/ml/ComputeLibrary && \ - cd ComputeLibrary && \ - git checkout $($HOME/armnn-devenv/armnn/scripts/get_compute_library.sh -p) && \ - scons Werror=0 arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" -j$(nproc) - -# Build 32-bit Compute Library -RUN cd $HOME/armnn-devenv/ && mkdir ComputeLibrary_32 && git clone https://review.mlplatform.org/ml/ComputeLibrary ComputeLibrary_32 && \ - cd ComputeLibrary_32 &&\ - git checkout $($HOME/armnn-devenv/armnn/scripts/get_compute_library.sh -p) && \ - scons Werror=0 arch=armv7a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" -j$(nproc) - -# Download Tensorflow (Checkout latest tested version of TF using get_tensorflow.sh) -RUN cd $HOME/armnn-devenv && \ - git clone https://github.com/tensorflow/tensorflow.git && \ - cd tensorflow && \ - git checkout $($HOME/armnn-devenv/armnn/scripts/get_tensorflow.sh -p) - -# Build 64-bit TF Lite -RUN cd $HOME/armnn-devenv && \ - curl -LO https://storage.googleapis.com/mirror.tensorflow.org/developer.arm.com/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz && \ - mkdir tflite-toolchains &&\ - tar xvf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C tflite-toolchains && \ - mkdir -p tflite/build && \ - cd tflite/build && \ - ARMCC_PREFIX=$HOME/armnn-devenv/tflite-toolchains/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu- && \ - ARMCC_FLAGS="-funsafe-math-optimizations" && \ - cmake -DCMAKE_C_COMPILER=${ARMCC_PREFIX}gcc \ - -DCMAKE_CXX_COMPILER=${ARMCC_PREFIX}g++ \ - -DCMAKE_C_FLAGS="${ARMCC_FLAGS}" -DCMAKE_CXX_FLAGS="${ARMCC_FLAGS}" \ - -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_SYSTEM_NAME=Linux \ - -DTFLITE_ENABLE_XNNPACK=OFF \ - -DCMAKE_SYSTEM_PROCESSOR=aarch64 \ - $HOME/armnn-devenv/tensorflow/tensorflow/lite/ && \ - cmake --build . - -# Build 32-bit TF Lite -RUN cd $HOME/armnn-devenv && \ - curl -LO https://storage.googleapis.com/mirror.tensorflow.org/developer.arm.com/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz && \ - mkdir tflite-toolchains-32 && \ - tar xf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C tflite-toolchains-32 && \ - mkdir -p tflite-32/build && \ - cd tflite-32/build && \ - ARMCC_PREFIX=$HOME/armnn-devenv/tflite-toolchains-32/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- && \ - ARMCC_FLAGS="-funsafe-math-optimizations" && \ - cmake -DCMAKE_C_COMPILER=${ARMCC_PREFIX}gcc \ - -DCMAKE_CXX_COMPILER=${ARMCC_PREFIX}g++ \ - -DCMAKE_C_FLAGS="${ARMCC_FLAGS}" -DCMAKE_CXX_FLAGS="${ARMCC_FLAGS}" \ - -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_SYSTEM_NAME=Linux \ - -DTFLITE_ENABLE_XNNPACK=OFF \ - -DCMAKE_SYSTEM_PROCESSOR=armv7a \ - $HOME/armnn-devenv/tensorflow/tensorflow/lite/ && \ - cmake --build . - -# Download Flatbuffers -RUN cd $HOME/armnn-devenv && \ - wget -O flatbuffers-1.12.0.tar.gz https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz && \ - tar xf flatbuffers-1.12.0.tar.gz && \ - cd flatbuffers-1.12.0 && \ - rm -f CMakeCache.txt - -# Build native x86_64 version of Flatbuffers -RUN cd $HOME/armnn-devenv && cd flatbuffers-1.12.0 && \ - mkdir build && \ - cd build && \ - cmake .. -DFLATBUFFERS_BUILD_FLATC=1 \ - -DCMAKE_INSTALL_PREFIX:PATH=$HOME/armnn-devenv/flatbuffers \ - -DFLATBUFFERS_BUILD_TESTS=0 && \ - make all install -j$(nproc) - -# Build arm64 version of Flatbuffers -RUN cd $HOME/armnn-devenv && cd flatbuffers-1.12.0 && \ - mkdir build-arm64 && \ - cd build-arm64 && \ - CXXFLAGS="-fPIC" cmake .. -DCMAKE_C_COMPILER=/usr/bin/aarch64-linux-gnu-gcc \ - -DCMAKE_CXX_COMPILER=/usr/bin/aarch64-linux-gnu-g++ \ - -DFLATBUFFERS_BUILD_FLATC=1 \ - -DCMAKE_INSTALL_PREFIX:PATH=$HOME/armnn-devenv/flatbuffers-arm64 \ - -DFLATBUFFERS_BUILD_TESTS=0 && \ - make all install -j$(nproc) - -# Build arm32 version of Flatbuffers -RUN cd $HOME/armnn-devenv && cd flatbuffers-1.12.0 && \ - mkdir build-arm32 && \ - cd build-arm32 && \ - CXXFLAGS="-fPIC" cmake .. -DCMAKE_C_COMPILER=/usr/bin/arm-linux-gnueabihf-gcc \ - -DCMAKE_CXX_COMPILER=/usr/bin/arm-linux-gnueabihf-g++ \ - -DFLATBUFFERS_BUILD_FLATC=1 \ - -DCMAKE_INSTALL_PREFIX:PATH=$HOME/armnn-devenv/flatbuffers-arm32 \ - -DFLATBUFFERS_BUILD_TESTS=0 && \ - make all install -j$(nproc) - -# Build onnx -RUN cd $HOME/armnn-devenv && git clone https://github.com/onnx/onnx.git && \ - cd onnx && \ - git fetch https://github.com/onnx/onnx.git 553df22c67bee5f0fe6599cff60f1afc6748c635 && git checkout FETCH_HEAD && \ - LD_LIBRARY_PATH=$HOME/armnn-devenv/google/x86_64_pb_install/lib:$LD_LIBRARY_PATH \ - $HOME/armnn-devenv/google/x86_64_pb_install/bin/protoc \ - onnx/onnx.proto --proto_path=. --proto_path=../google/x86_64_pb_install/include --cpp_out $HOME/armnn-devenv/onnx - -# Generate TF Lite Schema 64-bit -RUN cd $HOME/armnn-devenv && \ - cd tflite && \ - cp ../tensorflow/tensorflow/lite/schema/schema.fbs . && \ - ../flatbuffers-1.12.0/build/flatc -c --gen-object-api --reflect-types --reflect-names schema.fbs - -# Generate TF Lite Schema 32-bit -RUN cd $HOME/armnn-devenv && \ - cd tflite-32 && \ - cp ../tensorflow/tensorflow/lite/schema/schema.fbs . && \ - ../flatbuffers-1.12.0/build/flatc -c --gen-object-api --reflect-types --reflect-names schema.fbs - -# Build 64-bit ArmNN -RUN cd $HOME/armnn-devenv && \ - cd armnn && mkdir build && cd build && \ - export CXX=aarch64-linux-gnu-g++ && \ - export CC=aarch64-linux-gnu-gcc && \ - cmake .. \ - -DCMAKE_CXX_FLAGS=-w \ - -DBUILD_TESTS=1 \ - -DARMCOMPUTE_ROOT=$HOME/armnn-devenv/ComputeLibrary \ - -DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary/build/ \ - -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 \ - -DONNX_GENERATED_SOURCES=$HOME/armnn-devenv/onnx \ - -DBUILD_ONNX_PARSER=1 \ - -DBUILD_TF_LITE_PARSER=1 \ - -DBUILD_ARMNN_TFLITE_DELEGATE=1 \ - -DTENSORFLOW_ROOT=$HOME/armnn-devenv/tensorflow \ - -DTFLITE_LIB_ROOT=$HOME/armnn-devenv/tflite/build \ - -DTF_LITE_SCHEMA_INCLUDE_PATH=$HOME/armnn-devenv/tflite \ - -DFLATBUFFERS_ROOT=$HOME/armnn-devenv/flatbuffers-arm64 \ - -DFLATC_DIR=$HOME/armnn-devenv/flatbuffers-1.12.0/build \ - -DPROTOBUF_ROOT=$HOME/armnn-devenv/google/x86_64_pb_install \ - -DPROTOBUF_LIBRARY_DEBUG=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.23.0.0 \ - -DPROTOBUF_LIBRARY_RELEASE=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.23.0.0 && \ - make -j$(nproc) - -# Build 32-bit ArmNN -RUN cd $HOME/armnn-devenv && \ - cd armnn-32 && mkdir build && cd build && \ - export CXX=arm-linux-gnueabihf-g++ && \ - export CC=arm-linux-gnueabihf-gcc && \ - cmake .. \ - -DCMAKE_CXX_FLAGS=-w \ - -DBUILD_TESTS=1 \ - -DARMCOMPUTE_ROOT=$HOME/armnn-devenv/ComputeLibrary_32 \ - -DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary_32/build/ \ - -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 \ - -DONNX_GENERATED_SOURCES=$HOME/armnn-devenv/onnx \ - -DBUILD_ONNX_PARSER=1 \ - -DBUILD_TF_LITE_PARSER=1 \ - -DBUILD_ARMNN_TFLITE_DELEGATE=1 \ - -DTENSORFLOW_ROOT=$HOME/armnn-devenv/tensorflow \ - -DTFLITE_LIB_ROOT=$HOME/armnn-devenv/tflite-32/build \ - -DTF_LITE_SCHEMA_INCLUDE_PATH=$HOME/armnn-devenv/tflite-32 \ - -DFLATBUFFERS_ROOT=$HOME/armnn-devenv/flatbuffers-arm32 \ - -DFLATC_DIR=$HOME/armnn-devenv/flatbuffers-1.12.0/build \ - -DPROTOBUF_ROOT=$HOME/armnn-devenv/google/x86_64_pb_install \ - -DPROTOBUF_LIBRARY_DEBUG=$HOME/armnn-devenv/google/arm32_pb_install/lib/libprotobuf.so.23.0.0 \ - -DPROTOBUF_LIBRARY_RELEASE=$HOME/armnn-devenv/google/arm32_pb_install/lib/libprotobuf.so.23.0.0 \ - -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON && \ - make -j$(nproc) - diff --git a/docker/x86_64/Dockerfile.license b/docker/x86_64/Dockerfile.license deleted file mode 100644 index 6b63511843..0000000000 --- a/docker/x86_64/Dockerfile.license +++ /dev/null @@ -1,4 +0,0 @@ -# -# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved. -# SPDX-License-Identifier: MIT -# -- cgit v1.2.1