From 91d6452c355ddce124f7e44120a8e483c7123491 Mon Sep 17 00:00:00 2001 From: Guang Yang Date: Mon, 7 Oct 2024 19:42:41 -0700 Subject: [PATCH] Move benchmark apps to extension/benchmark dir (#5951) Summary: Pull Request resolved: https://github.com/pytorch/executorch/pull/5951 Reviewed By: huydhn Differential Revision: D64012575 Pulled By: guangy10 fbshipit-source-id: 27bb25586af2aafb8df6c0623d502482b4fa238b (cherry picked from commit ac2ae072e0c54171b995432129ea5dcd20d74eb0) --- .github/workflows/android-perf.yml | 75 ++++++++++++++++++ .github/workflows/android.yml | 1 + .github/workflows/apple-perf.yml | 6 +- .github/workflows/apple.yml | 68 ++++++++++++++++ .github/workflows/lint.yml | 2 +- .../workflows/upload-android-test-specs.yml | 8 +- .github/workflows/upload-apple-test-specs.yml | 8 +- build/build_android_llm_demo.sh | 10 +-- build/build_apple_llm_demo.sh | 2 +- .../android/benchmark/.gitignore | 0 .../android/benchmark/README.md | 0 .../android-llm-device-farm-test-spec.yml | 0 .../android/benchmark/app/.gitignore | 0 .../android/benchmark/app/build.gradle.kts | 0 .../android/benchmark/app/proguard-rules.pro | 0 .../minibench/ExampleInstrumentedTest.java | 0 .../app/src/main/AndroidManifest.xml | 0 .../pytorch/minibench/BenchmarkActivity.java | 0 .../pytorch/minibench/BenchmarkMetric.java | 0 .../minibench/LlmBenchmarkActivity.java | 0 .../org/pytorch/minibench/ModelRunner.java | 0 .../minibench/ModelRunnerCallback.java | 0 .../app/src/main/res/values/colors.xml | 0 .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/themes.xml | 0 .../pytorch/minibench/ExampleUnitTest.java | 0 .../android/benchmark/build.gradle.kts | 0 .../android/benchmark/gradle.properties | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../{ => benchmark}/android/benchmark/gradlew | 0 .../android/benchmark/gradlew.bat | 0 .../android/benchmark/settings.gradle.kts | 0 extension/benchmark/apple/.clang-format | 45 +++++++++++ .../apple/Benchmark/App/App.entitlements | 0 .../apple/Benchmark/App/App.swift | 0 .../Benchmark.xcodeproj/project.pbxproj | 16 ++-- .../xcshareddata/xcschemes/Benchmark.xcscheme | 0 .../Frameworks/download_frameworks.sh | 0 .../{ => benchmark}/apple/Benchmark/README.md | 16 ++-- .../apple/Benchmark/Resources/README.md | 0 .../Benchmark/TestUtils/DynamicTestCase.h | 0 .../Benchmark/TestUtils/DynamicTestCase.m | 0 .../Benchmark/TestUtils/ResourceTestCase.h | 0 .../Benchmark/TestUtils/ResourceTestCase.m | 0 .../apple/Benchmark/Tests/GenericTests.mm | 0 .../apple/Benchmark/Tests/LLaMA/LLaMATests.mm | 0 .../apple/Benchmark/Tests/Tests.xcconfig | 6 +- .../apple/Benchmark/Tests/Tests.xctestplan | 0 ...fault-ios-device-farm-appium-test-spec.yml | 0 50 files changed, 226 insertions(+), 37 deletions(-) rename extension/{ => benchmark}/android/benchmark/.gitignore (100%) rename extension/{ => benchmark}/android/benchmark/README.md (100%) rename extension/{ => benchmark}/android/benchmark/android-llm-device-farm-test-spec.yml (100%) rename extension/{ => benchmark}/android/benchmark/app/.gitignore (100%) rename extension/{ => benchmark}/android/benchmark/app/build.gradle.kts (100%) rename extension/{ => benchmark}/android/benchmark/app/proguard-rules.pro (100%) rename extension/{ => benchmark}/android/benchmark/app/src/androidTest/java/org/pytorch/minibench/ExampleInstrumentedTest.java (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/AndroidManifest.xml (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkActivity.java (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkMetric.java (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/java/org/pytorch/minibench/LlmBenchmarkActivity.java (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunner.java (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunnerCallback.java (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/res/values/colors.xml (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/res/values/strings.xml (100%) rename extension/{ => benchmark}/android/benchmark/app/src/main/res/values/themes.xml (100%) rename extension/{ => benchmark}/android/benchmark/app/src/test/java/org/pytorch/minibench/ExampleUnitTest.java (100%) rename extension/{ => benchmark}/android/benchmark/build.gradle.kts (100%) rename extension/{ => benchmark}/android/benchmark/gradle.properties (100%) rename extension/{ => benchmark}/android/benchmark/gradle/wrapper/gradle-wrapper.jar (100%) rename extension/{ => benchmark}/android/benchmark/gradle/wrapper/gradle-wrapper.properties (100%) rename extension/{ => benchmark}/android/benchmark/gradlew (100%) rename extension/{ => benchmark}/android/benchmark/gradlew.bat (100%) rename extension/{ => benchmark}/android/benchmark/settings.gradle.kts (100%) create mode 100644 extension/benchmark/apple/.clang-format rename extension/{ => benchmark}/apple/Benchmark/App/App.entitlements (100%) rename extension/{ => benchmark}/apple/Benchmark/App/App.swift (100%) rename extension/{ => benchmark}/apple/Benchmark/Benchmark.xcodeproj/project.pbxproj (95%) rename extension/{ => benchmark}/apple/Benchmark/Benchmark.xcodeproj/xcshareddata/xcschemes/Benchmark.xcscheme (100%) rename extension/{ => benchmark}/apple/Benchmark/Frameworks/download_frameworks.sh (100%) rename extension/{ => benchmark}/apple/Benchmark/README.md (95%) rename extension/{ => benchmark}/apple/Benchmark/Resources/README.md (100%) rename extension/{ => benchmark}/apple/Benchmark/TestUtils/DynamicTestCase.h (100%) rename extension/{ => benchmark}/apple/Benchmark/TestUtils/DynamicTestCase.m (100%) rename extension/{ => benchmark}/apple/Benchmark/TestUtils/ResourceTestCase.h (100%) rename extension/{ => benchmark}/apple/Benchmark/TestUtils/ResourceTestCase.m (100%) rename extension/{ => benchmark}/apple/Benchmark/Tests/GenericTests.mm (100%) rename extension/{ => benchmark}/apple/Benchmark/Tests/LLaMA/LLaMATests.mm (100%) rename extension/{ => benchmark}/apple/Benchmark/Tests/Tests.xcconfig (96%) rename extension/{ => benchmark}/apple/Benchmark/Tests/Tests.xctestplan (100%) rename {examples/demo-apps/apple_ios => extension/benchmark/apple/Benchmark}/default-ios-device-farm-appium-test-spec.yml (100%) diff --git a/.github/workflows/android-perf.yml b/.github/workflows/android-perf.yml index c17c51c90a8..f1e9847e711 100644 --- a/.github/workflows/android-perf.yml +++ b/.github/workflows/android-perf.yml @@ -232,3 +232,78 @@ jobs: test-spec: ${{ inputs.test_spec || 'https://ossci-android.s3.amazonaws.com/executorch/android-llm-device-farm-test-spec.yml' }} # Uploaded to S3 from the previous job extra-data: https://gha-artifacts.s3.amazonaws.com/${{ github.repository }}/${{ github.run_id }}/artifacts/${{ matrix.model }}_${{ matrix.delegate }}/model.zip + + upload-benchmark-results: + needs: + - benchmark-on-device + if: always() + runs-on: linux.2xlarge + environment: upload-benchmark-results + permissions: + id-token: write + contents: read + steps: + - uses: actions/checkout@v3 + with: + submodules: false + + - name: Authenticate with AWS + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::308535385114:role/gha_workflow_upload-benchmark-results + # The max duration enforced by the server side + role-duration-seconds: 18000 + aws-region: us-east-1 + + - name: Setup conda + uses: pytorch/test-infra/.github/actions/setup-miniconda@main + with: + python-version: '3.10' + + - name: Download the list of artifacts from S3 + env: + ARTIFACTS_S3_DIR: s3://gha-artifacts/device_farm/${{ github.run_id }}/${{ github.run_attempt }}/artifacts/ + shell: bash + run: | + set -eux + ${CONDA_RUN} python -mpip install awscli==1.32.18 + + mkdir -p artifacts + pushd artifacts + ${CONDA_RUN} aws s3 sync "${ARTIFACTS_S3_DIR}" . + popd + + ls -lah artifacts + + - name: Extract the benchmark results JSON + shell: bash + run: | + set -eux + + mkdir -p benchmark-results + + for ARTIFACTS_BY_JOB in artifacts/*.json; do + [ -f "${ARTIFACTS_BY_JOB}" ] || break + echo "${ARTIFACTS_BY_JOB}" + ${CONDA_RUN} python .github/scripts/extract_benchmark_results.py \ + --artifacts "${ARTIFACTS_BY_JOB}" \ + --output-dir benchmark-results \ + --repo ${{ github.repository }} \ + --head-branch ${{ github.head_ref || github.ref_name }} \ + --workflow-name "${{ github.workflow }}" \ + --workflow-run-id ${{ github.run_id }} \ + --workflow-run-attempt ${{ github.run_attempt }} + done + + ls -lah benchmark-results + + for BENCHMARK_RESULTS in benchmark-results/*.json; do + cat "${BENCHMARK_RESULTS}" + echo + done + + - name: Upload the benchmark results + uses: pytorch/test-infra/.github/actions/upload-benchmark-results@main + with: + benchmark-results-dir: 'benchmark-results' + dry-run: false diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e8fec0cb23f..10e4daac04d 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -15,6 +15,7 @@ on: - install_requirements.sh - examples/demo-apps/android/** - extension/android/** + - extension/benchmark/android/** - extension/module/** workflow_dispatch: diff --git a/.github/workflows/apple-perf.yml b/.github/workflows/apple-perf.yml index bfa4600a987..710a18d3433 100644 --- a/.github/workflows/apple-perf.yml +++ b/.github/workflows/apple-perf.yml @@ -235,9 +235,9 @@ jobs: PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \ build/build_apple_frameworks.sh --coreml --custom --mps --optimized --portable --quantized --xnnpack - mkdir -p extension/apple/Benchmark/Frameworks + mkdir -p extension/benchmark/apple/Benchmark/Frameworks for FRAMEWORK in "${FRAMEWORKS[@]}"; do ( - cp -r "cmake-out/${FRAMEWORK}.xcframework" extension/apple/Benchmark/Frameworks/ + cp -r "cmake-out/${FRAMEWORK}.xcframework" extension/benchmark/apple/Benchmark/Frameworks/ ) done echo "::endgroup::" @@ -245,7 +245,7 @@ jobs: # app, we don't use this in CI and rely on AWS extra data parameter to make the model and the # tokenizer available to the benchmark. This decouples the app and the model. We just need to # create the directory here to pass the build - mkdir -p extension/apple/Benchmark/Models + mkdir -p extension/benchmark/apple/Benchmark/Models ${CONDA_RUN} --no-capture-output \ build/build_apple_llm_demo.sh ${ARTIFACTS_DIR_NAME} diff --git a/.github/workflows/apple.yml b/.github/workflows/apple.yml index 09a62b62e47..f5c7983b380 100644 --- a/.github/workflows/apple.yml +++ b/.github/workflows/apple.yml @@ -17,6 +17,7 @@ on: - build/test_ios_ci.sh - examples/demo-apps/apple_ios/** - extension/apple/** + - extension/benchmark/apple/** - extension/module/** workflow_dispatch: @@ -215,3 +216,70 @@ jobs: shasum -a 256 "${FILENAME}" ${AWS_CMD} "${FILENAME}" s3://ossci-ios/executorch/ --acl public-read done + + build-benchmark-app: + name: build-benchmark-app + uses: pytorch/test-infra/.github/workflows/macos_job.yml@main + secrets: inherit + with: + runner: macos-latest-xlarge + python-version: '3.11' + submodules: 'true' + ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} + upload-artifact: ios-apps + secrets-env: BUILD_CERTIFICATE_BASE64 EXECUTORCH_BENCHMARK_BUILD_PROVISION_PROFILE_BASE64 KEYCHAIN_PASSWORD + timeout: 90 + script: | + set -eux + + echo "::group::Setting up CI environment" + .ci/scripts/setup-conda.sh + + BUILD_TOOL=cmake + # Setup MacOS dependencies as there is no Docker support on MacOS atm + GITHUB_RUNNER=1 PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \ + .ci/scripts/setup-macos.sh "${BUILD_TOOL}" + export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded + + # Setup Apple certificate for iOS development + BUILD_PROVISION_PROFILE_BASE64="${SECRET_EXECUTORCH_BENCHMARK_BUILD_PROVISION_PROFILE_BASE64}" \ + BUILD_CERTIFICATE_BASE64="${SECRET_BUILD_CERTIFICATE_BASE64}" \ + KEYCHAIN_PASSWORD="${SECRET_KEYCHAIN_PASSWORD}" \ + .ci/scripts/setup-ios.sh + + # Install CoreML Backend Requirements + PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \ + backends/apple/coreml/scripts/install_requirements.sh + + # Install MPS Backend Requirements + PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \ + backends/apple/mps/install_requirements.sh + echo "::endgroup::" + + echo "::group::Build ExecuTorch iOS frameworks" + FRAMEWORKS=( + "executorch" + "backend_coreml" + "backend_mps" + "backend_xnnpack" + "kernels_custom" + "kernels_optimized" + "kernels_portable" + "kernels_quantized" + ) + + # Build Release iOS Frameworks + PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \ + build/build_apple_frameworks.sh --coreml --custom --mps --optimized --portable --quantized --xnnpack + + mkdir -p extension/benchmark/apple/Benchmark/Frameworks + for FRAMEWORK in "${FRAMEWORKS[@]}"; do ( + cp -r "cmake-out/${FRAMEWORK}.xcframework" extension/benchmark/apple/Benchmark/Frameworks/ + ) done + echo "::endgroup::" + + echo "::group::Build ExecuTorch benchmark app" + mkdir -p extension/benchmark/apple/Benchmark/Models + ${CONDA_RUN} --no-capture-output \ + build/build_apple_llm_demo.sh ${ARTIFACTS_DIR_NAME} + echo "::endgroup::" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 841df15fc58..ed750567dd2 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -66,7 +66,7 @@ jobs: FILES_NEEDS_FORMAT=$(/opt/google-java-format -n extension/android/src/main/java/org/pytorch/executorch/*.java \ examples/demo-apps/android/ExecuTorchDemo/app/src/main/java/com/example/executorchdemo/*.java \ examples/demo-apps/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/*.java \ - extension/android/benchmark/app/src/main/java/org/pytorch/minibench/*.java) + extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/*.java) if [ -n "$FILES_NEEDS_FORMAT" ]; then echo "Warning: The following files need formatting. Please use google-java-format." echo "Use a binary from https://github.com/google/google-java-format/releases/" diff --git a/.github/workflows/upload-android-test-specs.yml b/.github/workflows/upload-android-test-specs.yml index e9b1054080c..4c0b37ab118 100644 --- a/.github/workflows/upload-android-test-specs.yml +++ b/.github/workflows/upload-android-test-specs.yml @@ -4,13 +4,13 @@ on: pull_request: paths: - .github/workflows/upload-android-test-specs.yml - - extension/android/benchmark/android-llm-device-farm-test-spec.yml + - extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml push: branches: - main paths: - .github/workflows/upload-android-test-specs.yml - - extension/android/benchmark/android-llm-device-farm-test-spec.yml + - extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml concurrency: # NB: This concurency group needs to be different than the one used in android-perf, otherwise @@ -32,7 +32,7 @@ jobs: ${{ github.repository }}/${{ github.run_id }}/artifacts retention-days: 1 if-no-files-found: error - path: extension/android/benchmark/android-llm-device-farm-test-spec.yml + path: extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml validate-android-test-spec: needs: upload-android-test-spec-for-validation @@ -77,7 +77,7 @@ jobs: - name: Upload the spec to S3 ossci-android bucket shell: bash - working-directory: extension/android/benchmark/ + working-directory: extension/benchmark/android/benchmark/ env: SPEC_FILE: android-llm-device-farm-test-spec.yml run: | diff --git a/.github/workflows/upload-apple-test-specs.yml b/.github/workflows/upload-apple-test-specs.yml index 06d20ef2beb..cf5906c6df1 100644 --- a/.github/workflows/upload-apple-test-specs.yml +++ b/.github/workflows/upload-apple-test-specs.yml @@ -4,13 +4,13 @@ on: pull_request: paths: - .github/workflows/upload-apple-test-specs.yml - - examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml + - extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml push: branches: - main paths: - .github/workflows/upload-apple-test-specs.yml - - examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml + - extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml concurrency: # NB: This concurency group needs to be different than the one used in apple-perf, otherwise @@ -32,7 +32,7 @@ jobs: ${{ github.repository }}/${{ github.run_id }}/artifacts retention-days: 1 if-no-files-found: error - path: examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml + path: extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml validate-apple-test-spec: needs: upload-apple-test-spec-for-validation @@ -78,7 +78,7 @@ jobs: - name: Upload the spec to S3 ossci-ios bucket shell: bash - working-directory: examples/demo-apps/apple_ios + working-directory: extension/benchmark/apple/Benchmark/ env: SPEC_FILE: default-ios-device-farm-appium-test-spec.yml run: | diff --git a/build/build_android_llm_demo.sh b/build/build_android_llm_demo.sh index 42034c254f4..8bea69615c8 100644 --- a/build/build_android_llm_demo.sh +++ b/build/build_android_llm_demo.sh @@ -108,9 +108,9 @@ build_android_demo_apps() { ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest popd - mkdir -p extension/android/benchmark/app/libs - cp ${BUILD_AAR_DIR}/executorch.aar extension/android/benchmark/app/libs - pushd extension/android/benchmark + mkdir -p extension/benchmark/android/benchmark/app/libs + cp ${BUILD_AAR_DIR}/executorch.aar extension/benchmark/android/benchmark/app/libs + pushd extension/benchmark/android/benchmark ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest popd } @@ -135,8 +135,8 @@ collect_artifacts_to_be_uploaded() { # Collect MiniBench APK MINIBENCH_APP_DIR="${ARTIFACTS_DIR_NAME}/minibench" mkdir -p "${MINIBENCH_APP_DIR}" - cp extension/android/benchmark/app/build/outputs/apk/debug/*.apk "${MINIBENCH_APP_DIR}" - cp extension/android/benchmark/app/build/outputs/apk/androidTest/debug/*.apk "${MINIBENCH_APP_DIR}" + cp extension/benchmark/android/benchmark/app/build/outputs/apk/debug/*.apk "${MINIBENCH_APP_DIR}" + cp extension/benchmark/android/benchmark/app/build/outputs/apk/androidTest/debug/*.apk "${MINIBENCH_APP_DIR}" } BUILD_AAR_DIR="$(mktemp -d)" diff --git a/build/build_apple_llm_demo.sh b/build/build_apple_llm_demo.sh index 9fe1c1bcd77..dcb56fa3f91 100755 --- a/build/build_apple_llm_demo.sh +++ b/build/build_apple_llm_demo.sh @@ -8,7 +8,7 @@ set -euo pipefail ARTIFACTS_DIR_NAME="$1" -APP_PATH="extension/apple/Benchmark/Benchmark" +APP_PATH="extension/benchmark/apple/Benchmark/Benchmark" xcodebuild build-for-testing \ -project "${APP_PATH}.xcodeproj" \ diff --git a/extension/android/benchmark/.gitignore b/extension/benchmark/android/benchmark/.gitignore similarity index 100% rename from extension/android/benchmark/.gitignore rename to extension/benchmark/android/benchmark/.gitignore diff --git a/extension/android/benchmark/README.md b/extension/benchmark/android/benchmark/README.md similarity index 100% rename from extension/android/benchmark/README.md rename to extension/benchmark/android/benchmark/README.md diff --git a/extension/android/benchmark/android-llm-device-farm-test-spec.yml b/extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml similarity index 100% rename from extension/android/benchmark/android-llm-device-farm-test-spec.yml rename to extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml diff --git a/extension/android/benchmark/app/.gitignore b/extension/benchmark/android/benchmark/app/.gitignore similarity index 100% rename from extension/android/benchmark/app/.gitignore rename to extension/benchmark/android/benchmark/app/.gitignore diff --git a/extension/android/benchmark/app/build.gradle.kts b/extension/benchmark/android/benchmark/app/build.gradle.kts similarity index 100% rename from extension/android/benchmark/app/build.gradle.kts rename to extension/benchmark/android/benchmark/app/build.gradle.kts diff --git a/extension/android/benchmark/app/proguard-rules.pro b/extension/benchmark/android/benchmark/app/proguard-rules.pro similarity index 100% rename from extension/android/benchmark/app/proguard-rules.pro rename to extension/benchmark/android/benchmark/app/proguard-rules.pro diff --git a/extension/android/benchmark/app/src/androidTest/java/org/pytorch/minibench/ExampleInstrumentedTest.java b/extension/benchmark/android/benchmark/app/src/androidTest/java/org/pytorch/minibench/ExampleInstrumentedTest.java similarity index 100% rename from extension/android/benchmark/app/src/androidTest/java/org/pytorch/minibench/ExampleInstrumentedTest.java rename to extension/benchmark/android/benchmark/app/src/androidTest/java/org/pytorch/minibench/ExampleInstrumentedTest.java diff --git a/extension/android/benchmark/app/src/main/AndroidManifest.xml b/extension/benchmark/android/benchmark/app/src/main/AndroidManifest.xml similarity index 100% rename from extension/android/benchmark/app/src/main/AndroidManifest.xml rename to extension/benchmark/android/benchmark/app/src/main/AndroidManifest.xml diff --git a/extension/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkActivity.java b/extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkActivity.java similarity index 100% rename from extension/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkActivity.java rename to extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkActivity.java diff --git a/extension/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkMetric.java b/extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkMetric.java similarity index 100% rename from extension/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkMetric.java rename to extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/BenchmarkMetric.java diff --git a/extension/android/benchmark/app/src/main/java/org/pytorch/minibench/LlmBenchmarkActivity.java b/extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/LlmBenchmarkActivity.java similarity index 100% rename from extension/android/benchmark/app/src/main/java/org/pytorch/minibench/LlmBenchmarkActivity.java rename to extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/LlmBenchmarkActivity.java diff --git a/extension/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunner.java b/extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunner.java similarity index 100% rename from extension/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunner.java rename to extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunner.java diff --git a/extension/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunnerCallback.java b/extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunnerCallback.java similarity index 100% rename from extension/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunnerCallback.java rename to extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/ModelRunnerCallback.java diff --git a/extension/android/benchmark/app/src/main/res/values/colors.xml b/extension/benchmark/android/benchmark/app/src/main/res/values/colors.xml similarity index 100% rename from extension/android/benchmark/app/src/main/res/values/colors.xml rename to extension/benchmark/android/benchmark/app/src/main/res/values/colors.xml diff --git a/extension/android/benchmark/app/src/main/res/values/strings.xml b/extension/benchmark/android/benchmark/app/src/main/res/values/strings.xml similarity index 100% rename from extension/android/benchmark/app/src/main/res/values/strings.xml rename to extension/benchmark/android/benchmark/app/src/main/res/values/strings.xml diff --git a/extension/android/benchmark/app/src/main/res/values/themes.xml b/extension/benchmark/android/benchmark/app/src/main/res/values/themes.xml similarity index 100% rename from extension/android/benchmark/app/src/main/res/values/themes.xml rename to extension/benchmark/android/benchmark/app/src/main/res/values/themes.xml diff --git a/extension/android/benchmark/app/src/test/java/org/pytorch/minibench/ExampleUnitTest.java b/extension/benchmark/android/benchmark/app/src/test/java/org/pytorch/minibench/ExampleUnitTest.java similarity index 100% rename from extension/android/benchmark/app/src/test/java/org/pytorch/minibench/ExampleUnitTest.java rename to extension/benchmark/android/benchmark/app/src/test/java/org/pytorch/minibench/ExampleUnitTest.java diff --git a/extension/android/benchmark/build.gradle.kts b/extension/benchmark/android/benchmark/build.gradle.kts similarity index 100% rename from extension/android/benchmark/build.gradle.kts rename to extension/benchmark/android/benchmark/build.gradle.kts diff --git a/extension/android/benchmark/gradle.properties b/extension/benchmark/android/benchmark/gradle.properties similarity index 100% rename from extension/android/benchmark/gradle.properties rename to extension/benchmark/android/benchmark/gradle.properties diff --git a/extension/android/benchmark/gradle/wrapper/gradle-wrapper.jar b/extension/benchmark/android/benchmark/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from extension/android/benchmark/gradle/wrapper/gradle-wrapper.jar rename to extension/benchmark/android/benchmark/gradle/wrapper/gradle-wrapper.jar diff --git a/extension/android/benchmark/gradle/wrapper/gradle-wrapper.properties b/extension/benchmark/android/benchmark/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from extension/android/benchmark/gradle/wrapper/gradle-wrapper.properties rename to extension/benchmark/android/benchmark/gradle/wrapper/gradle-wrapper.properties diff --git a/extension/android/benchmark/gradlew b/extension/benchmark/android/benchmark/gradlew similarity index 100% rename from extension/android/benchmark/gradlew rename to extension/benchmark/android/benchmark/gradlew diff --git a/extension/android/benchmark/gradlew.bat b/extension/benchmark/android/benchmark/gradlew.bat similarity index 100% rename from extension/android/benchmark/gradlew.bat rename to extension/benchmark/android/benchmark/gradlew.bat diff --git a/extension/android/benchmark/settings.gradle.kts b/extension/benchmark/android/benchmark/settings.gradle.kts similarity index 100% rename from extension/android/benchmark/settings.gradle.kts rename to extension/benchmark/android/benchmark/settings.gradle.kts diff --git a/extension/benchmark/apple/.clang-format b/extension/benchmark/apple/.clang-format new file mode 100644 index 00000000000..0227efcfe3a --- /dev/null +++ b/extension/benchmark/apple/.clang-format @@ -0,0 +1,45 @@ +--- +AccessModifierOffset: -1 +AlignEscapedNewlinesLeft: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: true +BinPackArguments: false +BinPackParameters: false +BreakBeforeBinaryOperators: false +BreakBeforeBraces: Attach +BreakConstructorInitializersBeforeComma: false +ColumnLimit: 80 +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +ExperimentalAutoDetectBinPacking: true +IndentCaseLabels: false +IndentFunctionDeclarationAfterType: false +IndentWidth: 2 +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCSpaceBeforeProtocolList: false +PenaltyBreakBeforeFirstCallParameter: 10 +PenaltyBreakComment: 60 +PenaltyBreakFirstLessLess: 20 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Right +SpaceAfterControlStatementKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +Standard: Cpp11 +TabWidth: 8 +UseTab: Never +... diff --git a/extension/apple/Benchmark/App/App.entitlements b/extension/benchmark/apple/Benchmark/App/App.entitlements similarity index 100% rename from extension/apple/Benchmark/App/App.entitlements rename to extension/benchmark/apple/Benchmark/App/App.entitlements diff --git a/extension/apple/Benchmark/App/App.swift b/extension/benchmark/apple/Benchmark/App/App.swift similarity index 100% rename from extension/apple/Benchmark/App/App.swift rename to extension/benchmark/apple/Benchmark/App/App.swift diff --git a/extension/apple/Benchmark/Benchmark.xcodeproj/project.pbxproj b/extension/benchmark/apple/Benchmark/Benchmark.xcodeproj/project.pbxproj similarity index 95% rename from extension/apple/Benchmark/Benchmark.xcodeproj/project.pbxproj rename to extension/benchmark/apple/Benchmark/Benchmark.xcodeproj/project.pbxproj index b86ceff806b..0e128813388 100644 --- a/extension/apple/Benchmark/Benchmark.xcodeproj/project.pbxproj +++ b/extension/benchmark/apple/Benchmark/Benchmark.xcodeproj/project.pbxproj @@ -66,10 +66,10 @@ 032A73FD2CAFBB7800932D36 /* tiktoken.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = tiktoken.h; sourceTree = ""; }; 032A73FE2CAFBB7800932D36 /* tiktoken.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = tiktoken.cpp; sourceTree = ""; }; 032A73FF2CAFBB7800932D36 /* tokenizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = tokenizer.h; sourceTree = ""; }; - 032A74212CAFC1B300932D36 /* runner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = runner.h; path = ../../../examples/models/llama2/runner/runner.h; sourceTree = SOURCE_ROOT; }; - 032A74222CAFC1B300932D36 /* runner.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = runner.cpp; path = ../../../examples/models/llama2/runner/runner.cpp; sourceTree = SOURCE_ROOT; }; - 032A74242CAFC34800932D36 /* llama_tiktoken.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = llama_tiktoken.h; path = ../../../examples/models/llama2/tokenizer/llama_tiktoken.h; sourceTree = SOURCE_ROOT; }; - 032A74252CAFC34800932D36 /* llama_tiktoken.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = llama_tiktoken.cpp; path = ../../../examples/models/llama2/tokenizer/llama_tiktoken.cpp; sourceTree = SOURCE_ROOT; }; + 032A74212CAFC1B300932D36 /* runner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = runner.h; path = ../../../../examples/models/llama2/runner/runner.h; sourceTree = SOURCE_ROOT; }; + 032A74222CAFC1B300932D36 /* runner.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = runner.cpp; path = ../../../../examples/models/llama2/runner/runner.cpp; sourceTree = SOURCE_ROOT; }; + 032A74242CAFC34800932D36 /* llama_tiktoken.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = llama_tiktoken.h; path = ../../../../examples/models/llama2/tokenizer/llama_tiktoken.h; sourceTree = SOURCE_ROOT; }; + 032A74252CAFC34800932D36 /* llama_tiktoken.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = llama_tiktoken.cpp; path = ../../../../examples/models/llama2/tokenizer/llama_tiktoken.cpp; sourceTree = SOURCE_ROOT; }; 037C96A02C8A570B00B3DF38 /* Tests.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Tests.xctestplan; sourceTree = ""; }; 03B0118B2CAC567900054791 /* DynamicTestCase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DynamicTestCase.h; sourceTree = ""; }; 03B0118C2CAC567900054791 /* DynamicTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DynamicTestCase.m; sourceTree = ""; }; @@ -158,7 +158,7 @@ 032A73DF2CAFBB7800932D36 /* util.h */, ); name = runner; - path = ../../llm/runner; + path = ../../../llm/runner; sourceTree = SOURCE_ROOT; }; 032A73E92CAFBB7800932D36 /* sampler */ = { @@ -168,7 +168,7 @@ 032A73E62CAFBB7800932D36 /* sampler.cpp */, ); name = sampler; - path = ../../llm/sampler; + path = ../../../llm/sampler; sourceTree = SOURCE_ROOT; }; 032A74022CAFBB7800932D36 /* tokenizer */ = { @@ -184,7 +184,7 @@ 032A73FF2CAFBB7800932D36 /* tokenizer.h */, ); name = tokenizer; - path = ../../llm/tokenizer; + path = ../../../llm/tokenizer; sourceTree = SOURCE_ROOT; }; 03B0118D2CAC567900054791 /* TestUtils */ = { @@ -364,7 +364,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\n\nif ! command -v cmake &> /dev/null\nthen\n echo \"Cmake not found, please install Cmake. \\n1. Download Cmake.app from https://cmake.org/download with version > 3.19. \\n2. Install it to Applications/ folder and run sudo /Applications/CMake.app/Contents/bin/cmake-gui --install to install CMake commandline tools.\"\n exit 1\nfi\n\nCMAKE_DIR=\"$TEMP_DIR/cmake\"\nrm -rf \"$CMAKE_DIR\"\n\nPLATFORM=\"SIMULATORARM64\"\nDEPLOYMENT_TARGET=\"17.0\"\n\nif [[ \"$PLATFORM_NAME\" == *\"iphoneos\"* ]]; then\n PLATFORM=\"OS64\"\nelif [[ \"$PLATFORM_NAME\" == *\"macos\"* ]]; then\n PLATFORM=\"MAC_ARM64\"\n DEPLOYMENT_TARGET=\"10.15\"\nfi\n\ncmake_build() {\n local src_dir=$1\n local target=$2\n shift 2\n local extra_args=(\"$@\")\n local build_dir=\"$CMAKE_DIR/build/$(basename \"$src_dir\")\"\n\n mkdir -p \"$build_dir\" && cd \"$build_dir\"\n\n if [[ \"$PLATFORM\" == \"MAC_ARM64\" ]]; then\n extra_args+=(-DCMAKE_INSTALL_BUNDLEDIR=\"${CMAKE_DIR}/bin\")\n extra_args+=(-DCMAKE_MACOSX_BUNDLE=OFF)\n fi\n cmake -G Xcode \\\n -DCMAKE_BUILD_TYPE=\"Release\" \\\n -DCMAKE_CXX_STANDARD=17 \\\n -DCMAKE_TOOLCHAIN_FILE=\"$SRCROOT/../../../third-party/ios-cmake/ios.toolchain.cmake\" \\\n -DCMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD=\"c++17\" \\\n -DCMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY=\"libc++\" \\\n -DPLATFORM=\"$PLATFORM\" \\\n -DDEPLOYMENT_TARGET=\"$DEPLOYMENT_TARGET\" \\\n -DCMAKE_INSTALL_PREFIX=\"$CMAKE_DIR\" \\\n \"${extra_args[@]}\" \\\n \"$src_dir\"\n cmake --build . --config \"Release\" --target \"$target\"\n if [[ \"$target\" == \"install\" ]]; then\n cmake --install . --prefix \"$CMAKE_DIR\"\n fi\n}\n\ncmake_build \"$SRCROOT/../../llm/third-party/abseil-cpp\" \"install\" \\\n -DABSL_PROPAGATE_CXX_STD=ON\n\ncmake_build \"$SRCROOT/../../llm/third-party/re2\" \"install\"\n\ncmake_build \"$SRCROOT/../../llm/third-party/sentencepiece\" \"sentencepiece-static\" \\\n -DSPM_ENABLE_SHARED=OFF\n\necho \"$(find $CMAKE_DIR/lib -name \"*.a\" | sed -E 's|^.*/lib([^/]+)\\.a|-l\\1|g' | tr '\\n' ' ')\" > \"$CMAKE_DIR/linker_flags\"\n"; + shellScript = "set -e\n\nif ! command -v cmake &> /dev/null\nthen\n echo \"Cmake not found, please install Cmake. \\n1. Download Cmake.app from https://cmake.org/download with version > 3.19. \\n2. Install it to Applications/ folder and run sudo /Applications/CMake.app/Contents/bin/cmake-gui --install to install CMake commandline tools.\"\n exit 1\nfi\n\nCMAKE_DIR=\"$TEMP_DIR/cmake\"\nrm -rf \"$CMAKE_DIR\"\n\nPLATFORM=\"SIMULATORARM64\"\nDEPLOYMENT_TARGET=\"17.0\"\n\nif [[ \"$PLATFORM_NAME\" == *\"iphoneos\"* ]]; then\n PLATFORM=\"OS64\"\nelif [[ \"$PLATFORM_NAME\" == *\"macos\"* ]]; then\n PLATFORM=\"MAC_ARM64\"\n DEPLOYMENT_TARGET=\"10.15\"\nfi\n\ncmake_build() {\n local src_dir=$1\n local target=$2\n shift 2\n local extra_args=(\"$@\")\n local build_dir=\"$CMAKE_DIR/build/$(basename \"$src_dir\")\"\n\n mkdir -p \"$build_dir\" && cd \"$build_dir\"\n\n if [[ \"$PLATFORM\" == \"MAC_ARM64\" ]]; then\n extra_args+=(-DCMAKE_INSTALL_BUNDLEDIR=\"${CMAKE_DIR}/bin\")\n extra_args+=(-DCMAKE_MACOSX_BUNDLE=OFF)\n fi\n cmake -G Xcode \\\n -DCMAKE_BUILD_TYPE=\"Release\" \\\n -DCMAKE_CXX_STANDARD=17 \\\n -DCMAKE_TOOLCHAIN_FILE=\"$SRCROOT/../../../../third-party/ios-cmake/ios.toolchain.cmake\" \\\n -DCMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD=\"c++17\" \\\n -DCMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY=\"libc++\" \\\n -DPLATFORM=\"$PLATFORM\" \\\n -DDEPLOYMENT_TARGET=\"$DEPLOYMENT_TARGET\" \\\n -DCMAKE_INSTALL_PREFIX=\"$CMAKE_DIR\" \\\n \"${extra_args[@]}\" \\\n \"$src_dir\"\n cmake --build . --config \"Release\" --target \"$target\"\n if [[ \"$target\" == \"install\" ]]; then\n cmake --install . --prefix \"$CMAKE_DIR\"\n fi\n}\n\ncmake_build \"$SRCROOT/../../../llm/third-party/abseil-cpp\" \"install\" \\\n -DABSL_PROPAGATE_CXX_STD=ON\n\ncmake_build \"$SRCROOT/../../../llm/third-party/re2\" \"install\"\n\ncmake_build \"$SRCROOT/../../../llm/third-party/sentencepiece\" \"sentencepiece-static\" \\\n -DSPM_ENABLE_SHARED=OFF\n\necho \"$(find $CMAKE_DIR/lib -name \"*.a\" | sed -E 's|^.*/lib([^/]+)\\.a|-l\\1|g' | tr '\\n' ' ')\" > \"$CMAKE_DIR/linker_flags\"\n"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/extension/apple/Benchmark/Benchmark.xcodeproj/xcshareddata/xcschemes/Benchmark.xcscheme b/extension/benchmark/apple/Benchmark/Benchmark.xcodeproj/xcshareddata/xcschemes/Benchmark.xcscheme similarity index 100% rename from extension/apple/Benchmark/Benchmark.xcodeproj/xcshareddata/xcschemes/Benchmark.xcscheme rename to extension/benchmark/apple/Benchmark/Benchmark.xcodeproj/xcshareddata/xcschemes/Benchmark.xcscheme diff --git a/extension/apple/Benchmark/Frameworks/download_frameworks.sh b/extension/benchmark/apple/Benchmark/Frameworks/download_frameworks.sh similarity index 100% rename from extension/apple/Benchmark/Frameworks/download_frameworks.sh rename to extension/benchmark/apple/Benchmark/Frameworks/download_frameworks.sh diff --git a/extension/apple/Benchmark/README.md b/extension/benchmark/apple/Benchmark/README.md similarity index 95% rename from extension/apple/Benchmark/README.md rename to extension/benchmark/apple/Benchmark/README.md index 5db84915a2b..79daf070e44 100644 --- a/extension/apple/Benchmark/README.md +++ b/extension/benchmark/apple/Benchmark/README.md @@ -42,7 +42,7 @@ You have two options: Run the provided script to download the prebuilt frameworks: ```bash -./extension/apple/Benchmark/Frameworks/download_frameworks.sh +./extension/benchmark/apple/Benchmark/Frameworks/download_frameworks.sh ``` @@ -56,7 +56,7 @@ Alternatively, you can build the frameworks yourself by following the [guide](ht Once the frameworks are downloaded or built, verify that the `Frameworks` directory contains the necessary `.xcframework` files: ```bash -ls extension/apple/Benchmark/Frameworks +ls extension/benchmark/apple/Benchmark/Frameworks ``` You should see: @@ -74,16 +74,16 @@ kernels_quantized.xcframework ## Adding Models and Resources -Place your exported model files (`.pte`) and any other resources (e.g., `tokenizer.bin`) into the `extension/apple/Benchmark/Resources` directory: +Place your exported model files (`.pte`) and any other resources (e.g., `tokenizer.bin`) into the `extension/benchmark/apple/Benchmark/Resources` directory: ```bash -cp extension/apple/Benchmark/Resources +cp extension/benchmark/apple/Benchmark/Resources ``` Optionally, check that the files are there: ```bash -ls extension/apple/Benchmark/Resources +ls extension/benchmark/apple/Benchmark/Resources ``` For this example you should see: @@ -103,7 +103,7 @@ The app automatically bundles these resources and makes them available to the te Open the Benchmark Xcode project: ```bash -open extension/apple/Benchmark/Benchmark.xcodeproj +open extension/benchmark/apple/Benchmark/Benchmark.xcodeproj ``` Select the destination device or simulator and press `Command+U`, or click `Product` > `Test` in the menu to run the test suite. @@ -333,13 +333,13 @@ You can also run the tests using `xcodebuild`: ```bash # Run on an iOS Simulator -xcodebuild test -project extension/apple/Benchmark/Benchmark.xcodeproj \ +xcodebuild test -project extension/benchmark/apple/Benchmark/Benchmark.xcodeproj \ -scheme Benchmark \ -destination 'platform=iOS Simulator,name=' \ -testPlan Tests # Run on a physical iOS device -xcodebuild test -project extension/apple/Benchmark/Benchmark.xcodeproj \ +xcodebuild test -project extension/benchmark/apple/Benchmark/Benchmark.xcodeproj \ -scheme Benchmark \ -destination 'platform=iOS,name=' \ -testPlan Tests \ diff --git a/extension/apple/Benchmark/Resources/README.md b/extension/benchmark/apple/Benchmark/Resources/README.md similarity index 100% rename from extension/apple/Benchmark/Resources/README.md rename to extension/benchmark/apple/Benchmark/Resources/README.md diff --git a/extension/apple/Benchmark/TestUtils/DynamicTestCase.h b/extension/benchmark/apple/Benchmark/TestUtils/DynamicTestCase.h similarity index 100% rename from extension/apple/Benchmark/TestUtils/DynamicTestCase.h rename to extension/benchmark/apple/Benchmark/TestUtils/DynamicTestCase.h diff --git a/extension/apple/Benchmark/TestUtils/DynamicTestCase.m b/extension/benchmark/apple/Benchmark/TestUtils/DynamicTestCase.m similarity index 100% rename from extension/apple/Benchmark/TestUtils/DynamicTestCase.m rename to extension/benchmark/apple/Benchmark/TestUtils/DynamicTestCase.m diff --git a/extension/apple/Benchmark/TestUtils/ResourceTestCase.h b/extension/benchmark/apple/Benchmark/TestUtils/ResourceTestCase.h similarity index 100% rename from extension/apple/Benchmark/TestUtils/ResourceTestCase.h rename to extension/benchmark/apple/Benchmark/TestUtils/ResourceTestCase.h diff --git a/extension/apple/Benchmark/TestUtils/ResourceTestCase.m b/extension/benchmark/apple/Benchmark/TestUtils/ResourceTestCase.m similarity index 100% rename from extension/apple/Benchmark/TestUtils/ResourceTestCase.m rename to extension/benchmark/apple/Benchmark/TestUtils/ResourceTestCase.m diff --git a/extension/apple/Benchmark/Tests/GenericTests.mm b/extension/benchmark/apple/Benchmark/Tests/GenericTests.mm similarity index 100% rename from extension/apple/Benchmark/Tests/GenericTests.mm rename to extension/benchmark/apple/Benchmark/Tests/GenericTests.mm diff --git a/extension/apple/Benchmark/Tests/LLaMA/LLaMATests.mm b/extension/benchmark/apple/Benchmark/Tests/LLaMA/LLaMATests.mm similarity index 100% rename from extension/apple/Benchmark/Tests/LLaMA/LLaMATests.mm rename to extension/benchmark/apple/Benchmark/Tests/LLaMA/LLaMATests.mm diff --git a/extension/apple/Benchmark/Tests/Tests.xcconfig b/extension/benchmark/apple/Benchmark/Tests/Tests.xcconfig similarity index 96% rename from extension/apple/Benchmark/Tests/Tests.xcconfig rename to extension/benchmark/apple/Benchmark/Tests/Tests.xcconfig index f99e5068feb..b549eb8dfa3 100644 --- a/extension/apple/Benchmark/Tests/Tests.xcconfig +++ b/extension/benchmark/apple/Benchmark/Tests/Tests.xcconfig @@ -1,5 +1,5 @@ HEADER_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited) \ -$(SRCROOT)/../../../.. \ +$(SRCROOT)/../../../../.. \ $(TEMP_DIR)/cmake/include LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited) \ @@ -16,7 +16,7 @@ OTHER_LDFLAGS[sdk=iphonesimulator*] = $(inherited) \ -force_load $(BUILT_PRODUCTS_DIR)/libkernels_quantized-simulator-release.a HEADER_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) \ -$(SRCROOT)/../../../.. \ +$(SRCROOT)/../../../../.. \ $(TEMP_DIR)/cmake/include LIBRARY_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) \ @@ -33,7 +33,7 @@ OTHER_LDFLAGS[sdk=iphoneos*] = $(inherited) \ -force_load $(BUILT_PRODUCTS_DIR)/libkernels_quantized-ios-release.a HEADER_SEARCH_PATHS[sdk=macos*] = $(inherited) \ -$(SRCROOT)/../../../.. \ +$(SRCROOT)/../../../../.. \ $(TEMP_DIR)/cmake/include LIBRARY_SEARCH_PATHS[sdk=macos*] = $(inherited) \ diff --git a/extension/apple/Benchmark/Tests/Tests.xctestplan b/extension/benchmark/apple/Benchmark/Tests/Tests.xctestplan similarity index 100% rename from extension/apple/Benchmark/Tests/Tests.xctestplan rename to extension/benchmark/apple/Benchmark/Tests/Tests.xctestplan diff --git a/examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml b/extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml similarity index 100% rename from examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml rename to extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml