Skip to content

Commit c573fea

Browse files
committed
github: workflows: Enable ACL caching for aarch64 ci
- Downgrade GCC to v13 on Mac to fix warnings. - Help improve ci throughput significantly.
1 parent ad55afa commit c573fea

File tree

2 files changed

+91
-19
lines changed

2 files changed

+91
-19
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

+75-9
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ on:
2424
pull_request:
2525
types: [opened, synchronize, reopened]
2626

27+
# TODO: Fix job cancellation.
2728
#* Stop stale workflows when pull requests are updated: https://stackoverflow.com/a/70972844
2829
#* Does not apply to the main branch.
29-
concurrency:
30-
group: ${{ github.ref }}
31-
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
30+
# concurrency:
31+
# group: ${{ github.ref }}
32+
# cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
3233

3334
# Declare default permissions as read only.
3435
permissions: read-all
@@ -53,13 +54,46 @@ jobs:
5354
with:
5455
packages: scons
5556

57+
- name: Clone ACL
58+
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
59+
env:
60+
ACL_ACTION: clone
61+
ACL_CONFIG: ${{ matrix.config }}
62+
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
63+
BUILD_TOOLSET: ${{ matrix.toolset }}
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: ${{ steps.get_system_name.outputs.SystemName }}-acl-${{ matrix.toolset }}-${{ matrix.config }}-${{ steps.get_acl_commit_hash.outputs.ACLCommitHash }}
78+
path: ${{ github.workspace }}/ComputeLibrary/build
79+
5680
- name: Build ACL
81+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
5782
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
5883
env:
84+
ACL_ACTION: build
5985
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
6086
BUILD_TOOLSET: ${{ matrix.toolset }}
6187
ACL_CONFIG: ${{ matrix.config }}
62-
GCC_VERSION: 14
88+
GCC_VERSION: 13
89+
90+
- name: Save ACL in cache
91+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
92+
id: cache-acl_build-save
93+
uses: actions/cache/save@v4
94+
with:
95+
key: ${{ steps.cache-acl-restore.outputs.cache-primary-key }}
96+
path: ${{ github.workspace }}/ComputeLibrary/build
6397

6498
- name: Build oneDNN
6599
run: ${{ github.workspace }}/oneDNN/.github/automation/build_aarch64.sh
@@ -68,16 +102,16 @@ jobs:
68102
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
69103
BUILD_TOOLSET: ${{ matrix.toolset }}
70104
CMAKE_BUILD_TYPE: ${{ matrix.config }}
71-
GCC_VERSION: 14
72-
105+
GCC_VERSION: 13
106+
73107
- if: matrix.toolset == 'clang'
74108
name: Run oneDNN smoke tests
75109
run: ${{ github.workspace }}/oneDNN/.github/automation/test_aarch64.sh
76110
working-directory: ${{ github.workspace }}/oneDNN/build
77111
env:
78112
CMAKE_BUILD_TYPE: ${{ matrix.config }}
79113
DYLD_LIBRARY_PATH: ${{ github.workspace }}/ComputeLibrary/build
80-
114+
81115
# We only run the linux aarch64 runners if macos smoke tests pass.
82116
linux:
83117
needs: macos
@@ -122,14 +156,46 @@ jobs:
122156
with:
123157
version: "17"
124158

125-
- name: Build ACL
159+
- name: Clone ACL
126160
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
127161
env:
162+
ACL_ACTION: clone
128163
ACL_CONFIG: ${{ matrix.config }}
129164
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
130165
BUILD_TOOLSET: ${{ matrix.toolset }}
166+
167+
- name: Get ACL commit hash for cache key
168+
id: get_acl_commit_hash
169+
run: (cd ${{ github.workspace }}/ComputeLibrary && echo "ACLCommitHash=$(git rev-parse --short HEAD)") >> $GITHUB_OUTPUT
170+
171+
- name: Get system name
172+
id: get_system_name
173+
run: (echo "SystemName=$(uname)") >> $GITHUB_OUTPUT
174+
175+
- name: Restore cached ACL
176+
id: cache-acl-restore
177+
uses: actions/cache/restore@v4
178+
with:
179+
key: ${{ steps.get_system_name.outputs.SystemName }}-acl-${{ matrix.toolset }}-${{ matrix.config }}-${{ steps.get_acl_commit_hash.outputs.ACLCommitHash }}
180+
path: ${{ github.workspace }}/ComputeLibrary/build
181+
182+
- name: Build ACL
183+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
184+
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
185+
env:
186+
ACL_ACTION: build
187+
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
188+
BUILD_TOOLSET: ${{ matrix.toolset }}
189+
ACL_CONFIG: ${{ matrix.config }}
131190
GCC_VERSION: 13
132-
ACL_THREADING: ${{ matrix.threading }}
191+
192+
- name: Save ACL in cache
193+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
194+
id: cache-acl_build-save
195+
uses: actions/cache/save@v4
196+
with:
197+
key: ${{ steps.cache-acl-restore.outputs.cache-primary-key }}
198+
path: ${{ github.workspace }}/ComputeLibrary/build
133199

134200
- name: Build oneDNN
135201
run: ${{ github.workspace }}/oneDNN/.github/automation/build_aarch64.sh

0 commit comments

Comments
 (0)