簡體   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