Skip to content

Commit

Permalink
Add support for publishing macOS M1 ARM64 wheels (#2559)
Browse files Browse the repository at this point in the history
* Add support for publishing macOS M1 ARM64 wheels

* Link against the tensorflow-macos when building for ARM Macs
  • Loading branch information
lgeiger authored Sep 10, 2021
1 parent 50462a3 commit 2bb46df
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 3 deletions.
File renamed without changes.
File renamed without changes.
31 changes: 31 additions & 0 deletions .github/workflows/make_wheel_macOS_arm64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
set -e -x

export TF_NEED_CUDA=0

python --version
python -m pip install --default-timeout=1000 delocate wheel setuptools tensorflow==$TF_VERSION

python configure.py

# For dynamic linking, we want the ARM version of TensorFlow.
# Since we cannot run it on x86 so we need to force pip to install it regardless
python -m pip install \
--platform=macosx_11_0_arm64 \
--no-deps \
--target=$(python -c 'import site; print(site.getsitepackages()[0])') \
--upgrade \
tensorflow-macos==$TF_VERSION

bazel build \
--cpu=darwin_arm64 \
--copt -mmacosx-version-min=11.0 \
--linkopt -mmacosx-version-min=11.0 \
--noshow_progress \
--noshow_loading_progress \
--verbose_failures \
--test_output=errors \
build_pip_pkg

bazel-bin/build_pip_pkg artifacts "--plat-name macosx_11_0_arm64 $NIGHTLY_FLAG"
delocate-wheel -w wheelhouse artifacts/*.whl

File renamed without changes.
27 changes: 24 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,16 @@ jobs:
os: ['macos-latest', 'windows-latest', 'ubuntu-18.04']
py-version: ['3.6', '3.7', '3.8', '3.9']
tf-version: ['2.4.2', '2.6.0']
cpu: ['x86']
include:
- os: 'macos-11'
cpu: 'arm64'
tf-version: '2.5.0'
py-version: '3.8'
- os: 'macos-11'
cpu: 'arm64'
tf-version: '2.5.0'
py-version: '3.9'
fail-fast: false
steps:
- uses: actions/[email protected]
Expand Down Expand Up @@ -68,12 +78,13 @@ jobs:
PY_VERSION: ${{ matrix.py-version }}
TF_VERSION: ${{ matrix.tf-version }}
NIGHTLY_TIME: ${{ steps.author-date.outputs.result }}
CPU: ${{ matrix.cpu }}
shell: bash
run: bash .github/workflows/make_wheel_${OS}.sh
run: bash .github/workflows/make_wheel_${OS}_${CPU}.sh
- if: matrix.py-version != '3.9' || matrix.tf-version != '2.4.2'
uses: actions/upload-artifact@v1
with:
name: ${{ runner.os }}-${{ matrix.py-version }}-tf${{ matrix.tf-version }}-wheel
name: ${{ runner.os }}-${{ matrix.py-version }}-tf${{ matrix.tf-version }}-${{ matrix.cpu }}-wheel
path: wheelhouse
upload-wheels:
name: Publish wheels to PyPi
Expand All @@ -84,12 +95,22 @@ jobs:
os: ['macOS', 'Windows', 'Linux']
py-version: ['3.6', '3.7', '3.8', '3.9']
tf-version: ['2.6.0']
cpu: ['x86']
include:
- os: 'macos-11'
cpu: 'arm64'
tf-version: '2.5.0'
py-version: '3.8'
- os: 'macos-11'
cpu: 'arm64'
tf-version: '2.5.0'
py-version: '3.9'
fail-fast: false
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'release'
steps:
- uses: actions/download-artifact@v1
with:
name: ${{ matrix.os }}-${{ matrix.py-version }}-tf${{ matrix.tf-version }}-wheel
name: ${{ matrix.os }}-${{ matrix.py-version }}-tf${{ matrix.tf-version }}-${{ matrix.cpu }}-wheel
path: ./dist
- run: |
set -e -x
Expand Down

0 comments on commit 2bb46df

Please sign in to comment.