Skip to content
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

Add CI/CD for ARM64 using GitHub Actions #56097

Merged
merged 6 commits into from May 20, 2022

Conversation

mseth10
Copy link
Contributor

@mseth10 mseth10 commented May 13, 2022

  • Added GitHub workflows to build, test and upload ARM64 pip wheels for Python versions 3.7, 3.8, 3.9 and 3.10
  • Workflow jobs run on self-hosted runners on AWS Graviton instances
  • CI workflow uploads generated pip wheels to GitHub Actions and is triggered for:
    • PR on master branch
    • PR on branch name starting with r2.
  • CD workflow uploads generated pip wheels to PyPI and is triggered for:
    • New tags starting with v2.
    • Nightly on master branch at 8am UTC
  • Following 18 tests currently fail and are skipped:
    tensorflow/python:nn_grad_test_cpu
    tensorflow/python:dequantize_op_test
    tensorflow/python:quantized_ops_test
    tensorflow/python/data/experimental/kernel_tests/service:cross_trainer_cache_test
    tensorflow/python/eager:forwardprop_test_cpu
    tensorflow/python/framework:node_file_writer_test_cpu
    tensorflow/python/grappler:memory_optimizer_test
    tensorflow/python/kernel_tests/linalg:linear_operator_householder_test_cpu
    tensorflow/python/kernel_tests/linalg:linear_operator_inversion_test_cpu
    tensorflow/python/kernel_tests/linalg:linear_operator_block_diag_test_cpu
    tensorflow/python/kernel_tests/linalg:linear_operator_block_lower_triangular_test_cpu
    tensorflow/python/kernel_tests/linalg:linear_operator_kronecker_test_cpu
    tensorflow/python/kernel_tests/math_ops:batch_matmul_op_test_cpu
    tensorflow/python/kernel_tests/nn_ops:conv_ops_test_cpu
    tensorflow/python/kernel_tests/nn_ops:conv2d_backprop_filter_grad_test_cpu
    tensorflow/python/kernel_tests/nn_ops:conv3d_backprop_filter_v2_grad_test_cpu
    tensorflow/python/kernel_tests/nn_ops:atrous_conv2d_test_cpu
    tensorflow/python/ops/parallel_for:math_test_cpu
    

@google-ml-butler google-ml-butler bot added the size:L CL Change Size: Large label May 13, 2022
@gbaned gbaned added this to Assigned Reviewer in PR Queue via automation May 13, 2022
@gbaned gbaned requested a review from mihaimaruseac May 13, 2022 14:03
@google-ml-butler google-ml-butler bot added the awaiting review Pull request awaiting review label May 13, 2022
@google-ml-butler google-ml-butler bot added kokoro:force-run Tests on submitted change ready to pull PR ready for merge process labels May 13, 2022
PR Queue automation moved this from Assigned Reviewer to Approved by Reviewer May 13, 2022
@kokoro-team kokoro-team removed the kokoro:force-run Tests on submitted change label May 13, 2022
@google-ml-butler google-ml-butler bot removed the ready to pull PR ready for merge process label May 17, 2022
@mseth10 mseth10 force-pushed the master-arm branch 2 times, most recently from 48d9942 to b55fde2 Compare May 17, 2022 22:27
@google-ml-butler google-ml-butler bot added kokoro:force-run Tests on submitted change ready to pull PR ready for merge process labels May 18, 2022
@kokoro-team kokoro-team removed the kokoro:force-run Tests on submitted change label May 18, 2022
@angerson
Copy link
Contributor

angerson commented May 18, 2022

Thanks a lot for your work on this, @mseth10.

The files changed here are very, very old -- at least two separate revisions of our CI process ago -- and are on the backlog of things we'd like to remove, since they have caused a lot of confusion. What led you to use these files for the tests (our CONTRIBUTING.md, perhaps)? Can we work next on upgrading to a different setup, after we get it working in its current iteration?

@google-ml-butler google-ml-butler bot removed the ready to pull PR ready for merge process label May 19, 2022
@mseth10
Copy link
Contributor Author

mseth10 commented May 19, 2022

The files changed here are very, very old -- at least two separate revisions of our CI process ago -- and are on the backlog of things we'd like to remove, since they have caused a lot of confusion. What led you to use these files for the tests (our CONTRIBUTING.md, perhaps)? Can we work next on upgrading to a different setup, after we get it working in its current iteration?

Hi @angerson , thanks for pointing that out. Are we talking about a particular file here? Or the entire tensorflow/tools/ci_build/ folder is old? I searched the repository and docs (including CONTRIBUTING.md) and found only these files to be related to pip wheel generation. Please point me to the new process, I can upgrade in the next PR. We can merge this PR in its current state to get the wheel generation process started for nightly and 2.9.0 release.

@mihaimaruseac
Copy link
Collaborator

In principle our release jobs are now under tensorflow/tools/ci_build/rel and we were planning to deprecare the rest, especially pip_new.sh which is inscrutable, requiring envvars to be properly set before being called.

But I would say we should go with this for now and plan a future migration.

@google-ml-butler google-ml-butler bot added kokoro:force-run Tests on submitted change ready to pull PR ready for merge process labels May 20, 2022
@kokoro-team kokoro-team removed the kokoro:force-run Tests on submitted change label May 20, 2022
@copybara-service copybara-service bot merged commit 7cb4138 into tensorflow:master May 20, 2022
mseth10 pushed a commit to mseth10/tensorflow that referenced this pull request May 20, 2022
@mseth10 mseth10 deleted the master-arm branch May 20, 2022 23:05
mihaimaruseac pushed a commit that referenced this pull request May 20, 2022
@martin-g
Copy link

Apologies for commenting on a closed PR!
Is the work in this PR supposed to publish an aarch64 wheel for https://pypi.org/project/tensorflow-cpu/2.9.1/#files ?
If NOT then where should I look at for it ?
Thank you!

@elfringham
Copy link
Contributor

@martin-g You can find it at https://pypi.org/project/tensorflow-cpu-aws/#files but once it is publicly announced you will be able to just 'pip install tensorflow' and get the appropriate wheel for your platform.

@mihaimaruseac
Copy link
Collaborator

Not for TF 2.9 (since we don't change branches (much) after a release), but it will in TF 2.10.

Meanwhile, they show up in nightly: https://pypi.org/project/tf-nightly/#files (actually, only a wrapper wheel that then redirects to the aarch64 wheels in a separate PyPI project to minimize need to reuse credentials, etc.)

@martin-g
Copy link

Thank you!

chxin66 pushed a commit to chxin66/tensorflow that referenced this pull request Sep 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting review Pull request awaiting review ready to pull PR ready for merge process size:L CL Change Size: Large
Projects
PR Queue
  
Approved by Reviewer
Development

Successfully merging this pull request may close these issues.

None yet

7 participants