0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

四个不同的系统上进行LLVM/Clang 6.0 和 5.0 的编译器Benchmark测试

Linux爱好者 来源:未知 作者:李倩 2018-03-29 15:25 次阅读

LLVM/Clang 6.0 和 5.0 的编译器 Benchmark 测试这次会在四个不同的系统上进行,包括了 Intel/AMD Linux 平台,其中 Intel 和 AMD 各占两个。

四个系统都运行了Ubuntu Linux x86_64,Intel 和 AMD 平台分别的配置如下:Intel Core i7 8700K (Coffeelake)、dual Xeon Gold 6138 (Skylake X)、Ryzen 7 1700 (Znver1) 以及 AMD EPYC 7601 (Znver1)。

除了默认的 C++14/GNU++14,Clang 6.0 还正式完成了 AMD Zen "znver1" 的程序调度模型,而英特尔方面也对多代 CPU 进行了调度程序的改进。

参与测试的LLVM 5.0.1 和 LLVM 6.0.0 稳定版都是来自apt.llvm.org。测试期间,每个系统都将其 CFLAGS/CXXFLAGS 设置为 "-O3 -march=native"。这次编译器 Benchmark 测试使用了开源的 PhoronixBenchmark 测试套件。

接下来,我们看看测试结果如何:

从 PolyBench-C Benchmark 测试可以看到,Clang 6.0 在 AMD Zen 系统似乎有明显的回落,而在英特尔平台上,性能没有太大的变动。

在大多数 benchmark 测试中,Clang 6.0 的表现与 Clang 5.0.1 相比几乎没有什么变化,这里也省略了许多结果。

使用 Clang 6.0 时,BLAKE2 似乎对英特尔 Skylake/Coffeelake 的设置稍有改进,而对于 Znver1 处理器则保持不变。

在一些测试中,我们发现 Core i7 8700K Coffeelake 系统在全新的 Clang 编译器更新中拥有更好的性能。

在 SciMark2 的 FFT 测试中,i7-8700K 明显是最大的赢家。

在其他的子测试中,i7-8700K的运行时间更短。在某些情况下,AMD 方面也有一些小幅度的改进。

TSCP chess benchmark 测试显示,i7-8700K 的速度稍慢,而其他系统则略有改善。

我们发现,强大的 EPYC 和 Xeon 系统在使用 Clang 6.0 时确实有更快的 John The Ripper 性能。

除了 dual Xeon Gold 外,其他系统的 AVX-heavy Himeno 压力求解器的性能都得到了改善。

但随着 LLVM 和 Clang 增加更多的优化和功能,在这项测试中,6.0 版本的编译时间显然比在 5.0 版本下显着减慢。

C-Ray 多线程射线追踪器(ray-tracer) z在 LLVM 6.0 上也变慢。

不过在其他一些测试中,Core i7 8700K 再次显示出 LLVM Clang 6.0 的一些小的性能改进。

可以看到,在使用 Linux x86_64 的流行英特尔和 AMD 平台上,LLVM Clang 5.0 和 6.0 之间的性能只发生了微小的变化。不过随着 LLVM/Clang 在过去的几年里已经成熟了许多,而且现在几乎与 GCC 在很多工作负载上并驾齐驱。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    60

    文章

    9413

    浏览量

    168785
  • 编译器
    +关注

    关注

    1

    文章

    1576

    浏览量

    48606

原文标题:LLVM/Clang 6.0 和 5.0 的编译器 Benchmark 测试对比

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LLVM编译器编译过程

    LLVM 编译器 原理解析, 插件编写
    发表于 04-28 08:15

    ARM Cortex-M编译内核的原理及其应用资料推荐

    文件的形式存在;链接就是一“打包”的过程,它将所有的目标文件以及系统组件组合成一可执行文件。抛开嵌入式而言,C语言的编译器有很多种,不同的平台下有不同的
    发表于 05-07 16:48

    使用PuTTY和Clang在Windows on Arm上本地编译

    Linux 的 Windows 子系统 (WSL2) 执行了大部分过程。然而,我后来意识到这是为 WoA 编译的一种复杂方式,并且在 WoA 上进行本机编译是一条更容易的途径。原作者
    发表于 09-16 15:05

    LLVM clang 公开 -std=c++23

    合入 LLVM 17 仓库的代码对 Clang 编译器使用 -std=c++23 代替了 -std=c++2b。 随着 ISO C++ 委员会投票决定 C++23 标准已达到其技术完整状态
    发表于 05-27 11:29

    如何在ARM上使用Clang for Windows进行编译

    本指南介绍了LLVM12和相关Clang版本中的功能,这些功能有助于开发人员用于基于Arm的设备。特别是,本指南探讨了如何使用本机工具链进行编译适用于Windows on Arm(Wo
    发表于 08-08 06:56

    ARM编译器ARM C和C++库和浮点支持用户指南

    本文介绍了对Arm®编译器6各种功能的支持级别。 ArmCompiler6基于ClangLLVM技术构建。因此,它具有比文档中描述的一组产品功能更多的功能。以下定义阐明了对这些功能的支持和保证级别。 Arm欢迎有关使用Arm
    发表于 08-10 06:39

    Arm编译器嵌入式6.19版迁移与兼容性指南

    它描述了对用于Embedded 6的各种ARM®编译器功能的支持级别。 嵌入式6的ARM编译器是基于ClangLLVM技术构建的。 因此,它具有比文档中描述的产品功能集更多的功能。
    发表于 08-11 07:41

    适用于嵌入式FuSa的Arm编译器Arm C和C++库及浮点支持用户指南

    它描述了针对嵌入式FUSA 6功能的各种ARM®编译器的支持级别。 嵌入式FUSA 6的ARM编译器是基于ClangLLVM技术构建的。 因此,它具有比文档中描述的产品功能集更多的功
    发表于 08-18 07:38

    用于嵌入式ARM C和C++库和浮点支持的ARM编译器用户指南

    它描述了对用于Embedded 6的各种ARM®编译器功能的支持级别。 嵌入式6的ARM编译器是基于ClangLLVM技术构建的。 因此,它具有比文档中描述的产品功能集更多的功能。
    发表于 08-25 06:33

    在Swift中使用LLVM四个要点

    本文主要内容是演示如何在Swift中使用LLVM,其包含了如下四个要点: 获取最新版本的LLVM使用CMake和llvm-config编译
    发表于 10-13 16:55 0次下载
    在Swift中使用<b class='flag-5'>LLVM</b>的<b class='flag-5'>四个</b>要点

    主流的C语言编译器详细介绍

    对于当前主流桌面操作系统而言,可使用Visual C++、GCC以及LLVM Clang这三大编译器。其中,Visual C++(简称MSVC)只能用于Windows操作
    发表于 09-05 17:27 2次下载
    主流的C语言<b class='flag-5'>编译器</b>详细介绍

    主流C语言编译器的详细资料介绍

    对于当前主流桌面操作系统而言,可使用Visual C++、GCC以及LLVM Clang这三大编译器。其中,Visual C++(简称 MSVC)只能用于Windows操作
    发表于 05-22 18:00 1次下载
    主流C语言<b class='flag-5'>编译器</b>的详细资料介绍

    微软与LLVM、Rust达成合作,将CFG支持添加到编译器

    微软方面宣布,该公司已与 LLVM 和 Rust 开发团队达成合作,将对 Windows Control Flow Guard(CFG)平台安全功能的支持添加到了 Clang 和 Rustc 编译器中。此前,CFG 仅适用于使用
    的头像 发表于 08-20 11:44 2712次阅读

    什么是LLVMLLVM的优势和特点有哪些?

    LLVM是一个开源的编译器基础设施项目,它以"Low-Level Virtual Machine"的缩写命名,尽管名称中包含了"虚拟机"一词,但LLVM不仅仅是一个虚拟机,而是一个综合的编译器
    的头像 发表于 06-11 15:54 6104次阅读

    ADuCM355硬件参考手册——Keli编译

    在 Arm Compiler 5 和 Arm Compiler for Embedded(以前称为 Arm Compiler 6)之间,底层技术发生了重大变化,从专有编译器 armcc 转变为基于开源 LLVM/Clang
    的头像 发表于 01-12 09:35 714次阅读
    ADuCM355硬件参考手册——Keli<b class='flag-5'>编译</b>版