# Copyright (C) 2019 Intel Corporation. All rights reserved. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception FROM ubuntu:20.04 AS base ENV DEBIAN_FRONTEND=noninteractive # hadolint ignore=DL3008 RUN apt-get update && apt-get install -y \ cmake build-essential git curl libssl-dev python3 --no-install-recommends \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3008 RUN apt-get update && apt-get install -y wget ca-certificates --no-install-recommends \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* \ && mkdir /usr/local/share/ca-certificates/cacert.org \ && wget -qP /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt \ && update-ca-certificates \ && git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt # Build TensorFlow Lite VX delegate default built for x86-64 simulator WORKDIR /tmp RUN git clone https://github.com/VeriSilicon/TIM-VX.git tim-vx \ && git clone https://github.com/VeriSilicon/tflite-vx-delegate.git \ && git clone https://github.com/tensorflow/tensorflow.git # Build TIM-VX WORKDIR /tmp/tim-vx/host_build RUN cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../ \ && make -j "$(grep -c ^processor /proc/cpuinfo)" \ && make install WORKDIR /tmp/tim-vx #RUN mkdir -p prebuilt-sdk/x86_64_linux/lib/include #RUN cp prebuilt-sdk/x86_64_linux/include/CL prebuilt-sdk/x86_64_linux/lib/include -fr # Build TensorFlow Lite WORKDIR /tmp/tensorflow/build RUN cmake \ -DBUILD_SHARED_LIBS=ON=on \ -DTFLITE_ENABLE_RUY=on \ -DTFLITE_ENABLE_NNAPI=off \ -DTFLITE_ENABLE_XNNPACK=on \ -DTFLITE_ENABLE_EXTERNAL_DELEGATE=on \ ../tensorflow/lite/ RUN make -j "$(grep -c ^processor /proc/cpuinfo)" \ && make install \ && cp --no-preserve=ownership -d lib*.so* /usr/local/lib \ && cp -r --no-preserve=ownership -d flatbuffers/include/flatbuffers /usr/local/include # install header files RUN install -d /usr/local/include/tensorflow/lite WORKDIR /tmp/tensorflow/tensorflow/lite # hadolint ignore=SC2046 RUN cp --parents \ $(find . -name "*.h*") \ /usr/local/include/tensorflow/lite # install version.h from core RUN install -d /usr/local/include/tensorflow/core/public && \ cp /tmp/tensorflow/tensorflow/core/public/version.h /usr/local/include/tensorflow/core/public # Build Vx Delegate default built for x86-64 simulator WORKDIR /tmp/tflite-vx-delegate/build RUN cmake \ -DBUILD_SHARED_LIBS=ON \ -DFETCHCONTENT_SOURCE_DIR_TENSORFLOW=/tmp/tensorflow \ -DTFLITE_LIB_LOC=/usr/local/lib/libtensorflow-lite.so \ -DTIM_VX_INSTALL=/usr/local \ -DCMAKE_INSTALL_PREFIX=/usr/ \ ../ RUN make vx_delegate -j "$(grep -c ^processor /proc/cpuinfo)" \ && make install \ && cp --no-preserve=ownership -d lib*.so* /usr/lib # install header files RUN install -d /usr/local/include/tensorflow-lite-vx-delegate WORKDIR /tmp/tflite-vx-delegate/ # hadolint ignore=SC2046 RUN cp --parents \ $(find . -name "*.h*") \ /usr/local/include/tensorflow-lite-vx-delegate ENV VIVANTE_SDK_DIR=/tmp/tim-vx/prebuilt-sdk/x86_64_linux/ ENV VSIMULATOR_CONFIG=czl ENV LD_LIBRARY_PATH=/tmp/tim-vx/prebuilt-sdk/x86_64_linux/lib:/usr/local/lib:/lib/x86_64-linux-gnu/:/lib64/:/usr/lib:$LD_LIBRARY_PATH # Build WASI-NN WORKDIR /home/wamr COPY . . WORKDIR /home/wamr/core/iwasm/libraries/wasi-nn/test/build # hadolint ignore=SC2086 RUN cmake \ -DCMAKE_LIBRARY_PATH=${CMAKE_LIBRARY_PATH}:/usr/local/lib/ \ -DCMAKE_INCLUDE_PATH=${CMAKE_INCLUDE_PATH}:/usr/local/include/ \ -DWAMR_BUILD_WASI_NN=1 \ -DWAMR_BUILD_WASI_NN_ENABLE_EXT=1 \ -DWASI_NN_EXT_DELEGATE_PATH="/usr/lib/libvx_delegate.so" \ .. RUN make -j "$(grep -c ^processor /proc/cpuinfo)" RUN cp /home/wamr/core/iwasm/libraries/wasi-nn/test/build/iwasm /run/iwasm ENTRYPOINT [ "/run/iwasm" ]