4 ms·
Both the article and cperciva use the algorithmic structure of CRC; but the article's trick still runs front-to-back. You need a "combine chunks" operation if y
by JoachimSchipper 12y ago
Both the article and cperciva use the algorithmic structure of CRC; but the article's trick still runs front-to-back. You need a "combine chunks" operation if you want to outsource part of the work to another processor.
- seiji 12y agoIt exists as well, but isn't mentioned in the article. The article just cares about single process speed-up. The other "merge CRCs" solution starts out resembling: /* Return the CRC-64 of two sequential blocks, where crc1 is the CRC-64 of the first block, crc2 is the CRC-64 of the second block, and len2 is the length of the second block. */ uint64_t crc64_combine(uint64_t crc1, uint64_t crc2, uintmax_t len2)