Skip to content

Commit

Permalink
Merge branch 'main' into minjean/welford_layernorm
Browse files Browse the repository at this point in the history
  • Loading branch information
min-jean-cho authored Feb 19, 2025
2 parents 5fe435b + d9918c6 commit c2d1f9f
Show file tree
Hide file tree
Showing 8 changed files with 404 additions and 47 deletions.
115 changes: 115 additions & 0 deletions .github/scripts/check-ut.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import argparse
import sys
import os
from junitparser import JUnitXml, Error, Failure, Skipped

parser = argparse.ArgumentParser()
parser.add_argument('junitxml', nargs='+')
args = parser.parse_args()

failures = []
suites = []

def get_classname(case):
return ' '.join(case.classname.split())

def get_name(case):
return ' '.join(case.name.split())

def get_result(case):
result = "passed"
if case.result:
if isinstance(case.result[0], Error):
result = "error"
elif isinstance(case.result[0], Skipped):
result = "skipped"
elif isinstance(case.result[0], Failure):
result = "failed"
return result

def get_message(case):
if not case.result:
return ""
return f"{case.result[0].message.splitlines()[0]}"

def print_md_row(row, print_header):
if print_header:
header = " | ".join([f"{key}" for key, _ in row.items()])
print(f"| {header} |")
header = " | ".join(["-"*len(key) for key, _ in row.items()])
print(f"| {header} |")
row = " | ".join([f"{value}" for _, value in row.items()])
print(f"| {row} |")

def print_cases(cases):
print_header = True
for case in cases:
classname = get_classname(case)
name = get_name(case)
result = get_result(case)
message = get_message(case)
row = {
'Class name': classname,
'Test name': name,
'Status': result,
'Message': message,
}
print_md_row(row, print_header)
print_header = False

def print_suite(suite):
print_header = True
for suite in suites:
ut = args.junitxml[0]
del(args.junitxml[0])
ut = os.path.basename(ut).split('.')[0]
tests = suite.tests
skipped = suite.skipped
failures = suite.failures
errors = suite.errors
if ut == 'op_regression':
category = 'op_regression'
elif ut == 'op_regression_dev1':
category = 'op_regression_dev1'
elif ut == 'op_extended':
category = 'op_extended'
elif 'op_ut' in ut:
category = 'op_ut'
row = {
'Category': category,
'UT': ut,
'Test cases': tests,
'Passed': tests-skipped-failures-errors,
'Skipped': skipped,
'Failures': failures,
'Errors': errors,
}
print_md_row(row, print_header)
print_header = False

xmls = [ JUnitXml.fromfile(f) for f in args.junitxml ]
for idx, xml in enumerate(xmls):
for suite in xml:
suites.append(suite)
for case in suite:
classname = get_classname(case)
name = get_name(case)
result = get_result(case)
if result not in ["passed", "skipped"]:
failures.append(case)

printed = False
def print_break(needed):
if needed:
print("")

if failures:
print_break(printed)
print("### Failures")
print_cases(failures)
printed = True

print("### Results Summary")
print_suite(suites)

sys.exit(0)
12 changes: 10 additions & 2 deletions .github/workflows/_linux_ut.yml
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ jobs:
cd ${{ github.workspace }}
cd test/regressions
pip install pytest
timeout 8000 pytest -v 2>${{ github.workspace }}/ut_log/op_regression/op_regression_test_error.log | tee ${{ github.workspace }}/ut_log/op_regression/op_regression_test.log
timeout 8000 pytest -v --junit-xml=${{ github.workspace }}/ut_log/op_regression.xml 2>${{ github.workspace }}/ut_log/op_regression/op_regression_test_error.log | tee ${{ github.workspace }}/ut_log/op_regression/op_regression_test.log
- name: Run XPU OP Regressions test on device 1
if: contains(inputs.ut, 'op_regression_dev1') || github.event_name == 'schedule'
run: |
Expand All @@ -169,7 +169,7 @@ jobs:
cd ${{ github.workspace }}
cd test/regressions
pip install pytest
timeout 8000 pytest -v test_operation_on_device_1.py 2>${{ github.workspace }}/ut_log/op_regression_dev1/op_regression_dev1_test_error.log | tee ${{ github.workspace }}/ut_log/op_regression_dev1/op_regression_dev1_test.log
timeout 8000 pytest -v --junit-xml=${{ github.workspace }}/ut_log/op_regression_dev1.xml test_operation_on_device_1.py 2>${{ github.workspace }}/ut_log/op_regression_dev1/op_regression_dev1_test_error.log | tee ${{ github.workspace }}/ut_log/op_regression_dev1/op_regression_dev1_test.log
export ZE_AFFINITY_MASK=${ZE_AFFINITY_MASK_OLD}
- name: Run XPU OP Extended UT
if: contains(inputs.ut, 'op_extended') || github.event_name == 'schedule'
Expand All @@ -181,6 +181,7 @@ jobs:
mkdir -p ut_log/op_extended
cd ../pytorch/third_party/torch-xpu-ops/test/xpu/extended/
timeout 10000 python run_test_with_skip.py 2>${{ github.workspace }}/ut_log/op_extended/op_extended_test_error.log | tee ${{ github.workspace }}/ut_log/op_extended/op_extended_test.log
cp op_extended.xml ${{ github.workspace }}/ut_log
- name: Run XPU OP UT
if: contains(inputs.ut, 'op_ut') || github.event_name == 'schedule'
run: |
Expand All @@ -192,11 +193,13 @@ jobs:
mkdir -p ut_log/op_ut
cd ../pytorch/third_party/torch-xpu-ops/test/xpu
timeout 10000 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
cp *.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
timeout 10000 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
cp op_ut_with_only.xml ${{ github.workspace }}/ut_log
- name: Run Torch XPU UT
if: contains(inputs.ut, 'torch_xpu') || github.event_name == 'schedule'
run: |
Expand Down Expand Up @@ -249,6 +252,11 @@ jobs:
timeout 10000 python run_distributed.py 2>${{ github.workspace }}/ut_log/xpu_distributed/xpu_distributed_test_error.log | tee ${{ github.workspace }}/ut_log/xpu_distributed/xpu_distributed_test.log
cd ${{ github.workspace }}
sudo cp ptrace_scope.bk /proc/sys/kernel/yama/ptrace_scope
- name: UT Test Results Summary
run: |
source activate xpu_op_${ZE_AFFINITY_MASK}
pip install junitparser
python .github/scripts/check-ut.py ${{ github.workspace }}/ut_log/*.xml >> $GITHUB_STEP_SUMMARY || true
- name: UT Test Results Check
shell: bash
run: |
Expand Down
Loading

0 comments on commit c2d1f9f

Please sign in to comment.