makefile (2946B)
1 OUTPUT=./samples 2 CC=gcc 3 OPTIMIZATIONS=-funit-at-a-time -march=native -fno-math-errno -ffast-math -std=gnu99 -fno-unroll-loops -flto 4 5 build: 6 $(CC) -O3 samples.c ./squiggle_c/squiggle.c ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT) 7 8 build-experimental: 9 # https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html 10 rm -f *.gcda 11 $(CC) -Ofast -fprofile-generate $(OPTIMIZATIONS) samples.c ./squiggle_c/squiggle.c ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT) 12 ./$(OUTPUT) 13 $(CC) -Ofast -fprofile-use $(OPTIMIZATIONS) samples.c ./squiggle_c/squiggle.c ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT) 14 rm *.gcda 15 # Using -Ofast increases speed a bit, but I don't trust it. <https://stackoverflow.com/questions/61232427/gcc-differences-between-o3-vs-ofast-optimizations> 16 17 install: 18 rm -r squiggle_c 19 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.c 20 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.h 21 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.c 22 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.h 23 mkdir temp 24 mv squiggle* temp 25 mv temp squiggle_c 26 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/examples/more/12_time_to_botec_parallel/example.c -O samples.c 27 sed -i 's|../../..|squiggle_c|' samples.c 28 29 install-custom: 30 rm -r squiggle_c 31 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.c 32 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.h 33 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.c 34 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.h 35 mkdir temp 36 mv squiggle* temp 37 mv temp squiggle_c 38 wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/examples/more/15_time_to_botec_custom_mixture/example.c -O samples.c 39 sed -i 's|../../..|squiggle_c|' samples.c 40 41 install-git: 42 rm -r squiggle_c 43 git clone https://git.nunosempere.com/personal/squiggle.c 44 mv squiggle.c squiggle_c 45 sudo rm -r squiggle_c/.git 46 cp -r squiggle_c/examples/more/12_time_to_botec_parallel/example.c samples.c 47 sed -i 's|../../..|squiggle_c|' samples.c 48 49 time-linux: 50 @echo "Running 1000x and taking avg time: OMP_NUM_THREADS=16 $(OUTPUT)" 51 @t=$$(/usr/bin/time -f "%e" -p bash -c 'for i in {1..1001}; do OMP_NUM_THREADS=16 $(OUTPUT); done' 2>&1 >/dev/null | grep real | awk '{print $$2}' ); echo "scale=2; 1000 * $$t / 1000" | bc | sed "s|^|Time using 16 threads: |" | sed 's|$$|ms|' && echo 52 53 install-small: 54 rm -r squiggle_c 55 git clone https://git.nunosempere.com/personal/squiggle.c 56 mv squiggle.c squiggle_c 57 sudo rm -r squiggle_c/.git 58 cp -r squiggle_c/examples/core/02_time_to_botec/example.c samples.c 59 sed -i 's|../../..|squiggle_c|' samples.c 60 61 build-small: 62 gcc -O3 samples.c ./squiggle_c/squiggle.c -lm -o $(OUTPUT)