当前位置: 首页 > news >正文

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

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_DATASETfor xx in $aa; 
do echo "gcc -O3:" $xx ; rm -f *.o3gcc $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 -lmtime ./a3.o3echo "clang -O3:" $xx ; rm -f *.o3clang $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 -lmtime ./a3.o3echo "clang -O3 omp 2 threads:" $xx ; rm -f *.o3clang $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 -lmtime ./a3.o3echo "clang -O3 vector:" $xx ; rm -f *.o3clang $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 -lmtime ./a3.o3done

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
 

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

http://www.dtcms.com/a/272299.html

相关文章:

  • php中array($this, ‘loadClass‘)表示啥意思?
  • 阿里云-跨账号同步OSS Bucket
  • 【Note】Linux Kernel 之 内核架构、源码文件、API/ABI 、FHS
  • Linux 内核日志中常见错误
  • idea安装maven 拉取依赖失败的解决办法
  • 网络基本概念
  • Ubuntu22.0.4安装PaddleNLP
  • Android Coil 3 data加载图的Bitmap或ByteArray数据类型,Kotlin
  • Redis BigKey 深度解析:从原理到实战解决方案
  • arm架构,arm内核,处理器之间的关系
  • 【部分省份已考真题】备战2025全国青少年信息素养大赛-算法创意实践挑战赛c++省赛/复赛真题——被污染的药剂
  • 如何发现Redis中的bigkey?
  • Django中序列化与反序列化
  • Python(31)PyPy生成器优化深度解析:JIT加速下的Python性能革命
  • 查看已安装 Django REST Framework (DRF) 版本
  • 【提高篇-基础知识与编程环境:1、Linux系统终端中常用的文件与目录操作命令】
  • 力扣-54.螺旋矩阵
  • QT - 串口QserialPort应用
  • C语言——预处理详解
  • C#中异步任务取消:CancellationToken
  • 【C++详解】STL-list模拟实现(深度剖析list迭代器,类模板未实例化取嵌套类型问题)
  • 【TCP/IP】10. 引导协议与动态主机配置协议
  • prometheus+grafana接入nginx实战
  • 零成本实现商品图换背景
  • 静态路由实验(2)
  • Vue3 深度解析:渲染器与渲染函数的奥秘
  • 【PTA数据结构 | C语言版】链式栈的3个操作
  • linux 4.14 kernel屏蔽arm arch timer的方法
  • 网络编程与自动化
  • 高亚科技签约奕源金属,助力打造高效智能化采购管理体系