LLVM,polly,最新测试
1)gemm 测试
GCC编译:
gcc -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/linear-algebra/blas/gemm/gemm.c -o a1.gemm.gcc.o3
clang编译:
clang -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/linear-algebra/blas/gemm/gemm.c -o a2.gemm.clang.o3
clang+polly编译:
clang -O3 -mllvm -polly -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/linear-algebra/blas/gemm/gemm.c -o a3.gemm.polly.o3
运行时间
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2/linear-algebra/blas/gemm$ time ./a1.gemm.gcc.o3
real 0m10.964s
user 0m10.895s
sys 0m0.043s
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2/linear-algebra/blas/gemm$ time ./a2.gemm.clang.o3
real 0m1.060s
user 0m0.983s
sys 0m0.070s
@a:~/src/a3.llvm.polly/a1.polybench-c-4.2/linear-algebra/blas/gemm$ time ./a3.gemm.polly.o3
real 0m0.775s
user 0m0.684s
sys 0m0.089s
2)
gcc -DLARGE_DATASET -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/linear-algebra/blas/gemm/gemm.c -o a1.gemm.gcc.o3
clang -DLARGE_DATASET -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/linear-algebra/blas/gemm/gemm.c -o a2.gemm.clang.o3
clang -DLARGE_DATASET -O3 -mllvm -polly -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/linear-algebra/blas/gemm/gemm.c -o a3.gemm.polly.o3
time ./a1.gemm.gcc.o3
time ./a2.gemm.clang.o3
time ./a3.gemm.polly.o3
real 0m1.181s
user 0m1.104s
sys 0m0.065s
real 0m1.305s
user 0m1.261s
sys 0m0.040s
real 0m0.775s
user 0m0.635s
sys 0m0.140s
这个结果就有点正确 了
3)
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2/linear-algebra/blas/gemm$
gcc -DEXTRALARGE_DATASET -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/linear-algebra/blas/gemm/gemm.c -o a1.gemm.gcc.o3
clang -DEXTRALARGE_DATASET -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/linear-algebra/blas/gemm/gemm.c -o a2.gemm.clang.o3
clang -DEXTRALARGE_DATASET -O3 -mllvm -polly -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/linear-algebra/blas/gemm/gemm.c -o a3.gemm.polly.o3
time ./a1.gemm.gcc.o3
time ./a2.gemm.clang.o3
time ./a3.gemm.polly.o3
real 0m14.763s
user 0m14.061s
sys 0m0.680s
real 0m12.724s
user 0m12.534s
sys 0m0.175s
real 0m5.839s
user 0m5.677s
sys 0m0.153s
polly的效果非常好了。
4)
对于symm,clang和polly的效果都不好。
gcc -DLARGE_DATASET -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/linear-algebra/blas/symm/symm.c -o a1.gcc.o3
clang -DLARGE_DATASET -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/linear-algebra/blas/symm/symm.c -o a2.clang.o3
clang -DLARGE_DATASET -O3 -mllvm -polly -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/linear-algebra/blas/symm/symm.c -o a3.polly.o3
time ./a1.gcc.o3
time ./a2.clang.o3
time ./a3.polly.o3
real 0m5.529s
user 0m5.467s
sys 0m0.040s
real 0m6.629s
user 0m6.551s
sys 0m0.050s
real 0m6.223s
user 0m6.171s
sys 0m0.040s
5)
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ ./run.sh -DEXTRALARGE_DATASET linear-algebra/blas/gemver/gemver.c
real 0m0.793s
user 0m0.462s
sys 0m0.330s
real 0m0.666s
user 0m0.521s
sys 0m0.141s
real 0m0.315s
user 0m0.148s
sys 0m0.166s
gemver效果很好
6)
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ ./run.sh -DEXTRALARGE_DATASET linear-algebra/blas/gesummv/gesummv.c
real 0m0.465s
user 0m0.133s
sys 0m0.330s
real 0m0.295s
user 0m0.131s
sys 0m0.163s
real 0m0.277s
user 0m0.128s
sys 0m0.149s
7)syr2k效果也不行
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ ./r2.2p.sh -DLARGE_DATASET linear-algebra/blas/syr2k/syr2k.c
real 0m23.820s
user 0m23.369s
sys 0m0.346s
real 0m24.247s
user 0m24.160s
sys 0m0.063s
real 0m25.786s
user 0m25.684s
sys 0m0.063s
8)syrk这个也不行
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ ./r2.2p.sh -DLARGE_DATASET linear-algebra/blas/syrk/syrk.c
real 0m1.881s
user 0m1.831s
sys 0m0.046s
real 0m1.833s
user 0m1.792s
sys 0m0.037s
real 0m1.858s
user 0m1.809s
sys 0m0.045s
9)trmm效果很好
a@a:~/src/a3.llvm.polly/a1.polybench-c-4.2$ ./r2.2p.sh -DLARGE_DATASET linear-algebra/blas/trmm/trmm.c
real 0m7.962s
user 0m7.877s
sys 0m0.074s
real 0m8.054s
user 0m7.928s
sys 0m0.099s
real 0m3.783s
user 0m3.749s
sys 0m0.029s