From 81d45c0c6ebcdd66d602f038ef929f671944eea9 Mon Sep 17 00:00:00 2001 From: Nesterov Alexander Date: Wed, 19 Jan 2022 13:12:59 +0300 Subject: [PATCH] Init arm ci (#9757) --- .ci/azure/android_arm64.yml | 110 ++++++++++++++++++++++++++++++++ .ci/azure/linux_arm64.yml | 123 ++++++++++++++++++++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 .ci/azure/android_arm64.yml create mode 100644 .ci/azure/linux_arm64.yml diff --git a/.ci/azure/android_arm64.yml b/.ci/azure/android_arm64.yml new file mode 100644 index 00000000000..d9f2ff85095 --- /dev/null +++ b/.ci/azure/android_arm64.yml @@ -0,0 +1,110 @@ +resources: + repositories: + - repository: openvino_contrib + type: github + endpoint: openvinotoolkit + name: openvinotoolkit/openvino_contrib + +jobs: +- job: android_arm64 + # About 150% of total time + timeoutInMinutes: 120 + + pool: + name: LIN_VMSS_VENV_F16S_U20_WU2 + + variables: + system.debug: true + VSTS_HTTP_RETRY: 5 + VSTS_HTTP_TIMEOUT: 200 + BUILD_TYPE: Release + OPENVINO_REPO_DIR: $(Build.Repository.LocalPath) + REPO_DIR: $(REPO_DIR)/../openvino_contrib + WORK_DIR: $(Pipeline.Workspace)/_w + BUILD_DIR: $(WORK_DIR)/build + ANDROID_TOOLS: $(WORK_DIR)/android_tools + ANDROID_SDK_VERSION: 29 + ANDROID_ABI_CONFIG: arm64-v8a + + steps: + - script: | + curl -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2019-06-01" + whoami + uname -a + echo Python3 info ; which python3 ; python3 --version + echo Python info ; which python ; python --version + echo Java info ; which java ; java -version + echo gcc info ; which gcc ; gcc --version + echo cmake info ; which cmake ; cmake --version + lsb_release + env + cat /proc/cpuinfo + cat /proc/meminfo + cat /etc/fstab + vmstat -s + df + lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd" + free -h + displayName: 'System information' + + - script: | + rm -rf $(WORK_DIR) ; mkdir $(WORK_DIR) + rm -rf $(BUILD_DIR) ; mkdir $(BUILD_DIR) + rm -rf $(ANDROID_TOOLS) ; mkdir $(ANDROID_TOOLS) + displayName: 'Make dir' + + - checkout: self + clean: true + lfs: false + submodules: recursive + path: openvino + + - checkout: openvino_contrib + clean: true + lfs: false + submodules: recursive + path: openvino_contrib + + - script: | + set -e + $(OPENVINO_REPO_DIR)/install_build_dependencies.sh + # Move into contrib install_build_dependencies.sh + sudo apt --assume-yes install scons crossbuild-essential-arm64 libprotoc-dev protobuf-compiler default-jdk + # Speed up build + wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip + unzip ninja-linux.zip + sudo cp -v ninja /usr/local/bin/ + # Install Android SDK, NDK and TOOLS + wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip + unzip commandlinetools-linux-7583922_latest.zip + yes | ./cmdline-tools/bin/sdkmanager --sdk_root=$(ANDROID_TOOLS) --licenses + ./cmdline-tools/bin/sdkmanager --sdk_root=$(ANDROID_TOOLS) --install "ndk-bundle" "platform-tools" "platforms;android-$(ANDROID_SDK_VERSION)" + workingDirectory: $(WORK_DIR) + displayName: 'Install dependencies' + + - task: CMake@1 + inputs: + cmakeArgs: > + -GNinja + -DVERBOSE_BUILD=ON + -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) + -DCMAKE_TOOLCHAIN_FILE=$(ANDROID_TOOLS)/ndk-bundle/build/cmake/android.toolchain.cmake + -DANDROID_ABI=$(ANDROID_ABI_CONFIG) + -DANDROID_STL=c++_shared + -DANDROID_PLATFORM=$(ANDROID_SDK_VERSION) + -DENABLE_OPENCV=OFF + -DENABLE_TESTS=ON + -DENABLE_SAMPLES=ON + -DENABLE_INTEL_VPU=OFF + -DBUILD_java_api=ON + -DTHREADING=SEQ + -DIE_EXTRA_MODULES=$(REPO_DIR)/modules + $(OPENVINO_REPO_DIR) + workingDirectory: $(BUILD_DIR) + + - script: ninja + workingDirectory: $(BUILD_DIR) + displayName: 'Build IE ARM plugin for Android ARM64' + + - script: ls -alR $(OPENVINO_REPO_DIR)/bin/ + displayName: 'List binary files' diff --git a/.ci/azure/linux_arm64.yml b/.ci/azure/linux_arm64.yml new file mode 100644 index 00000000000..07ff9c09816 --- /dev/null +++ b/.ci/azure/linux_arm64.yml @@ -0,0 +1,123 @@ +resources: + repositories: + - repository: openvino_contrib + type: github + endpoint: openvinotoolkit + name: openvinotoolkit/openvino_contrib + +jobs: +- job: linux_arm64 + # About 150% of total time + timeoutInMinutes: 120 + + pool: + name: LIN_VMSS_VENV_F16S_U20_WU2 + + variables: + system.debug: true + VSTS_HTTP_RETRY: 5 + VSTS_HTTP_TIMEOUT: 200 + BUILD_TYPE: Release + OPENVINO_REPO_DIR: $(Build.Repository.LocalPath) + REPO_DIR: $(REPO_DIR)/../openvino_contrib + OPENCV_REPO_DIR: $(REPO_DIR)/../opencv + WORK_DIR: $(Pipeline.Workspace)/_w + BUILD_DIR: $(WORK_DIR)/build + BUILD_DIR_OPENCV: $(WORK_DIR)/build_opencv + + steps: + - script: | + curl -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2019-06-01" + whoami + uname -a + echo Python3 info ; which python3 ; python3 --version + echo Python info ; which python ; python --version + echo Java info ; which java ; java -version + echo gcc info ; which gcc ; gcc --version + echo cmake info ; which cmake ; cmake --version + lsb_release + env + cat /proc/cpuinfo + cat /proc/meminfo + cat /etc/fstab + vmstat -s + df + lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd" + free -h + displayName: 'System information' + + - script: | + rm -rf $(WORK_DIR) ; mkdir $(WORK_DIR) + rm -rf $(BUILD_DIR) ; mkdir $(BUILD_DIR) + displayName: 'Make directory' + + - checkout: self + clean: true + lfs: false + submodules: recursive + path: openvino + + - checkout: openvino_contrib + clean: true + lfs: false + submodules: recursive + path: openvino_contrib + + - script: | + set -e + $(OPENVINO_REPO_DIR)/install_build_dependencies.sh + # Move into contrib install_build_dependencies.sh + sudo apt --assume-yes install scons crossbuild-essential-arm64 libprotoc-dev protobuf-compiler + # OpenCV should provide install_build_dependencies.sh as well + # Move into resources + git clone https://github.com/opencv/opencv.git --depth 1 $(OPENCV_REPO_DIR) + # Speed up build + wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip + unzip ninja-linux.zip + sudo cp -v ninja /usr/local/bin/ + workingDirectory: $(WORK_DIR) + displayName: 'Install dependencies' + + - task: CMake@1 + inputs: + cmakeArgs: > + -GNinja + -DVERBOSE_BUILD=ON + -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) + -DBUILD_LIST=imgcodecs,videoio,highgui + -DCMAKE_TOOLCHAIN_FILE=$(OPENCV_REPO_DIR)/platforms/linux/aarch64-gnu.toolchain.cmake + $(OPENCV_REPO_DIR) + workingDirectory: $(BUILD_DIR_OPENCV) + + - script: ninja + workingDirectory: $(BUILD_DIR_OPENCV) + displayName: 'Build OpenCV Linux ARM64' + + - script: ninja install + workingDirectory: $(BUILD_DIR_OPENCV) + displayName: 'Install OpenCV Linux ARM64' + + - task: CMake@1 + inputs: + cmakeArgs: > + -GNinja + -DVERBOSE_BUILD=ON + -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) + -DCMAKE_TOOLCHAIN_FILE=$(OPENVINO_REPO_DIR)/cmake/arm64.toolchain.cmake + -DOpenCV_DIR=$(BUILD_DIR_OPENCV)/install/lib/cmake/opencv4 + -DENABLE_OPENCV=OFF + -DENABLE_TESTS=ON + -DENABLE_SAMPLES=ON + -DBUILD_java_api=OFF + -DENABLE_INTEL_VPU=OFF + -DTHREADING=SEQ + -DIE_EXTRA_MODULES=$(REPO_DIR)/modules + $(OPENVINO_REPO_DIR) + workingDirectory: $(BUILD_DIR) + + - script: ninja + workingDirectory: $(BUILD_DIR) + displayName: 'Build IE ARM plugin for Linux ARM64' + + - script: ls -alR $(OPENVINO_REPO_DIR)/bin/ + displayName: 'List binary files'