64位CRC功能存在于Intel SSE4.2内部。
unsigned __int64 _mm_crc32_u64 (unsigned __int64 crc, unsigned __int64 v)但是,我无法在AVX2内部找到256位版本的CRC计算。我在我的程序中使用了256位变量(__m256i),所以我想计算256位以上的crc (或散列)。如何使用英特尔AVX2进行此操作?
发布于 2017-04-11 09:25:54
_mm_crc32_u64不是SIMD固有的,尽管它名义上是SSE4.2的一部分--它只是一个在64位值上操作的普通标量指令。因此,谈论128位或256位SIMD版本是没有意义的--您只需在一个循环中将其应用于一个无符号64位值数组。
请参阅this answer,以获得对各种x86 CRC32指令和本质的更全面解释。
https://stackoverflow.com/questions/43341049
复制相似问题