Skip to content

Commit 8b7cebc

Browse files
committed
Merge branch 'main' into upload-ios-perf-results
2 parents 74bf7c9 + 57e3c81 commit 8b7cebc

File tree

511 files changed

+7284
-5188
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

511 files changed

+7284
-5188
lines changed

.ci/docker/ci_commit_pins/pytorch.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4b2970f7cd3cdd56883cacf116a8693862f89db5
1+
d1b87e26e5c4343f5b56bb1e6f89b479b389bfac

.ci/docker/requirements-ci.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
mpmath==1.3.0
2-
numpy==1.21.3; python_version == '3.10'
2+
numpy==1.22.0; python_version == '3.10'
33
numpy==1.23.2; python_version == '3.11'
44
numpy; python_version >= '3.12'
55
PyYAML==6.0.1

.ci/scripts/test_llama.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ else
171171
fi
172172

173173
# Check dtype.
174-
EXPORTED_MODEL_NAME="llama2"
174+
EXPORTED_MODEL_NAME="tinyllama_${MODE}_${DTYPE}"
175175
if [[ "${DTYPE}" == "fp16" ]]; then
176176
EXPORTED_MODEL_NAME="${EXPORTED_MODEL_NAME}_h"
177177
elif [[ "${DTYPE}" == "bf16" ]]; then

.ci/scripts/test_model.sh

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,30 +155,24 @@ test_model_with_qnn() {
155155

156156
if [[ "${MODEL_NAME}" == "dl3" ]]; then
157157
EXPORT_SCRIPT=deeplab_v3
158-
EXPORTED_MODEL_NAME=dlv3_qnn.pte
159158
elif [[ "${MODEL_NAME}" == "mv3" ]]; then
160159
EXPORT_SCRIPT=mobilenet_v3
161-
EXPORTED_MODEL_NAME=mv3_qnn.pte
162160
elif [[ "${MODEL_NAME}" == "mv2" ]]; then
163161
EXPORT_SCRIPT=mobilenet_v2
164-
EXPORTED_MODEL_NAME=mv2_qnn.pte
165162
elif [[ "${MODEL_NAME}" == "ic4" ]]; then
166163
EXPORT_SCRIPT=inception_v4
167-
EXPORTED_MODEL_NAME=ic4_qnn.pte
168164
elif [[ "${MODEL_NAME}" == "ic3" ]]; then
169165
EXPORT_SCRIPT=inception_v3
170-
EXPORTED_MODEL_NAME=ic3_qnn.pte
171166
elif [[ "${MODEL_NAME}" == "vit" ]]; then
172167
EXPORT_SCRIPT=torchvision_vit
173-
EXPORTED_MODEL_NAME=vit_qnn.pte
174168
fi
175169

176170
# Use SM8450 for S22, SM8550 for S23, and SM8560 for S24
177171
# TODO(guangyang): Make QNN chipset matches the target device
178172
QNN_CHIPSET=SM8450
179173

180174
"${PYTHON_EXECUTABLE}" -m examples.qualcomm.scripts.${EXPORT_SCRIPT} -b ${CMAKE_OUTPUT_DIR} -m ${QNN_CHIPSET} --compile_only
181-
EXPORTED_MODEL=./${EXPORT_SCRIPT}/${EXPORTED_MODEL_NAME}
175+
EXPORTED_MODEL=$(find "./${EXPORT_SCRIPT}" -type f -name "${MODEL_NAME}*.pte" -print -quit)
182176
}
183177

184178
test_model_with_coreml() {
@@ -187,7 +181,24 @@ test_model_with_coreml() {
187181
exit 1
188182
fi
189183

190-
"${PYTHON_EXECUTABLE}" -m examples.apple.coreml.scripts.export --model_name="${MODEL_NAME}"
184+
DTYPE=float16
185+
186+
"${PYTHON_EXECUTABLE}" -m examples.apple.coreml.scripts.export --model_name="${MODEL_NAME}" --compute_precision "${DTYPE}"
187+
EXPORTED_MODEL=$(find "." -type f -name "${MODEL_NAME}*.pte" -print -quit)
188+
# TODO:
189+
if [ -n "$EXPORTED_MODEL" ]; then
190+
EXPORTED_MODEL_WITH_DTYPE="${EXPORTED_MODEL%.pte}_${DTYPE}.pte"
191+
mv "$EXPORTED_MODEL" "$EXPORTED_MODEL_WITH_DTYPE"
192+
EXPORTED_MODEL="$EXPORTED_MODEL_WITH_DTYPE"
193+
echo "Renamed file path: $EXPORTED_MODEL"
194+
else
195+
echo "No .pte file found"
196+
exit 1
197+
fi
198+
}
199+
200+
test_model_with_mps() {
201+
"${PYTHON_EXECUTABLE}" -m examples.apple.mps.scripts.mps_example --model_name="${MODEL_NAME}" --use_fp16
191202
EXPORTED_MODEL=$(find "." -type f -name "${MODEL_NAME}*.pte" -print -quit)
192203
}
193204

@@ -206,6 +217,12 @@ elif [[ "${BACKEND}" == "coreml" ]]; then
206217
if [[ $? -eq 0 ]]; then
207218
prepare_artifacts_upload
208219
fi
220+
elif [[ "${BACKEND}" == "mps" ]]; then
221+
echo "Testing ${MODEL_NAME} with mps..."
222+
test_model_with_mps
223+
if [[ $? -eq 0 ]]; then
224+
prepare_artifacts_upload
225+
fi
209226
elif [[ "${BACKEND}" == "xnnpack" ]]; then
210227
echo "Testing ${MODEL_NAME} with xnnpack..."
211228
WITH_QUANTIZATION=true

.github/workflows/android-perf.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ jobs:
292292
--output-dir benchmark-results \
293293
--repo ${{ github.repository }} \
294294
--head-branch ${{ github.head_ref || github.ref_name }} \
295-
--workflow-name ${{ github.workflow }} \
295+
--workflow-name "${{ github.workflow }}" \
296296
--workflow-run-id ${{ github.run_id }} \
297297
--workflow-run-attempt ${{ github.run_attempt }}
298298
done

.github/workflows/android.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ on:
1515
- install_requirements.sh
1616
- examples/demo-apps/android/**
1717
- extension/android/**
18+
- extension/benchmark/android/**
1819
- extension/module/**
1920
workflow_dispatch:
2021

.github/workflows/apple-perf.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ jobs:
169169
DELEGATE_CONFIG="xnnpack+custom+qe"
170170
elif [[ ${{ matrix.delegate }} == "coreml" ]]; then
171171
DELEGATE_CONFIG="coreml"
172+
elif [[ ${{ matrix.delegate }} == "mps" ]]; then
173+
DELEGATE_CONFIG="mps"
172174
fi
173175
PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \
174176
bash .ci/scripts/test_llama.sh "${{ matrix.model }}" "${BUILD_MODE}" "${DTYPE}" "${DELEGATE_CONFIG}" "${ARTIFACTS_DIR_NAME}"
@@ -235,17 +237,17 @@ jobs:
235237
PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \
236238
build/build_apple_frameworks.sh --coreml --custom --mps --optimized --portable --quantized --xnnpack
237239
238-
mkdir -p extension/apple/Benchmark/Frameworks
240+
mkdir -p extension/benchmark/apple/Benchmark/Frameworks
239241
for FRAMEWORK in "${FRAMEWORKS[@]}"; do (
240-
cp -r "cmake-out/${FRAMEWORK}.xcframework" extension/apple/Benchmark/Frameworks/
242+
cp -r "cmake-out/${FRAMEWORK}.xcframework" extension/benchmark/apple/Benchmark/Frameworks/
241243
) done
242244
echo "::endgroup::"
243245
244246
# NB: Although exported models can be copied to this directory and bundled together with the
245247
# app, we don't use this in CI and rely on AWS extra data parameter to make the model and the
246248
# tokenizer available to the benchmark. This decouples the app and the model. We just need to
247249
# create the directory here to pass the build
248-
mkdir -p extension/apple/Benchmark/Models
250+
mkdir -p extension/benchmark/apple/Benchmark/Models
249251
${CONDA_RUN} --no-capture-output \
250252
build/build_apple_llm_demo.sh ${ARTIFACTS_DIR_NAME}
251253

.github/workflows/apple.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ on:
1818
- build/test_ios_ci.sh
1919
- examples/demo-apps/apple_ios/**
2020
- extension/apple/**
21+
- extension/benchmark/apple/**
2122
- extension/module/**
2223
workflow_dispatch:
2324

@@ -272,14 +273,14 @@ jobs:
272273
PYTHON_EXECUTABLE=python ${CONDA_RUN} --no-capture-output \
273274
build/build_apple_frameworks.sh --coreml --custom --mps --optimized --portable --quantized --xnnpack
274275
275-
mkdir -p extension/apple/Benchmark/Frameworks
276+
mkdir -p extension/benchmark/apple/Benchmark/Frameworks
276277
for FRAMEWORK in "${FRAMEWORKS[@]}"; do (
277-
cp -r "cmake-out/${FRAMEWORK}.xcframework" extension/apple/Benchmark/Frameworks/
278+
cp -r "cmake-out/${FRAMEWORK}.xcframework" extension/benchmark/apple/Benchmark/Frameworks/
278279
) done
279280
echo "::endgroup::"
280281
281282
echo "::group::Build ExecuTorch benchmark app"
282-
mkdir -p extension/apple/Benchmark/Models
283+
mkdir -p extension/benchmark/apple/Benchmark/Models
283284
${CONDA_RUN} --no-capture-output \
284285
build/build_apple_llm_demo.sh ${ARTIFACTS_DIR_NAME}
285286
echo "::endgroup::"

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
FILES_NEEDS_FORMAT=$(/opt/google-java-format -n extension/android/src/main/java/org/pytorch/executorch/*.java \
6767
examples/demo-apps/android/ExecuTorchDemo/app/src/main/java/com/example/executorchdemo/*.java \
6868
examples/demo-apps/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/*.java \
69-
extension/android/benchmark/app/src/main/java/org/pytorch/minibench/*.java)
69+
extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/*.java)
7070
if [ -n "$FILES_NEEDS_FORMAT" ]; then
7171
echo "Warning: The following files need formatting. Please use google-java-format."
7272
echo "Use a binary from https://github.com/google/google-java-format/releases/"

.github/workflows/trunk.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,8 @@ jobs:
311311
PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh
312312
PYTHON_EXECUTABLE=python bash .ci/scripts/test_model.sh ${{ matrix.model }} "cmake" "qnn"
313313
314-
test-coreml-model:
315-
name: test-coreml-model
314+
test-apple-model:
315+
name: test-apple-model
316316
uses: pytorch/test-infra/.github/workflows/macos_job.yml@main
317317
strategy:
318318
fail-fast: false
@@ -324,20 +324,25 @@ jobs:
324324
timeout: 90
325325
script: |
326326
BUILD_TOOL=cmake
327-
BACKEND=coreml
328327
329328
bash .ci/scripts/setup-conda.sh
330329
331330
# Setup MacOS dependencies as there is no Docker support on MacOS atm
332331
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}"
333332
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash backends/apple/coreml/scripts/install_requirements.sh
334333
echo "Finishing installing coreml."
334+
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash backends/apple/mps/install_requirements.sh
335+
echo "Finishing installing mps."
335336
336337
# Build and test coreml model
337338
MODELS=(mv3 ic4 resnet50 edsr mobilebert w2l)
338339
for MODEL_NAME in "${MODELS[@]}"; do
339340
echo "::group::Exporting coreml model: $MODEL_NAME"
340-
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/test_model.sh "${MODEL_NAME}" "${BUILD_TOOL}" "${BACKEND}"
341+
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/test_model.sh "${MODEL_NAME}" "${BUILD_TOOL}" "coreml"
342+
echo "::endgroup::"
343+
344+
echo "::group::Exporting mps model: $MODEL_NAME"
345+
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/test_model.sh "${MODEL_NAME}" "${BUILD_TOOL}" "mps"
341346
echo "::endgroup::"
342347
done
343348

.github/workflows/upload-android-test-specs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ on:
44
pull_request:
55
paths:
66
- .github/workflows/upload-android-test-specs.yml
7-
- extension/android/benchmark/android-llm-device-farm-test-spec.yml
7+
- extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml
88
push:
99
branches:
1010
- main
1111
paths:
1212
- .github/workflows/upload-android-test-specs.yml
13-
- extension/android/benchmark/android-llm-device-farm-test-spec.yml
13+
- extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml
1414

1515
concurrency:
1616
# NB: This concurency group needs to be different than the one used in android-perf, otherwise
@@ -32,7 +32,7 @@ jobs:
3232
${{ github.repository }}/${{ github.run_id }}/artifacts
3333
retention-days: 1
3434
if-no-files-found: error
35-
path: extension/android/benchmark/android-llm-device-farm-test-spec.yml
35+
path: extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml
3636

3737
validate-android-test-spec:
3838
needs: upload-android-test-spec-for-validation
@@ -77,7 +77,7 @@ jobs:
7777
7878
- name: Upload the spec to S3 ossci-android bucket
7979
shell: bash
80-
working-directory: extension/android/benchmark/
80+
working-directory: extension/benchmark/android/benchmark/
8181
env:
8282
SPEC_FILE: android-llm-device-farm-test-spec.yml
8383
run: |

.github/workflows/upload-apple-test-specs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ on:
44
pull_request:
55
paths:
66
- .github/workflows/upload-apple-test-specs.yml
7-
- examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml
7+
- extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml
88
push:
99
branches:
1010
- main
1111
paths:
1212
- .github/workflows/upload-apple-test-specs.yml
13-
- examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml
13+
- extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml
1414

1515
concurrency:
1616
# NB: This concurency group needs to be different than the one used in apple-perf, otherwise
@@ -32,7 +32,7 @@ jobs:
3232
${{ github.repository }}/${{ github.run_id }}/artifacts
3333
retention-days: 1
3434
if-no-files-found: error
35-
path: examples/demo-apps/apple_ios/default-ios-device-farm-appium-test-spec.yml
35+
path: extension/benchmark/apple/Benchmark/default-ios-device-farm-appium-test-spec.yml
3636

3737
validate-apple-test-spec:
3838
needs: upload-apple-test-spec-for-validation
@@ -78,7 +78,7 @@ jobs:
7878
7979
- name: Upload the spec to S3 ossci-ios bucket
8080
shell: bash
81-
working-directory: examples/demo-apps/apple_ios
81+
working-directory: extension/benchmark/apple/Benchmark/
8282
env:
8383
SPEC_FILE: default-ios-device-farm-appium-test-spec.yml
8484
run: |

.lintrunner.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ exclude_patterns = [
180180
'**/*.bat',
181181
'**/*.jpg',
182182
'**/*.jar',
183+
'**/*.gif',
183184
# File contains @generated
184185
'extension/llm/custom_ops/spinquant/fast_hadamard_transform_special.h',
185186
'extension/llm/custom_ops/spinquant/test/fast_hadamard_transform_special_unstrided_cpu.h',

0 commit comments

Comments
 (0)