Skip to content

Commit

Permalink
Add zfex benchmark helper tool
Browse files Browse the repository at this point in the history
Addresses (#66)
  • Loading branch information
WojciechMigda committed Aug 23, 2022
1 parent 771c18b commit 9d2f622
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 2 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/tools.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: "Tools | Intel"

on:
push:
branches:
- "main"
pull_request:

jobs:

benchmark-tool-helpers:
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
steps:
- name: "Check out zfex sources"
uses: actions/checkout@v3

- name: "Run legacy_zfec.sh"
run: |
pushd zfex/bench/tools
./legacy_zfec.sh
popd
- name: "Run zfex.sh"
run: |
pushd zfex/bench/tools
./zfex.sh
popd
8 changes: 6 additions & 2 deletions bench/tools/legacy_zfec.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ set -e
### tool with different sets of compiler flags. Then, built executable will be
### run with different arguments to measure legacy algorithm's performance.
###
### Use CC environment variable to set a non-default compiler.
###
################################################################################


# cheat sheet: https://en.wikichip.org/wiki/intel/cpuid
lscpu

git clone --depth 1 https://github.com/tahoe-lafs/zfec
wget https://github.com/tahoe-lafs/zfec/archive/refs/heads/master.zip -O zfec.zip
unzip zfec.zip
mv zfec-master zfec
ln -sf fec.h zfec/zfec/zfex.h && touch zfec/zfec/zfex_macros.h zfec/zfec/zfex_pp.h

wget https://raw.githubusercontent.com/WojciechMigda/zfex/main/bench/bench_zfex.c -O zfec/bench/bench_zfec.c
Expand All @@ -26,7 +30,7 @@ bench_zfec: bench_zfec.c ../zfec/fec.c ../zfec/fec.h
${CC} ${CFLAGS} -fno-strict-aliasing -Wall -Werror -Wshadow -Wdate-time -Wformat -Werror=format-security -std=c99 -DSTRIDE=$(STRIDE) -DZFEX_STRIDE=$(STRIDE) -DZFEX_UNROLL_ADDMUL=$(UNROLL) -DZFEX_UNROLL_ADDMUL_SIMD=1 -o bench_zfec bench_zfec.c ../zfec/fec.c -I../zfec
clean:
rm bench_zfec > /dev/null 2>&1 || true
- rm bench_zfec
EOF


Expand Down
65 changes: 65 additions & 0 deletions bench/tools/zfex.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/bin/bash
set -e

################################################################################
###
### This script will download zfex code and build bench_zfex
### tool with different sets of compiler flags. Then, built executable will be
### run with different arguments to measure algorithm's performance.
###
### Use CC environment variable to set a non-default compiler.
###
################################################################################


# cheat sheet: https://en.wikichip.org/wiki/intel/cpuid
lscpu

wget https://github.com/WojciechMigda/zfex/archive/refs/heads/main.zip -O zfex.zip
unzip zfex.zip
mv zfex-main zfex

build() {

make -C zfex/bench clean

CFLAGS="${EXTRA_CFLAGS} -DZFEX_SIMD_ALIGNMENT=16 -DZFEX_USE_INTEL_SSSE3 -mssse3 -DZFEX_INLINE_ADDMUL -DZFEX_INLINE_ADDMUL_SIMD" \
make -C zfex/bench bench_zfex

}

run() {

zfex/bench/bench_zfex ${ARGS} > /dev/null && zfex/bench/bench_zfex ${ARGS}

}

# Benchmark: -O2 -DZFEX_UNROLL_ADDMUL_SIMD=1
EXTRA_CFLAGS="-O2 -DZFEX_UNROLL_ADDMUL_SIMD=1" build

ARGS="-A -k 7 -m 10 -s 1000000 -i 30" run
ARGS="-A -k 223 -m 255 -s 43488 -i 30" run

# Benchmark: -O3 -DZFEX_UNROLL_ADDMUL_SIMD=1
EXTRA_CFLAGS="-O3 -DZFEX_UNROLL_ADDMUL_SIMD=1" build

ARGS="-A -k 7 -m 10 -s 1000000 -i 30" run
ARGS="-A -k 223 -m 255 -s 43488 -i 30" run

# Benchmark: -O3 -DZFEX_UNROLL_ADDMUL_SIMD=2
EXTRA_CFLAGS="-O3 -DZFEX_UNROLL_ADDMUL_SIMD=2" build

ARGS="-A -k 7 -m 10 -s 1000000 -i 30" run
ARGS="-A -k 223 -m 255 -s 43488 -i 30" run

# Benchmark: -O3 -DZFEX_UNROLL_ADDMUL_SIMD=4
EXTRA_CFLAGS="-O3 -DZFEX_UNROLL_ADDMUL_SIMD=4" build

ARGS="-A -k 7 -m 10 -s 1000000 -i 30" run
ARGS="-A -k 223 -m 255 -s 43488 -i 30" run

# Benchmark: -O3 -DZFEX_UNROLL_ADDMUL_SIMD=8
EXTRA_CFLAGS="-O3 -DZFEX_UNROLL_ADDMUL_SIMD=8" build

ARGS="-A -k 7 -m 10 -s 1000000 -i 30" run
ARGS="-A -k 223 -m 255 -s 43488 -i 30" run

0 comments on commit 9d2f622

Please sign in to comment.