Hacker News new | past | comments | ask | show | jobs | submit login

I wonder how fast can someone get it to run on Intel's 12 generation core CPU.

It seems a good idea to start a Code Golf competition.




Likely as much noise as signal, but anyway:

I'm using an 8th(?) generation Intel, i7-8665U.

https://github.com/htot/crc32c has some interesting implementations of CRC32 algorithms of different speeds, the highest I see is (function, aligned, bytes, MiB/s) :

    crc32cIntelC     true 16 3907.613
    crc32cIntelC     true 64 15096.758
    crc32cIntelC     true 128 24692.803
    crc32cIntelC     true 192 22732.392
    crc32cIntelC     true 256 16233.397
    crc32cIntelC     true 288 16748.952
    crc32cIntelC     true 512 19862.039
    crc32cIntelC     true 1024 22373.350
    crc32cIntelC     true 1032 22482.031
    crc32cIntelC     true 4096 24690.531
    crc32cIntelC     true 8192 24992.827
So pushing 25GiB/s on a 3ish year old CPU.


FYI, CRC32C is not the same checksum as CRC32. CRC32C is used in iSCSI, btrfs, ext4. CRC32 is used in Ethernet, SATA, gzip. Intel's SSE4.2 provides an instruction implementing CRC32C but not CRC32. ARM defines instructions for both.

This article seems to miss that distinction but appears to be testing CRC32, so it's not quite correct to compare against something using Intel's CRC32C instruction.


Core i7-12700K:

  crc32cIntelC     true 64 26210.561
  crc32cIntelC     true 128 35870.309
  crc32cIntelC     true 192 36850.224
  crc32cIntelC     true 256 30343.690
  crc32cIntelC     true 288 30671.327
  crc32cIntelC     true 512 32443.251
  crc32cIntelC     true 1024 34654.719
  crc32cIntelC     true 1032 34265.440
  crc32cIntelC     true 4096 38111.089
  crc32cIntelC     true 8192 38634.925


I'm using i7-4790 (7 year old cpu) and the numbers are slightly better. Maybe because it's a desktop.

    crc32cIntelC        true    16  4025.334
    crc32cIntelC        true    64  15749.095
    crc32cIntelC        true    128 26608.064
    crc32cIntelC        true    192 25828.486
    crc32cIntelC        true    256 17448.436
    crc32cIntelC        true    288 18336.381
    crc32cIntelC        true    512 22635.590
    crc32cIntelC        true    1024    24654.248
    crc32cIntelC        true    1032    24180.107
    crc32cIntelC        true    4096    28251.903
    crc32cIntelC        true    8192    28768.134


I don't think they will hit 75GB/s because Intel doesn't make that kind of memory throughput available to a single core.


https://github.com/komrad36/CRC

I measured it on my computer to run at 32GB/s, i7 4770k.





Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: