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

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
 

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

相关文章:

  • 【郑大二年级信安小学期】Day6:CTF密码学杂项工具包
  • Multi-Agent 多智能体架构解析--DeerFlow
  • 【DPDK应用篇】事件驱动架构:eventdev异步处理模型的设计与实现
  • 大数据Spark(六十二):Spark基于Yarn提交任务流程
  • C++内存泄漏排查
  • 施密特触发器Multisim电路仿真——硬件工程师笔记
  • 暑假读书笔记第三天
  • Linux信号处理全解析
  • Qt中的QProcess类
  • 【学习笔记】大数定理,频率与概率,均值与期望的区别
  • MySQL数据表设计 系统的营销功能 优惠券、客户使用优惠券的设计
  • 2025Q2大模型更新汇总(大语言模型篇)
  • Web后端开发-分层解耦
  • 【Java面试】如何保证接口的幂等性?
  • Day06_刷题niuke20250707
  • pythone相关内容一
  • Spring 如何干预 Bean 的生命周期?
  • 洛谷 P5788 【模板】单调栈
  • 龙旗科技社招校招入职测评25年北森笔试测评题库答题攻略
  • 人工智能-基础篇-22-什么是智能体Agent?(具备主动执行和调优的人工智能产物)
  • elementUI vue2 前端表格table数据导出(二)
  • 超光谱相机的原理和应用场景
  • Java后端技术博客汇总文档
  • C语言——编译与链接
  • Dash 代码API文档管理工具 Mac电脑
  • JVM基础01(从入门到八股-黑马篇)
  • 力扣网编程274题:H指数之普通解法(中等)
  • ExcelJS 完全指南:专业级Excel导出解决方案
  • Web前端——css样式(盒子模型)
  • R语言爬虫实战:如何爬取分页链接并批量保存