diff --git a/.github/actions/linux-uttest/action.yml b/.github/actions/linux-uttest/action.yml index 9f3888694..847d71b8a 100644 --- a/.github/actions/linux-uttest/action.yml +++ b/.github/actions/linux-uttest/action.yml @@ -74,34 +74,7 @@ runs: python run_test_with_skip.py \ 2> ${{ github.workspace }}/ut_log/op_ut/op_ut_with_skip_test_error.log | \ tee ${{ github.workspace }}/ut_log/op_ut/op_ut_with_skip_test.log - ls -al - cp *.xml ${{ github.workspace }}/ut_log - find op_ut_with_skip.nn op_ut_with_skip.quantization/core op_ut_with_all.functorch -type f -exec sh -c ' - dir_path=$(dirname "$1"); - case "$dir_path" in - *"op_ut_with_skip.quantization/core"*) - dir_name="op_ut_with_skip.quantization.core";; - *"op_ut_with_all.functorch"*) - dir_name="op_ut_with_all.functorch";; - *) - dir_name="op_ut_with_skip.nn";; - esac; - mv "$1" "$dir_path/${dir_name}.$(basename "$1")" - ' _ {} \; - ls -al op_ut_with_skip.nn op_ut_with_skip.quantization/core op_ut_with_all.functorch - cp op_ut_with_skip.nn/*.xml ${{ github.workspace }}/ut_log - cp op_ut_with_skip.quantization/core/*.xml ${{ github.workspace }}/ut_log - cp op_ut_with_all.functorch/*.xml ${{ github.workspace }}/ut_log - # Cases run with a on-demand white list, since some suites are too - # slow to go through all operators on CPU. So add cases on-demand - # when XPU implementatoin is done. - # test_foreach, test_decomp - # Run with only - python run_test_with_only.py \ - 2> ${{ github.workspace }}/ut_log/op_ut/op_ut_with_only_test_error.log | \ - tee ${{ github.workspace }}/ut_log/op_ut/op_ut_with_only_test.log - ls -al - cp *.xml ${{ github.workspace }}/ut_log + find . -type f -name "op_ut_with_*.xml" -exec mv {} ${{ github.workspace }}/ut_log/ \; || true echo -e "File Path: cd pytorch/third_party/torch-xpu-ops/test/xpu" | tee -a ${{ github.workspace }}/ut_log/reproduce_op_ut.log echo -e "Reproduce Command: pytest -sv failed_case" | tee -a ${{ github.workspace }}/ut_log/reproduce_op_ut.log - name: skipped_ut @@ -114,9 +87,9 @@ runs: python run_test_with_skip.py --test-cases skipped \ 2> ${{ github.workspace }}/ut_log/skipped_ut/skipped_ut_with_skip_test_error.log | \ tee ${{ github.workspace }}/ut_log/skipped_ut/skipped_ut_with_skip_test.log + find . -type f -name "op_ut_with_*.xml" -exec mv {} ${{ github.workspace }}/ut_log/ \; || true echo -e "File Path: cd pytorch/third_party/torch-xpu-ops/test/xpu" | tee -a ${{ github.workspace }}/ut_log/reproduce_skipped_ut.log echo -e "Reproduce Command: pytest -sv failed_case" | tee -a ${{ github.workspace }}/ut_log/reproduce_skipped_ut.log - cp *.xml ${{ github.workspace }}/ut_log - name: torch_xpu shell: timeout 3600 bash -xe {0} if: ${{ inputs.ut_name == 'torch_xpu' }} diff --git a/.github/scripts/e2e_summary.sh b/.github/scripts/e2e_summary.sh index b5e2506a9..e931032c3 100644 --- a/.github/scripts/e2e_summary.sh +++ b/.github/scripts/e2e_summary.sh @@ -213,7 +213,7 @@ process_model() { done local row - row=$(generate_html_row "$suite" "$model" "${results[@]}") + row=$(generate_html_row "$suite" "$model") if [[ "$row" =~ ${RED}|${GREEN}|${YELLOW} ]]; then echo "$row" | tee -a accuracy.details.html >> accuracy.regression.html @@ -258,15 +258,20 @@ determine_color() { generate_html_row() { local suite="$1" model="$2" - shift 2 - local results=("$@") - cat << EOF $suite $model - ${results[0]}${results[1]}${results[2]}${results[3]}${results[4]} - ${results[5]}${results[6]}${results[7]}${results[8]}${results[9]} + ${results["training_float32"]} + ${results["training_bfloat16"]} + ${results["training_float16"]} + ${results["training_amp_bf16"]} + ${results["training_amp_fp16"]} + ${results["inference_float32"]} + ${results["inference_bfloat16"]} + ${results["inference_float16"]} + ${results["inference_amp_bf16"]} + ${results["inference_amp_fp16"]} EOF } diff --git a/.github/scripts/get_issue.py b/.github/scripts/get_issue.py index 589c024a7..3d83df3cc 100644 --- a/.github/scripts/get_issue.py +++ b/.github/scripts/get_issue.py @@ -8,7 +8,7 @@ import re import json import argparse -from github import Github +from github import Github, Auth def get_github_issues(repo_owner, repo_name, labels, state='open'): @@ -91,8 +91,9 @@ def main(): # Quick token check token = os.getenv('GH_TOKEN') + auth = Auth.Token(token) global g - g = Github(token) # Increase page size for fewer API calls + g = Github(auth=auth) print(f"Fetching known issues from {args.repo_owner}/{args.repo_name}...") diff --git a/.github/workflows/_linux_ut.yml b/.github/workflows/_linux_ut.yml index dc1064712..bb6b90eb8 100644 --- a/.github/workflows/_linux_ut.yml +++ b/.github/workflows/_linux_ut.yml @@ -67,7 +67,7 @@ jobs: -e ZE_AFFINITY_MASK env: AGENT_TOOLSDIRECTORY: /tmp/xpu-tool - PYTEST_ADDOPTS: -v --timeout 600 --timeout_method=thread --max-worker-restart 1000000 + PYTEST_ADDOPTS: -v --timeout 600 --timeout_method=thread --max-worker-restart 1000 --dist worksteal ${{ needs.runner.outputs.pytest_extra_args }} steps: - name: Checkout torch-xpu-ops @@ -104,7 +104,7 @@ jobs: runs-on: ${{ needs.runner.outputs.runner_id }} env: AGENT_TOOLSDIRECTORY: /tmp/xpu-tool - PYTEST_ADDOPTS: -v --timeout 3600 --timeout_method=thread -n 1 --max-worker-restart 10000 + PYTEST_ADDOPTS: -v --timeout 3600 --timeout_method=thread -n 1 --max-worker-restart 1000 steps: - name: Checkout torch-xpu-ops uses: actions/checkout@v4 diff --git a/test/xpu/xpu_test_utils.py b/test/xpu/xpu_test_utils.py index 29bee2ce3..14fa4173f 100644 --- a/test/xpu/xpu_test_utils.py +++ b/test/xpu/xpu_test_utils.py @@ -1092,6 +1092,7 @@ def copy_tests( def launch_test(test_case, skip_list=None, exe_list=None): os.environ["PYTORCH_TEST_WITH_SLOW"] = "1" + module_name = test_case.replace(".py", "").replace("/", ".").replace("\\", ".") if skip_list is not None: skip_options = ' -k "not ' + skip_list[0] for skip_case in skip_list[1:]: @@ -1099,8 +1100,7 @@ def launch_test(test_case, skip_list=None, exe_list=None): skip_options += skip_option skip_options += '"' test_command = ( - f"pytest --junit-xml=./op_ut_with_skip.{test_case}.xml --max-worker-restart=1000 " - + test_case + f"pytest --junit-xml=./op_ut_with_skip.{module_name}.xml " + test_case ) test_command += skip_options elif exe_list is not None: @@ -1110,13 +1110,11 @@ def launch_test(test_case, skip_list=None, exe_list=None): exe_options += exe_option exe_options += '"' test_command = ( - f"pytest --junit-xml=./op_ut_with_exe.{test_case}.xml --max-worker-restart=1000 " - + test_case + f"pytest --junit-xml=./op_ut_with_exe.{module_name}.xml " + test_case ) test_command += exe_options else: test_command = ( - f"pytest --junit-xml=./op_ut_with_all.{test_case}.xml --max-worker-restart=1000 " - + test_case + f"pytest --junit-xml=./op_ut_with_all.{module_name}.xml " + test_case ) return os.system(test_command)