【问题标题】:Why is MD5 much faster on Intel x86 than PowerPC?为什么 MD5 在 Intel x86 上比 PowerPC 快得多?
【发布时间】:2013-10-29 18:55:18
【问题描述】:

我正在查看英特尔 x86 和 PowerPC(特别是 IBM POWER7)上的 MD5(将其用于备份,我知道这是一种有点过时的加密方法)的性能,并且看起来 Power 大约需要执行时间是 x86 的两倍。

不同之处在于有一个为 x86 生成的程序集版本,其性能可能已经调好,我正在尝试查看是否有类似的方法来提高 Power 的性能,但我不确定从哪里开始寻找并想知道是否有人会有想法。

只是一些背景信息,我传入的文件很大(~2G),我根本没有努力并行化它,都是顺序的。

另外,当我尝试不同的(例如 SHA1,或其他来自 sha 家族的)时,性能非常接近..所以想知道 MD5 是否有什么特别之处

【问题讨论】:

  • 什么是“IBM Power Machine”?你指的是Power PC?你有考虑时钟速度等因素吗?
  • 很难比较架构,除非您对所有架构都进行了优化。即使在一个架构内,性能也会有很大差异。较旧的 CPU 相比,较新的 CPU 通常可以在单个时钟周期内完成更多工作。例如,如果您的 IO 可以跟上,现代 Intel CPU 应该在 4 秒内使用单核对您的 2GB 文件进行哈希处理。
  • 是的,它是一台 powerPC,我相信是 power7
  • 你确定性能不受I/O限制吗?您到底在测量什么 - 文件散列时间或内存块散列时间?后者可能完全不同(即便如此,请注意分页的可能性)。
  • “优化汇编语言中的子例程”适用于 x86,但许多概念是可移植的slideshare.net/edersonsd/optimizing-assembly 对于使用不同编译器的不同部分,您可能也有更好的起点结果。

标签: assembly x86 md5 cpu-architecture powerpc


【解决方案1】:

我不具体了解POWER7,但是好像很多POWER微架构都有minimum 2 cycle latency on many instructions

MD5 性能是latency bound problem,这意味着具有高延迟指令的 CPU 会受到影响。具有 2 个周期延迟的 CPU 应该大致处于 1 个周期延迟 CPU 的一半时钟速率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 2014-04-08
    • 2013-03-08
    • 2020-11-11
    • 2014-04-21
    • 2015-02-09
    • 1970-01-01
    相关资源
    最近更新 更多