我在新版本的AVX2上使用256个位变量(AVX2类型),我使用英特尔的本质。在此之前,使用64位块来处理数据。因此,采用_mm_crc32_u64函数进行CRC计算。
crc = _mm_crc32_u64(seed,*chunk_64bit);但是现在,为了提高性能,我想分别计算每个256位块(至少128位块)的CRC。一种方法可以是在循环中应用_mm_crc32_u64,每个块都有64位值。但我认为就表现而言,这是没有好处的。
计算超过256位块(或128位)的CRC的最佳方法是哪种方法比_mm_crc32_u64操作更快?
发布于 2017-04-12 23:32:50
您可以交织三个crc32指令以获得更高的性能。有关此操作的代码,请参见this answer。通过在多个处理器上运行该代码并组合结果CRCs,您可以更进一步。
https://stackoverflow.com/questions/43367837
复制相似问题