繁体   English   中英

在Intel CPU上选择32至64位固有CRC

[英]Choosing between 32 and 64 bit intrinsic CRC on Intel CPU

为了在INTEL机器上形成哈希函数,我需要计算CRC并提出以下两个固有函数:

  1. _mm_crc32_u32
  2. _mm_crc32_u64

在我的项目中,我正在处理32位变量,而我的困境是在对两个变量进行移位和或运算(从而创建64位变量)之间,然后使用64位CRC或对每个变量运行32位CRC两个32位变量。

我在任何地方都找不到这些功能中的每一个所需要的周期数,并且从英特尔功能规范中尚不清楚哪一个更可取。

同样的难题也适用于CRC函数的16位版本:

_mm_crc32_u16

我尝试通过花CRC前后的时间来检查它。 结果几乎相同。 因此,我需要一种更复杂的计算方法。

不要将CRC用作哈希值。 这不是一回事。 使用murmurhash满足经典的计算机科学哈希需求(即,不是巨大的加密强度哈希)。 这也有不同宽度的实现。

我不明白您的意思:您有两个32位值,想要一个哈希值吗? 根据原因,这可能是明智的,也可能不是。 您能否阐明您要完成的工作?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM