Skip to content

Changes quicksort and quickselect to use template based sorting networks #120

Changes quicksort and quickselect to use template based sorting networks

Changes quicksort and quickselect to use template based sorting networks #120

Workflow file for this run

name: Tests and benchmarks
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
BasicBuildAndTest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt update
sudo apt -y install g++-12 g++-10 libgtest-dev meson curl git cmake
- name: Install google benchmarks
run: |
git clone https://github.com/google/benchmark.git
cd benchmark
cmake -E make_directory "build"
cmake -E chdir "build" cmake -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DBENCHMARK_ENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ../
sudo cmake --build "build" --config Release --target install
- name: Install Intel SDE
run: |
curl -o /tmp/sde.tar.xz https://downloadmirror.intel.com/732268/sde-external-9.7.0-2022-05-09-lin.tar.xz
mkdir /tmp/sde && tar -xvf /tmp/sde.tar.xz -C /tmp/sde/
sudo mv /tmp/sde/* /opt/sde && sudo ln -s /opt/sde/sde64 /usr/bin/sde
- name: Build with gcc-10
env:
CXX: g++-10
run: |
make clean
meson setup --warnlevel 0 --buildtype plain builddir
cd builddir
ninja
- name: Run test suite on SKX
run: sde -skx -- ./builddir/testexe
- name: Build with gcc-12
env:
CXX: g++-12
run: |
make clean
meson setup --warnlevel 0 --buildtype plain builddir
cd builddir
ninja
- name: Run test suite on SPR
run: sde -spr -- ./builddir/testexe
compare-benchmarks-with-main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
path: x86-simd-sort
- name: Specify branch name
working-directory: ${{ github.workspace }}/x86-simd-sort
run: git switch -c pr-branch
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install dependencies
run: |
sudo apt update
sudo apt -y install g++-12 libgtest-dev meson curl git cmake
- name: Install google benchmarks
run: |
git clone https://github.com/google/benchmark.git
cd benchmark
pip3 install -r tools/requirements.txt
cmake -E make_directory "build"
cmake -E chdir "build" cmake -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DBENCHMARK_ENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ../
sudo cmake --build "build" --config Release --target install
- name: Run bench-compare
working-directory: ${{ github.workspace }}/x86-simd-sort
env:
CXX: g++-12
GBENCH: ${{ github.workspace }}/benchmark
run: bash -x scripts/branch-compare.sh avx