-
Notifications
You must be signed in to change notification settings - Fork 14
Added Resnet50 closed division github action #289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
1fb2579
234aad7
394ab4a
beda189
ea48b11
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
name: MLPerf inference ResNet50 Closed Division for testing Compliance | ||
|
||
on: | ||
schedule: | ||
- cron: '0 0 * * 0' # Runs once a week | ||
pull_request_target: | ||
branches: [ "main", "dev" ] | ||
paths: | ||
- '.github/workflows/test-mlperf-inference-resnet50-closed-division.yml' | ||
- '**' | ||
- '!**.md' | ||
workflow_dispatch: # Allows manual triggering of the workflow | ||
jobs: | ||
build: | ||
name: MLPerf inference MLCommons ResNet50 Closed Division | ||
runs-on: ${{ matrix.os }} | ||
env: | ||
MLC_INDEX: "on" | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest, windows-latest, macos-latest] | ||
python-version: [ "3.12" ] | ||
backend: [ "onnxruntime", "tf" ] | ||
implementation: [ "python", "cpp" ] | ||
exclude: | ||
- backend: tf | ||
implementation: cpp | ||
- os: macos-latest | ||
backend: tf | ||
- os: windows-latest | ||
implementation: cpp | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Check if the submission is for closed division | ||
run: | | ||
if git diff --name-only origin/${{ github.base_ref }}..HEAD | xargs grep -l "division=closed"; then | ||
echo "DIVISION_CLOSED=true" >> $GITHUB_ENV | ||
else | ||
echo "DIVISION_CLOSED=false" >> $GITHUB_ENV | ||
fi | ||
|
||
- name: Check value for the divison | ||
run: echo "DIVISION_CLOSED=${{ env.DIVISION_CLOSED }}" | ||
|
||
- name: Skip workflow if its an open division submission as no compliance test is required | ||
if: ${{ env.DIVISION_CLOSED == 'false' }} | ||
run: | | ||
echo "Skipping workflow because division=closed is not found in the changes." | ||
exit 0 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Configure git longpaths (Windows) | ||
if: matrix.os == 'windows-latest' | ||
run: | | ||
git config --system core.longpaths true | ||
|
||
- name: Install mlcflow | ||
run: | | ||
pip install mlcflow | ||
pip install tabulate | ||
|
||
- name: Pull MLOps repo | ||
run: | | ||
mlc pull repo ${{ github.event.pull_request.head.repo.html_url }} --branch=${{ github.event.pull_request.head.ref }} | ||
|
||
- name: Test MLPerf Inference ResNet50 (Windows) | ||
if: matrix.os == 'windows-latest' | ||
run: | | ||
mlcr run-mlperf,inference,_submission,_short,_all-scenarios, division=closed, --submitter="MLCommons" --pull_changes=yes --pull_inference_changes=yes --hw_name="gh_${{ matrix.os }} x86" --model=resnet50 --adr.loadgen.tags=_from-pip --pip_loadgen=yes --implementation=${{ matrix.implementation }} --backend=${{ matrix.backend }} --device=cpu --scenario=Offline --test_query_count=500 --quiet | ||
|
||
- name: Compliance Test MLPerf Inference ResNet50 (Windows) | ||
if: matrix.os == 'windows-latest' | ||
run: mlcr run-mlperf,inference,_submission,_short,_all-scenarios, division=closed, --submitter="MLCommons" --pull_changes=yes --pull_inference_changes=yes --hw_name="gh_${{ matrix.os }} x86" --model=resnet50 --adr.loadgen.tags=_from-pip --pip_loadgen=yes --implementation=${{ matrix.implementation }} --backend=${{ matrix.backend }} --device=cpu --scenario=Offline --test_query_count=500 --quiet --compliance=yes # mentioning only --compliance currently doesnt work needs to be --compliance=yes | ||
|
||
- name: Test MLPerf Inference ResNet50 (Linux/macOS) | ||
if: matrix.os != 'windows-latest' | ||
run: | | ||
mlcr run-mlperf,inference,_submission,_short,_all-scenarios, division=closed, --submitter="MLCommons" --pull_changes=yes --pull_inference_changes=yes --hw_name="gh_${{ matrix.os }} x86" --model=resnet50 --implementation=${{ matrix.implementation }} --backend=${{ matrix.backend }} --device=cpu --scenario=Offline --test_query_count=500 --target_qps=1 -v --quiet | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this command tested? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Apologies for opening the PR without testing the GitHub action earlier. I wasn't completely aware of how the GitHub action workflow operated, which led to this oversight. Here are the test logs for the latest commit: Logs |
||
|
||
- name: Compliance Test MLPerf Inference ResNet50 (Linux/macOS) | ||
run: | | ||
mlcr run-mlperf,inference,_submission,_short,_all-scenarios, division=closed, --submitter="MLCommons" --pull_changes=yes --pull_inference_changes=yes --hw_name="gh_${{ matrix.os }} x86" --model=resnet50 --implementation=${{ matrix.implementation }} --backend=${{ matrix.backend }} --device=cpu --scenario=Offline --test_query_count=500 --target_qps=1 -v --quiet --compliance=yes | ||
|
||
|
||
# Step for Linux/MacOS | ||
- name: Randomly Execute Step (Linux/MacOS) | ||
if: runner.os != 'Windows' | ||
run: | | ||
RANDOM_NUMBER=$((RANDOM % 10)) | ||
echo "Random number is $RANDOM_NUMBER" | ||
if [ "$RANDOM_NUMBER" -eq 0 ]; then | ||
echo "run_step=true" >> $GITHUB_ENV | ||
else | ||
echo "run_step=false" >> $GITHUB_ENV | ||
fi | ||
|
||
# Step for Windows | ||
- name: Randomly Execute Step (Windows) | ||
if: runner.os == 'Windows' | ||
run: | | ||
$RANDOM_NUMBER = Get-Random -Maximum 10 | ||
Write-Host "Random number is $RANDOM_NUMBER" | ||
if ($RANDOM_NUMBER -eq 0) { | ||
Write-Host "run_step=true" | Out-File -FilePath $Env:GITHUB_ENV -Append | ||
} else { | ||
Write-Host "run_step=false" | Out-File -FilePath $Env:GITHUB_ENV -Append | ||
} | ||
|
||
- name: Retrieve secrets from Keeper | ||
if: github.repository_owner == 'mlcommons' && env.run_step == 'true' | ||
id: ksecrets | ||
uses: Keeper-Security/ksm-action@master | ||
with: | ||
keeper-secret-config: ${{ secrets.KSM_CONFIG }} | ||
secrets: |- | ||
ubwkjh-Ii8UJDpG2EoU6GQ/field/Access Token > env:PAT | ||
- name: Push Results | ||
env: | ||
GITHUB_TOKEN: ${{ env.PAT }} | ||
if: github.repository_owner == 'mlcommons' && env.run_step == 'true' | ||
run: | | ||
git config --global user.name "mlcommons-bot" | ||
git config --global user.email "mlcommons-bot@users.noreply.github.com" | ||
git config --global credential.https://github.com.helper "" | ||
git config --global credential.https://github.com.helper "!gh auth git-credential" | ||
git config --global credential.https://gist.github.com.helper "" | ||
git config --global credential.https://gist.github.com.helper "!gh auth git-credential" | ||
mlcr push,github,mlperf,inference,submission --repo_url=https://github.com/mlcommons/mlperf_inference_test_submissions_v5.0 --repo_branch=auto-update --commit_message="Results from R50 GH action on ${{ matrix.os }}" --quiet | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is this step doing? This is not a submission repo right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, you are right. Earlier, I had the wrong impression that we needed to evaluate this action only for submissions in the closed division. However, as you correctly mentioned, this is not a submission repository, and we require this action to verify the correctness of the automation script. I have addressed this issue in the latest commit.