当前位置: 首页 > 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.lryc.cn/news/582319.html

相关文章:

  • ServerAgent资源监控和nmon监控
  • 【Linux操作系统】简学深悟启示录:Linux基本指令
  • 串行接口:CAN总线
  • 2025年全国青少年信息素养大赛图形化(Scratch)编程小学低年级组初赛样题答案+解析
  • 华为OD机试 2025B卷 - 最长的指定瑕疵度的元音子串 (C++PythonJAVAJSC语言)
  • 互补功率放大器Multisim电路仿真——硬件工程师笔记
  • web渗透之指纹识别1
  • 施密特触发器Multisim电路仿真——硬件工程师笔记
  • 2048-控制台版本
  • 设计模式文章
  • 汽车信息安全 -- SHE密钥更新小细节
  • vscode配置gitlab仓库详细步骤
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二课——RGB转YCbCr的FPGA硬件编程详解
  • Rust单例模式:OnceLock的使用指南
  • Rust 内存结构:深入解析
  • iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
  • 期待在 VR 森林体验模拟中实现与森林的 “虚拟复现”​
  • 企业物资集采平台解决方案之:AI+物联网,智能预测需求,让企业库存“零呆滞”的科技实践
  • OSPFv3基础
  • 基于 STM32+FPGA 的快速傅里叶频域图像在 TFT 中显示的设计与实现(项目资料)(ID:8)
  • 关于 c、c#、c++ 三者区别
  • vue时间轴,antd时间轴,带卡片时间轴
  • 全球 AI HR 浪潮下的中国实践:从效率革命到战略重构
  • Android kotlin中 Channel 和 Flow 的区别和选择
  • 【Qt】QSignalMapper
  • 谢飞机的Java高级开发面试:从Spring Boot到分布式架构的蜕变之旅
  • 【音视频】HLS简介与服务器搭建
  • 常用的webpack配置
  • 应用俄文OCR技术,为跨语言交流与数字化管理提供更强大的支持
  • 解数独(C++版本)