Dynamic shape changes for llama3 #25
Workflow file for this run
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
name: Android ARM64 with vcpkg | |
on: | |
workflow_dispatch: | |
pull_request: | |
merge_group: | |
push: | |
branches: | |
# - master | |
- 'releases/**' | |
concurrency: | |
# github.ref is not unique in post-commit | |
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-android-arm64-vcpkg | |
cancel-in-progress: true | |
permissions: read-all | |
jobs: | |
Smart_CI: | |
runs-on: ubuntu-latest | |
outputs: | |
affected_components: "${{ steps.smart_ci.outputs.affected_components }}" | |
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}" | |
steps: | |
- name: checkout action | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
sparse-checkout: .github/actions/smart-ci | |
- name: Get affected components | |
id: smart_ci | |
uses: ./.github/actions/smart-ci | |
with: | |
repository: ${{ github.repository }} | |
pr: ${{ github.event.number }} | |
commit_sha: ${{ github.sha }} | |
ref_name: ${{ github.ref_name }} | |
component_pattern: "category: (.*)" | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
skip_when_only_listed_labels_set: 'docs' | |
skip_when_only_listed_files_changed: '*.md,*.rst,*.png,*.jpg,*.svg,*/layer_tests_summary/*,*/conformance/*' | |
Build: | |
needs: Smart_CI | |
timeout-minutes: 150 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores-32gb | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
volumes: | |
- /mount:/mount | |
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
CMAKE_GENERATOR: 'Ninja' | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
SCCACHE_IGNORE_SERVER_IO_ERROR: 1 | |
SCCACHE_SERVER_PORT: 35555 | |
SCCACHE_ERROR_LOG: /__w/openvino/sccache_log.txt | |
SCCACHE_LOG: warn | |
OPENVINO_REPO: '/__w/openvino/openvino/openvino' | |
VCPKG_ROOT: '/__w/openvino/openvino/vcpkg' | |
BUILD_DIR: '/__w/openvino/openvino/build' | |
ANDROID_TOOLS: '/__w/openvino/openvino/android_tools' | |
ANDROID_NDK_HOME: '/__w/openvino/openvino/android_tools/ndk-bundle' | |
ANDROID_SDK_VERSION: 29 | |
ANDROID_ABI_CONFIG: arm64-v8a | |
VCPKG_DEFAULT_BINARY_CACHE: '/mount/caches/ccache/android_arm64/vcpkg_cache' | |
VCPKG_FORCE_SYSTEM_BINARIES: '1' | |
SCCACHE_AZURE_KEY_PREFIX: android_arm64 | |
if: "!needs.smart_ci.outputs.skip_workflow" | |
steps: | |
- name: Install git | |
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates | |
- name: Clone OpenVINO | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
path: 'openvino' | |
- name: Init submodules for non vcpkg dependencies | |
run: | | |
pushd ${OPENVINO_REPO} | |
git submodule update --init -- ${OPENVINO_REPO}/src/plugins | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/zlib | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/json | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/gtest | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/gflags | |
popd | |
- name: Clone vcpkg | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
repository: 'microsoft/vcpkg' | |
# Keep in sync with <root>/vcpkg.json <builtin-baseline> | |
ref: '7ba0ba7334c3346e7eee1e049ba85da193a8d821' | |
path: 'vcpkg' | |
fetch-depth: '0' | |
# | |
# Print system info | |
# | |
- name: System info | |
uses: ./openvino/.github/actions/system_info | |
# | |
# Dependencies | |
# | |
- name: Install dependencies | |
run: | | |
# generic dependencies | |
apt --assume-yes install ccache scons ninja-build build-essential python3-pip | |
# vcpkg requires cmake 3.19 or later | |
python3 -m pip install -U pip cmake~=3.28.0 | |
# vcpkg's tool dependencies | |
apt --assume-yes install curl zip unzip tar | |
# vcpkg 'python3' port dependencies | |
apt --assume-yes install autoconf libtool autoconf-archive | |
# vcpkg tree of dependencies require extra packages | |
apt --assume-yes install pkgconf linux-libc-dev | |
# Install Android SDK, NDK and Tools | |
apt -y --no-install-recommends install unzip wget default-jdk | |
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip | |
unzip commandlinetools-linux-7583922_latest.zip | |
echo "yes" | ./cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_TOOLS} --install "ndk-bundle" "platform-tools" "platforms;android-${{ env.ANDROID_SDK_VERSION }}" | |
- name: Install sccache | |
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4 | |
with: | |
version: "v0.7.5" | |
# | |
# Build | |
# | |
- name: Build vcpkg | |
run: | | |
mkdir -p ${VCPKG_DEFAULT_BINARY_CACHE} | |
${VCPKG_ROOT}/bootstrap-vcpkg.sh | |
# patch vcpkg default toolchain to build only Release configuration | |
echo "set(VCPKG_BUILD_TYPE release)" >> ${VCPKG_ROOT}/triplets/arm64-android.cmake | |
- name: CMake - configure | |
run: | | |
cmake \ | |
-G '${{ env.CMAKE_GENERATOR }}' \ | |
-DENABLE_INTEL_GPU=ON \ | |
-DENABLE_TESTS=ON \ | |
-DENABLE_SYSTEM_OPENCL=ON \ | |
-DENABLE_SYSTEM_PROTOBUF=ON \ | |
-DENABLE_SYSTEM_PUGIXML=ON \ | |
-DENABLE_SYSTEM_SNAPPY=ON \ | |
-DENABLE_SYSTEM_TBB=ON \ | |
-DENABLE_SYSTEM_FLATBUFFERS=ON \ | |
-DANDROID_ABI=${{ env.ANDROID_ABI_CONFIG }} \ | |
-DANDROID_PLATFORM=${{ env.ANDROID_SDK_VERSION }} \ | |
-DVCPKG_TARGET_TRIPLET=arm64-android \ | |
-DVCPKG_HOST_TRIPLET=x64-linux-release \ | |
-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake \ | |
-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \ | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ | |
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ | |
-S ${OPENVINO_REPO} \ | |
-B ${BUILD_DIR} | |
- name: Clean ccache stats | |
run: ${SCCACHE_PATH} --zero-stats | |
- name: Cmake - build | |
run: cmake --build ${BUILD_DIR} --parallel | |
- name: Show ccache stats | |
run: ${SCCACHE_PATH} --show-stats | |
# | |
# Upload build logs | |
# | |
- name: Upload build logs | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
if: always() | |
with: | |
name: build_logs | |
path: ${{ env.SCCACHE_ERROR_LOG }} | |
if-no-files-found: 'ignore' | |
Overall_Status: | |
name: ci/gha_overall_status_android | |
needs: [Smart_CI, Build] | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check status of all jobs | |
if: >- | |
${{ | |
contains(needs.*.result, 'failure') || | |
contains(needs.*.result, 'cancelled') | |
}} | |
run: exit 1 |