|
| 1 | +#!/bin/bash |
| 2 | +# Copyright (c) Meta Platforms, Inc. and affiliates. |
| 3 | +# Copyright (c) Samsung Electronics Co. LTD |
| 4 | +# All rights reserved. |
| 5 | +# |
| 6 | +# This source code is licensed under the BSD-style license found in the |
| 7 | +# LICENSE file in the root directory of this source tree. |
| 8 | + |
| 9 | +set -ex |
| 10 | + |
| 11 | + |
| 12 | +download_ai_lite_core() { |
| 13 | + API_BASE="https://soc-developer.semiconductor.samsung.com/api/v1/resource/ai-litecore/download" |
| 14 | + API_KEY="kn10SoSY3hkC-9Qny5TqD2mnqVrlupv3krnjLeBt5cY" |
| 15 | + |
| 16 | + VERSION="0.5" |
| 17 | + OS_NAME="Ubuntu 22.04" |
| 18 | + OUT_FILE="/tmp/exynos-ai-litecore-v${VERSION}.tar.gz" |
| 19 | + TARGET_PATH="/tmp/exynos_ai_lite_core" |
| 20 | + |
| 21 | + mkdir -p ${TARGET_PATH} |
| 22 | + # Presigned issue URL |
| 23 | + JSON_RESP=$(curl -sS -G \ |
| 24 | + --location --fail --retry 3 \ |
| 25 | + -H "apikey: ${API_KEY}" \ |
| 26 | + --data-urlencode "version=${VERSION}" \ |
| 27 | + --data-urlencode "os=${OS_NAME}" \ |
| 28 | + "${API_BASE}") |
| 29 | + |
| 30 | + DOWNLOAD_URL=$(echo "$JSON_RESP" | sed -n 's/.*"data":[[:space:]]*"\([^"]*\)".*/\1/p') |
| 31 | + |
| 32 | + if [[ -z "$DOWNLOAD_URL" ]]; then |
| 33 | + echo "Failed to extract download URL" |
| 34 | + echo "$JSON_RESP" |
| 35 | + exit 1 |
| 36 | + fi |
| 37 | + |
| 38 | + # Download LiteCore |
| 39 | + curl -sS -L --fail --retry 3 \ |
| 40 | + --output "$OUT_FILE" \ |
| 41 | + "$DOWNLOAD_URL" |
| 42 | + |
| 43 | + echo "Download done: $OUT_FILE" |
| 44 | + |
| 45 | + |
| 46 | + tar -C "${TARGET_PATH}" --strip-components=1 -xzvf "${OUT_FILE}" |
| 47 | + |
| 48 | + export EXYNOS_AI_LITECORE_ROOT=${TARGET_PATH} |
| 49 | + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:${EXYNOS_AI_LITECORE_ROOT}/lib/x86_64-linux |
| 50 | +} |
| 51 | + |
| 52 | +install_enn_backend() { |
| 53 | + NDK_INSTALLATION_DIR=/opt/ndk |
| 54 | + rm -rf "${NDK_INSTALLATION_DIR}" && sudo mkdir -p "${NDK_INSTALLATION_DIR}" |
| 55 | + ANDROID_NDK_VERSION=r27b |
| 56 | + |
| 57 | + pushd . |
| 58 | + cd /tmp |
| 59 | + curl -Os --retry 3 "https://ossci-android.s3.amazonaws.com/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" |
| 60 | + unzip -qo "android-ndk-${ANDROID_NDK_VERSION}-linux.zip" |
| 61 | + |
| 62 | + # Print the content for manual verification |
| 63 | + ls -lah "android-ndk-${ANDROID_NDK_VERSION}" |
| 64 | + sudo mv "android-ndk-${ANDROID_NDK_VERSION}"/* "${NDK_INSTALLATION_DIR}" |
| 65 | + popd |
| 66 | + # build Exynos backend |
| 67 | + export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/ndk} |
| 68 | + bash backends/samsung/build.sh --build all |
| 69 | + # set env variable |
| 70 | + export EXECUTORCH_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)" |
| 71 | + export PYTHONPATH=${PYTHONPATH:-}:${EXECUTORCH_ROOT}/.. |
| 72 | +} |
| 73 | + |
| 74 | +AI_LITE_CORE_VERSION=0.5.0 |
| 75 | + |
| 76 | +download_ai_lite_core ${AI_LITE_CORE_VERSION} |
| 77 | +install_enn_backend |
0 commit comments