Skip to content

Commit 567a495

Browse files
committed
github: workflows: Enable ACL caching for macOS ci
- Upgrade MacOS image to v15.
1 parent 42be8d5 commit 567a495

File tree

2 files changed

+54
-13
lines changed

2 files changed

+54
-13
lines changed

.github/automation/build_acl.sh

+16-10
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,19 @@ fi
6161
echo "Compiler version:"
6262
$CC --version
6363

64-
set -x
65-
git clone --branch $ACL_VERSION --depth 1 $ACL_REPO $ACL_ROOT_DIR
66-
67-
cd $ACL_ROOT_DIR
68-
69-
scons $MP Werror=0 debug=$ACL_DEBUG neon=1 opencl=0 embed_kernels=0 \
70-
os=$ACL_OS arch=$ACL_ARCH build=native multi_isa=$ACL_MULTI_ISA_SUPPORT \
71-
fixed_format_kernels=1 cppthreads=0 openmp=$ACL_OPENMP examples=0 \
72-
validation_tests=0
73-
set +x
64+
if [[ "$ACL_ACTION" == "clone" ]]; then
65+
set -x
66+
git clone --branch $ACL_VERSION --depth 1 $ACL_REPO $ACL_ROOT_DIR
67+
set +x
68+
elif [[ "$ACL_ACTION" == "build" ]]; then
69+
cd $ACL_ROOT_DIR
70+
set -x
71+
scons $MP Werror=0 debug=$ACL_DEBUG neon=1 opencl=0 embed_kernels=0 \
72+
os=$ACL_OS arch=$ACL_ARCH build=native multi_isa=$ACL_MULTI_ISA_SUPPORT \
73+
fixed_format_kernels=1 cppthreads=0 openmp=$ACL_OPENMP examples=0 \
74+
validation_tests=0
75+
set +x
76+
else
77+
echo "Unknown action: $ACL_ACTION"
78+
exit 1
79+
fi

.github/workflows/ci-aarch64.yml

+38-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ permissions: read-all
3636
jobs:
3737
macos:
3838
name: macOS
39-
runs-on: macos-14
39+
runs-on: macos-15
4040
strategy:
4141
matrix:
4242
toolset: [clang, gcc]
@@ -53,14 +53,49 @@ jobs:
5353
with:
5454
packages: scons
5555

56+
- name: Clone ACL
57+
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
58+
env:
59+
ACL_ACTION: clone
60+
ACL_CONFIG: ${{ matrix.config }}
61+
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
62+
BUILD_TOOLSET: ${{ matrix.toolset }}
63+
GCC_VERSION: 14
64+
65+
- name: Get ACL commit hash for cache key
66+
id: get_acl_commit_hash
67+
run: (cd ${{ github.workspace }}/ComputeLibrary && echo "ACLCommitHash=$(git rev-parse --short HEAD)") >> $GITHUB_OUTPUT
68+
69+
- name: Get system name
70+
id: get_system_name
71+
run: (echo "SystemName=$(uname)") >> $GITHUB_OUTPUT
72+
73+
- name: Restore cached ACL
74+
id: cache-acl-restore
75+
uses: actions/cache/restore@v4
76+
with:
77+
# Key must have MacOS version to force rebuild when it is updated.
78+
key: ${{ steps.get_system_name.outputs.SystemName }}-15-acl-${{ matrix.toolset }}-${{ matrix.config }}-${{ steps.get_acl_commit_hash.outputs.ACLCommitHash }}
79+
path: ${{ github.workspace }}/ComputeLibrary/build
80+
5681
- name: Build ACL
82+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
5783
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
5884
env:
85+
ACL_ACTION: build
5986
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
6087
BUILD_TOOLSET: ${{ matrix.toolset }}
6188
ACL_CONFIG: ${{ matrix.config }}
6289
GCC_VERSION: 14
6390

91+
- name: Save ACL in cache
92+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
93+
id: cache-acl_build-save
94+
uses: actions/cache/save@v4
95+
with:
96+
key: ${{ steps.cache-acl-restore.outputs.cache-primary-key }}
97+
path: ${{ github.workspace }}/ComputeLibrary/build
98+
6499
- name: Build oneDNN
65100
run: ${{ github.workspace }}/oneDNN/.github/automation/build_aarch64.sh
66101
working-directory: ${{ github.workspace }}/oneDNN
@@ -69,15 +104,15 @@ jobs:
69104
BUILD_TOOLSET: ${{ matrix.toolset }}
70105
CMAKE_BUILD_TYPE: ${{ matrix.config }}
71106
GCC_VERSION: 14
72-
107+
73108
- if: matrix.toolset == 'clang'
74109
name: Run oneDNN smoke tests
75110
run: ${{ github.workspace }}/oneDNN/.github/automation/test_aarch64.sh
76111
working-directory: ${{ github.workspace }}/oneDNN/build
77112
env:
78113
CMAKE_BUILD_TYPE: ${{ matrix.config }}
79114
DYLD_LIBRARY_PATH: ${{ github.workspace }}/ComputeLibrary/build
80-
115+
81116
# We only run the linux aarch64 runners if macos smoke tests pass.
82117
linux:
83118
needs: macos

0 commit comments

Comments
 (0)