原创:多面体编译,polybench-c-4.2批量测试脚本

发布于:2025-07-11 ⋅ 阅读:(21) ⋅ 点赞:(0)

1)因为polybench-c-4.2结构比较简单,可以容易实现批量测试脚本

a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ which clang
/home/a/src/llvm-project/build/bin/clang
 

llvm是我自己用源码安装的:

世界最新:ubuntu上cmake, Ninja源码编译llvm-CSDN博客

2)

a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ pwd
/home/a/src/a3.llvm.polly/a1.polybench-c-4.2
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ find ./ -name *.c
./medley/floyd-warshall/floyd-warshall.c
./medley/nussinov/nussinov.c
./medley/nussinov/Nussinov.orig.c
./medley/deriche/deriche.c
./stencils/adi/adi.c
./stencils/seidel-2d/seidel-2d.c
./stencils/fdtd-2d/fdtd-2d.c
./stencils/heat-3d/heat-3d.c
./stencils/jacobi-2d/jacobi-2d.c
./stencils/jacobi-1d/jacobi-1d.c
./datamining/covariance/covariance.c
./datamining/correlation/correlation.c
./utilities/polybench.c
./utilities/template-for-new-benchmark.c
./linear-algebra/blas/symm/symm.c
./linear-algebra/blas/gemver/gemver.c
./linear-algebra/blas/syrk/syrk.c
./linear-algebra/blas/gemm/gemm.c
./linear-algebra/blas/trmm/trmm.c
./linear-algebra/blas/gesummv/gesummv.c
./linear-algebra/blas/syr2k/syr2k.c
./linear-algebra/kernels/3mm/3mm.c
./linear-algebra/kernels/atax/atax.c
./linear-algebra/kernels/doitgen/doitgen.c
./linear-algebra/kernels/mvt/mvt.c
./linear-algebra/kernels/2mm/2mm.c
./linear-algebra/kernels/bicg/bicg.c
./linear-algebra/solvers/trisolv/trisolv.c
./linear-algebra/solvers/lu/lu.c
./linear-algebra/solvers/gramschmidt/gramschmidt.c
./linear-algebra/solvers/ludcmp/ludcmp.c
./linear-algebra/solvers/cholesky/cholesky.c
./linear-algebra/solvers/durbin/durbin.c
 

可见大部分都在,删掉一些就行

2)




aa="./medley/floyd-warshall/floyd-warshall.c
./medley/nussinov/nussinov.c
./medley/nussinov/Nussinov.orig.c
./medley/deriche/deriche.c
./stencils/adi/adi.c
./stencils/seidel-2d/seidel-2d.c
./stencils/fdtd-2d/fdtd-2d.c
./stencils/heat-3d/heat-3d.c
./stencils/jacobi-2d/jacobi-2d.c
./stencils/jacobi-1d/jacobi-1d.c
./datamining/covariance/covariance.c
./datamining/correlation/correlation.c
./linear-algebra/blas/symm/symm.c
./linear-algebra/blas/gemver/gemver.c
./linear-algebra/blas/syrk/syrk.c
./linear-algebra/blas/gemm/gemm.c
./linear-algebra/blas/trmm/trmm.c
./linear-algebra/blas/gesummv/gesummv.c
./linear-algebra/blas/syr2k/syr2k.c
./linear-algebra/kernels/3mm/3mm.c
./linear-algebra/kernels/atax/atax.c
./linear-algebra/kernels/doitgen/doitgen.c
./linear-algebra/kernels/mvt/mvt.c
./linear-algebra/kernels/2mm/2mm.c
./linear-algebra/kernels/bicg/bicg.c
./linear-algebra/solvers/trisolv/trisolv.c
./linear-algebra/solvers/lu/lu.c
./linear-algebra/solvers/gramschmidt/gramschmidt.c
./linear-algebra/solvers/ludcmp/ludcmp.c
./linear-algebra/solvers/cholesky/cholesky.c
./linear-algebra/solvers/durbin/durbin.c"

MYSIZE=-DLARGE_DATASET

for xx in $aa; 
do 
	echo "gcc -O3:" $xx ; 
	rm -f *.o3
	gcc $MYSIZE -O3 -I/home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities    /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities/polybench.c  /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/$xx  -o a3.o3 -lm
	time ./a3.o3
	
	
	echo "clang -O3:" $xx ; 
	rm -f *.o3
	clang $MYSIZE -O3 -I/home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities    /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities/polybench.c  /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/$xx   -o a3.o3 -lm
	time ./a3.o3
	
	
	echo "clang -O3 omp 2 threads:" $xx ; 
	rm -f *.o3
	clang $MYSIZE -O3 -mllvm -polly-omp-backend=LLVM -mllvm -polly-num-threads=2 -I/home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities    /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities/polybench.c  /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/$xx   -o a3.o3 -lm
	time ./a3.o3


	echo "clang -O3 vector:" $xx ; 
	rm -f *.o3
	clang $MYSIZE -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine -I/home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities    /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/utilities/polybench.c  /home/a/src/a3.llvm.polly/a1.polybench-c-4.2/$xx   -o a3.o3 -lm
	time ./a3.o3

done












4)floyd-warshall/floyd-warshall.c的Polly运行时间太久,

./r3.runall.rh | tee g.txt
gcc -O3: ./medley/floyd-warshall/floyd-warshall.c

real    0m42.879s
user    0m42.764s
sys    0m0.058s
clang -O3: ./medley/floyd-warshall/floyd-warshall.c

real    0m33.317s
user    0m33.239s
sys    0m0.041s
clang -O3 omp 2 threads: ./medley/floyd-warshall/floyd-warshall.c

real    0m33.393s
user    0m33.308s
sys    0m0.044s
clang -O3 vector: ./medley/floyd-warshall/floyd-warshall.c
^C
real    4m56.889s
user    4m56.413s
sys    0m0.098s
 

其他目前看起来是可以的。


网站公告

今日签到

点亮在社区的每一天
去签到