Skip to content

Commit 95dcede

Browse files
committed
[CI] Bench EMR runner
Moves CPU benchmark runner to emerald rapids. Limits execution to a single core for now.
1 parent b0fdd04 commit 95dcede

File tree

2 files changed

+77
-10
lines changed

2 files changed

+77
-10
lines changed

.github/workflows/kernel_bench.yml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,9 @@ jobs:
3737
steps:
3838
- uses: actions/checkout@v5
3939

40-
- name: Install uv
41-
uses: astral-sh/setup-uv@v6
42-
43-
- name: Setup project
44-
run: |
45-
git submodule update --init
46-
uv sync --extra cpu
47-
48-
- name: Run KernelBench (PyTorch)
49-
run: uv run ai-bench --bench --gflops
40+
- name: Intel Emerald Rapids
41+
run: "${{ env.SRUN }} --partition=emr --time=0:15:00 --constraint=\"notrb\" -- \
42+
'${{ github.workspace }}/infra/scripts/ci-cpu-run-kernel-bench.sh -b torch'"
5043

5144
XPU-PyTorch:
5245
runs-on: pcl-tiergarten
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Script for CI - CPU job.
4+
#
5+
# Run KernelBench on Intel CPU.
6+
7+
SCRIPTS_DIR=$(realpath $(dirname $0))
8+
9+
# Backends
10+
BENCH_BACKEND_TORCH="torch"
11+
BENCH_BACKEND_TORCH_COMPILE="torch-compile"
12+
13+
die_syntax() {
14+
echo "Syntax: $0 [-b (${BENCH_BACKEND_TORCH}|${BENCH_BACKEND_TORCH_COMPILE})]"
15+
echo ""
16+
echo " -b: Optional, backend to use (default: torch)"
17+
exit 1
18+
}
19+
20+
# Options
21+
BENCH_BACKEND=${BENCH_BACKEND_TORCH}
22+
while getopts "b:" arg; do
23+
case ${arg} in
24+
b)
25+
if [ "${OPTARG}" == "${BENCH_BACKEND_TORCH}" ] || \
26+
[ "${OPTARG}" == "${BENCH_BACKEND_TORCH_COMPILE}" ]; then
27+
BENCH_BACKEND="${OPTARG}"
28+
else
29+
echo "Invalid backend: ${OPTARG}"
30+
die_syntax
31+
fi
32+
;;
33+
?)
34+
echo "Invalid option: ${OPTARG}"
35+
die_syntax
36+
;;
37+
esac
38+
done
39+
40+
# Setup
41+
echo "--- Setup environment"
42+
export OMP_NUM_THREADS=1
43+
echo "OMP_NUM_THREADS=${OMP_NUM_THREADS}"
44+
45+
THREADS_PER_CORE=$(lscpu | grep --color=never "Thread.*core" | tee - | grep -o "[0-9]\+")
46+
SKIP=$((THREADS_PER_CORE-1)) # 0 for no HT, 1 for 2, 3 for 4, etc.
47+
export KMP_AFFINITY=granularity=fine,compact,$SKIP,0
48+
echo "KMP_AFFINITY=${KMP_AFFINITY}"
49+
echo ""
50+
51+
echo "--- Setup project"
52+
git submodule update --init
53+
54+
pip install --upgrade --user uv
55+
AI_BENCH_UV=${HOME}/.local/bin/uv
56+
57+
${AI_BENCH_UV} sync --extra cpu --link-mode copy
58+
echo ""
59+
60+
# Run benchmark
61+
echo "--- Run KernelBench (${BENCH_BACKEND})"
62+
63+
BENCH_FLAGS="--bench --gflops"
64+
65+
if [[ "${BENCH_BACKEND}" == "${BENCH_BACKEND_TORCH_COMPILE}" ]]; then
66+
BENCH_FLAGS="${BENCH_FLAGS} --torch-compile"
67+
fi
68+
69+
${AI_BENCH_UV} run ai-bench ${BENCH_FLAGS}
70+
EXIT_CODE=$?
71+
72+
echo ""
73+
74+
exit ${EXIT_CODE}

0 commit comments

Comments
 (0)