diff --git a/.github/workflows/test-webgpu-native.yml b/.github/workflows/test-webgpu-native.yml index 64d170e7630..eb46ef2fbbb 100644 --- a/.github/workflows/test-webgpu-native.yml +++ b/.github/workflows/test-webgpu-native.yml @@ -36,7 +36,11 @@ jobs: runner: linux.4xlarge.memory docker-image: ci-image:executorch-ubuntu-22.04-clang12 submodules: recursive - timeout: 120 + # The test script alone runs about 60 minutes, and the checkout plus the + # Dawn and SwiftShader source builds in front of it have been measured + # between 18 and 64 minutes on this same runner type, so 120 does not + # cover a slow setup. + timeout: 150 script: | set -eux diff --git a/backends/webgpu/scripts/test_webgpu_native_ci.sh b/backends/webgpu/scripts/test_webgpu_native_ci.sh index 0d5d7a9e799..8ee779959c8 100644 --- a/backends/webgpu/scripts/test_webgpu_native_ci.sh +++ b/backends/webgpu/scripts/test_webgpu_native_ci.sh @@ -106,8 +106,12 @@ export_rope_model('${ROPE_DECODE_MODEL}', '${ROPE_DECODE_XQ_GOLDEN}', '${ROPE_DE " $PYTHON_EXECUTABLE -c " -from executorch.backends.webgpu.test.ops.test_rope_hf import export_rope_hf_dynamic +from executorch.backends.webgpu.test.ops.test_rope_hf import ( + export_rope_hf_dynamic, + export_rope_hf_dynamic_sequence, +) export_rope_hf_dynamic('${ROPE_HF_DIR}') +export_rope_hf_dynamic_sequence('${ROPE_HF_DIR}') " $PYTHON_EXECUTABLE -c " @@ -157,6 +161,7 @@ export_incache_decode('/tmp') " require_file "${ROPE_HF_DIR}/rope_hf_dynamic.pte" +require_file "${ROPE_HF_DIR}/rope_hf_dynamic_sequence.pte" require_file "${SYMINT_BLOB}" require_file "${OUTPUT_SUPPRESSION_DIR}/input.bin" diff --git a/backends/webgpu/test/test_native_ci_contract.py b/backends/webgpu/test/test_native_ci_contract.py index 43b8ec6f56e..3a13fd7336a 100644 --- a/backends/webgpu/test/test_native_ci_contract.py +++ b/backends/webgpu/test/test_native_ci_contract.py @@ -71,5 +71,9 @@ def test_requires_dynamic_rope_fixture(self) -> None: ).read_text() self.assertIn("export_rope_hf_dynamic('${ROPE_HF_DIR}')", script) + self.assertIn("export_rope_hf_dynamic_sequence('${ROPE_HF_DIR}')", script) self.assertIn('WEBGPU_TEST_ROPE_HF_DIR="${ROPE_HF_DIR}"', script) self.assertIn('require_file "${ROPE_HF_DIR}/rope_hf_dynamic.pte"', script) + self.assertIn( + 'require_file "${ROPE_HF_DIR}/rope_hf_dynamic_sequence.pte"', script + )