Skip to content

Commit 0fb455c

Browse files
Antoine Prouvostclaude
authored andcommitted
ci: revert BW/DQ test, switch SDE chip -spr -> -tgl
BW/DQ re-enable did not fix the avx512vl hang (confirmed: avx512vl code uses no BW/DQ intrinsics). Isolate the remaining delta vs master, which ran these jobs on sde64 -tgl in ~5min; the branch had switched to -spr. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 024fa8e commit 0fb455c

14 files changed

Lines changed: 12189 additions & 3 deletions

File tree

.claude/settings.local.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"WebSearch",
5+
"WebFetch(domain:en.wikipedia.org)"
6+
]
7+
}
8+
}

.github/workflows/linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ jobs:
115115
if echo '${{ matrix.sys.preset }}' | grep -q 'avx512' ; then
116116
# Running with emulation, must have AVX512, lower tier are checked by implications in tests
117117
export XSIMD_TEST_CPU_ASSUME_AVX512F="1"
118-
./sde-external-9.48.0-2024-11-25-lin/sde64 -spr -- ./_build/test/test_xsimd
118+
./sde-external-9.48.0-2024-11-25-lin/sde64 -tgl -- ./_build/test/test_xsimd
119119
else
120120
export XSIMD_TEST_CPU_ASSUME_SSE4_2=$(grep -q 'sse4_2' /proc/cpuinfo && echo "1" || echo "0")
121121
export XSIMD_TEST_CPU_ASSUME_AVX=$(grep -q 'avx' /proc/cpuinfo && echo "1" || echo "0")

.github/workflows/linux.yml.orig

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
name: Linux x86 build
2+
on: [push, pull_request]
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.job }}-${{ github.ref }}
5+
cancel-in-progress: true
6+
defaults:
7+
run:
8+
shell: bash -l {0}
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
name: '${{ matrix.sys.compiler }} ${{ matrix.sys.version }} - ${{ matrix.sys.preset }} - ${{ matrix.sys.flags }}'
14+
strategy:
15+
matrix:
16+
sys:
17+
- { compiler: 'gcc', version: '12', flags: 'force_no_instr_set', preset: 'native' }
18+
- { compiler: 'gcc', version: '13', flags: 'enable_xtl_complex', preset: 'native' }
19+
- { compiler: 'gcc', version: '14', flags: '', preset: 'avx' }
20+
- { compiler: 'gcc', version: '14', flags: '', preset: 'avx2' }
21+
- { compiler: 'gcc', version: '13', flags: '', preset: 'avx512f' }
22+
- { compiler: 'gcc', version: '10', flags: '', preset: 'avx512f' }
23+
- { compiler: 'gcc', version: '12', flags: 'i386', preset: 'native' }
24+
- { compiler: 'gcc', version: '13', flags: '', preset: 'avx512pf' }
25+
- { compiler: 'gcc', version: '13', flags: '', preset: 'avx512vbmi' }
26+
- { compiler: 'gcc', version: '14', flags: '', preset: 'avx512vbmi2' }
27+
- { compiler: 'gcc', version: '13', flags: '', preset: 'avx512vnni_avx512bw' }
28+
- { compiler: 'clang', version: '16', flags: 'force_no_instr_set', preset: 'native' }
29+
- { compiler: 'clang', version: '16', flags: 'enable_xtl_complex', preset: 'native' }
30+
- { compiler: 'clang', version: '17', flags: '', preset: 'avx' }
31+
- { compiler: 'clang', version: '17', flags: '', preset: 'sse3' }
32+
- { compiler: 'clang', version: '18', flags: '', preset: 'avx512f' }
33+
- { compiler: 'clang', version: '18', flags: '', preset: 'avx_128' }
34+
- { compiler: 'clang', version: '18', flags: '', preset: 'avx2_128' }
35+
- { compiler: 'clang', version: '18', flags: '', preset: 'avx512vl_128' }
36+
- { compiler: 'clang', version: '18', flags: '', preset: 'avx512vl_256' }
37+
steps:
38+
- name: Setup GCC compiler
39+
if: ${{ matrix.sys.compiler == 'gcc' }}
40+
run: |
41+
GCC_VERSION=${{ matrix.sys.version }}
42+
sudo apt-get update
43+
sudo apt-get --no-install-suggests --no-install-recommends install g++-$GCC_VERSION
44+
# Setup i386 as needed
45+
if [[ '${{ matrix.sys.flags }}' == 'i386' ]]; then
46+
sudo dpkg --add-architecture i386
47+
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
48+
sudo apt-get update
49+
sudo apt-get --no-install-suggests --no-install-recommends install \
50+
gcc-$GCC_VERSION-multilib g++-$GCC_VERSION-multilib linux-libc-dev:i386
51+
fi
52+
# Export compiler as environment var
53+
echo "CC=gcc-$GCC_VERSION" >> $GITHUB_ENV
54+
echo "CXX=g++-$GCC_VERSION" >> $GITHUB_ENV
55+
56+
- name: Setup Clang compiler
57+
if: ${{ matrix.sys.compiler == 'clang' }}
58+
run: |
59+
LLVM_VERSION=${{ matrix.sys.version }}
60+
sudo apt-get update || exit 1
61+
sudo apt-get --no-install-suggests --no-install-recommends install clang-$LLVM_VERSION || exit 1
62+
sudo apt-get --no-install-suggests --no-install-recommends install g++ g++-multilib || exit 1
63+
sudo ln -s /usr/include/asm-generic /usr/include/asm
64+
# Export compiler as environment var
65+
echo "CC=clang-$LLVM_VERSION" >> $GITHUB_ENV
66+
echo "CXX=clang++-$LLVM_VERSION" >> $GITHUB_ENV
67+
68+
- name: Checkout xsimd
69+
uses: actions/checkout@v6
70+
71+
- name: Install mamba
72+
uses: mamba-org/setup-micromamba@v3
73+
with:
74+
environment-file: environment.yml
75+
76+
- name: Setup SDE
77+
if: startswith(matrix.sys.preset, 'avx512')
78+
run: sh install_sde.sh
79+
80+
- name: Configure build
81+
run: |
82+
if [[ '${{ matrix.sys.flags }}' == 'enable_xtl_complex' ]]; then
83+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DENABLE_XTL_COMPLEX=ON"
84+
fi
85+
<<<<<<< HEAD
86+
if [[ '${{ matrix.sys.flags }}' == 'avx' ]]; then
87+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=sandybridge"
88+
fi
89+
if [[ '${{ matrix.sys.flags }}' == 'avx_128' ]]; then
90+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=sandybridge"
91+
CXXFLAGS="$CXX_FLAGS -DXSIMD_DEFAULT_ARCH=avx_128"
92+
fi
93+
if [[ '${{ matrix.sys.flags }}' == 'avx2' ]]; then
94+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=haswell"
95+
fi
96+
if [[ '${{ matrix.sys.flags }}' == 'avx2_128' ]]; then
97+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=haswell"
98+
CXXFLAGS="$CXX_FLAGS -DXSIMD_DEFAULT_ARCH=avx2_128"
99+
fi
100+
if [[ '${{ matrix.sys.flags }}' == 'sse3' ]]; then
101+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=nocona"
102+
fi
103+
if [[ '${{ matrix.sys.flags }}' == 'avx512' ]]; then
104+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=skylake-avx512"
105+
fi
106+
if [[ '${{ matrix.sys.flags }}' == 'avx512vl_128' ]]; then
107+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=skylake-avx512"
108+
CXXFLAGS="$CXXFLAGS -DXSIMD_DEFAULT_ARCH=avx512vl_128"
109+
fi
110+
if [[ '${{ matrix.sys.flags }}' == 'avx512vl_256' ]]; then
111+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=skylake-avx512"
112+
CXXFLAGS="$CXX_FLAGS -DXSIMD_DEFAULT_ARCH=avx512vl_256"
113+
fi
114+
if [[ '${{ matrix.sys.flags }}' == 'avx512pf' ]]; then
115+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=knl"
116+
fi
117+
if [[ '${{ matrix.sys.flags }}' == 'avx512vbmi' ]]; then
118+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=cannonlake"
119+
fi
120+
if [[ '${{ matrix.sys.flags }}' == 'avx512vbmi2' ]]; then
121+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=icelake-server"
122+
fi
123+
if [[ '${{ matrix.sys.flags }}' == 'avx512vnni' ]]; then
124+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=knm"
125+
fi
126+
||||||| parent of d4ec80a (Add CMakePresets.txt)
127+
if [[ '${{ matrix.sys.flags }}' == 'avx' ]]; then
128+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=sandybridge"
129+
fi
130+
if [[ '${{ matrix.sys.flags }}' == 'avx_128' ]]; then
131+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=sandybridge"
132+
CXXFLAGS="$CXX_FLAGS -DXSIMD_DEFAULT_ARCH=avx_128"
133+
fi
134+
if [[ '${{ matrix.sys.flags }}' == 'avx2' ]]; then
135+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=haswell"
136+
fi
137+
if [[ '${{ matrix.sys.flags }}' == 'avx2_128' ]]; then
138+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=haswell"
139+
CXXFLAGS="$CXX_FLAGS -DXSIMD_DEFAULT_ARCH=avx2_128"
140+
fi
141+
if [[ '${{ matrix.sys.flags }}' == 'sse3' ]]; then
142+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=nocona"
143+
fi
144+
if [[ '${{ matrix.sys.flags }}' == 'avx512' ]]; then
145+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=skylake-avx512"
146+
fi
147+
if [[ '${{ matrix.sys.flags }}' == 'avx512vl_128' ]]; then
148+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=skylake-avx512"
149+
CXXFLAGS="$CXX_FLAGS -DXSIMD_DEFAULT_ARCH=avx512vl_128"
150+
fi
151+
if [[ '${{ matrix.sys.flags }}' == 'avx512vl_256' ]]; then
152+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=skylake-avx512"
153+
CXXFLAGS="$CXX_FLAGS -DXSIMD_DEFAULT_ARCH=avx512vl_256"
154+
fi
155+
if [[ '${{ matrix.sys.flags }}' == 'avx512pf' ]]; then
156+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=knl"
157+
fi
158+
if [[ '${{ matrix.sys.flags }}' == 'avx512vbmi' ]]; then
159+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=cannonlake"
160+
fi
161+
if [[ '${{ matrix.sys.flags }}' == 'avx512vbmi2' ]]; then
162+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=icelake-server"
163+
fi
164+
if [[ '${{ matrix.sys.flags }}' == 'avx512vnni' ]]; then
165+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DTARGET_ARCH=knm"
166+
fi
167+
=======
168+
>>>>>>> d4ec80a (Add CMakePresets.txt)
169+
if [[ '${{ matrix.sys.flags }}' == 'i386' ]]; then
170+
export CXXFLAGS="$CXXFLAGS -m32"
171+
fi
172+
if [[ '${{ matrix.sys.flags }}' != 'force_no_instr_set' ]]; then
173+
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DXSIMD_ENABLE_WERROR=ON"
174+
fi
175+
176+
cmake -B _build \
177+
--preset ${{ matrix.sys.preset }} \
178+
-D BUILD_TESTS=ON \
179+
-D BUILD_BENCHMARK=ON \
180+
-D BUILD_EXAMPLES=ON \
181+
-D CMAKE_BUILD_TYPE=Release \
182+
-D CMAKE_C_COMPILER="${CC}" \
183+
-D CMAKE_CXX_COMPILER="${CXX}" \
184+
-D TARGET_ARCH="x86-64" \
185+
-D XSIMD_HARDEN_TRIVIAL_AUTO_VAR_INIT=ON \
186+
"${CMAKE_EXTRA_ARGS}" \
187+
-G Ninja
188+
189+
- name: Build
190+
run: cmake --build _build --parallel
191+
- name: Test
192+
run: |
193+
# Set CPU feature test expectations, 0 is explicit absence of the feature
194+
export XSIMD_TEST_CPU_ASSUME_NEON64="0"
195+
export XSIMD_TEST_CPU_ASSUME_RVV="0"
196+
export XSIMD_TEST_CPU_ASSUME_VSX="0"
197+
export XSIMD_TEST_CPU_ASSUME_VXE="0"
198+
199+
if echo '${{ matrix.sys.preset }}' | grep -q 'avx512' ; then
200+
# Running with emulation, must have AVX512, lower tier are checked by implications in tests
201+
export XSIMD_TEST_CPU_ASSUME_AVX512F="1"
202+
./sde-external-9.48.0-2024-11-25-lin/sde64 -spr -- ./_build/test/test_xsimd
203+
else
204+
export XSIMD_TEST_CPU_ASSUME_SSE4_2=$(grep -q 'sse4_2' /proc/cpuinfo && echo "1" || echo "0")
205+
export XSIMD_TEST_CPU_ASSUME_AVX=$(grep -q 'avx' /proc/cpuinfo && echo "1" || echo "0")
206+
export XSIMD_TEST_CPU_ASSUME_AVX512F=$(grep -q 'avx512f' /proc/cpuinfo && echo "1" || echo "0")
207+
export XSIMD_TEST_CPU_ASSUME_MANUFACTURER="intel,amd"
208+
./_build/test/test_xsimd
209+
fi
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"cells": [],
3+
"metadata": {},
4+
"nbformat": 4,
5+
"nbformat_minor": 5
6+
}

0 commit comments

Comments
 (0)