0
私はAVX2の新しいプログラムで256ビットの変数(__m256iタイプ)を使用していますが、インテルの組み込み関数を使用しています。以前は、64ビットのチャンクがデータの処理に使用されていました。したがって、_mm_crc32_u64関数がCRC計算に使用されます。256ビットチャンクのCRC計算
crc = _mm_crc32_u64(seed,*chunk_64bit);
しかし、今、私は別々に各256ビットの塊(少なくとも128ビットの塊)のためのCRCを計算したいのパフォーマンスを向上するためです。 一方向に適用すると、_mm_crc32_u64ループ内で、各チャンクに64ビットの値が入ります。しかし、私はそれがパフォーマンスの面で有益ではないと思います。
_mm_crc32_u64より高速な256ビットチャンク(または128ビット)でCRCを計算する最も良い方法は何ですか?
インテルの詳細はこちら[http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/crc-iscsi-polynomial-crc32-instruction-paper .pdf)。 "_mm_crc32_u64より速い"が起こることはありませんが、それを使用する素朴な方法(ちょうどそれをチェーンする)と速い方法(リンクを参照してください、それ自身と平行して使用されるcrc32) – harold