Skip to content

Commit 602e0e9

Browse files
committed
Improve docs with more VPCLMULQDQ details
1 parent 5bcf118 commit 602e0e9

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,12 @@ be chosen based on CPU feature at runtime.
4848
|:----------------------------|--------------------:|---------------------:|
4949
| [crc 3.0.1] | 0.5 GiB/s | 0.3 GiB/s |
5050
| crc64fast-nvme (table) | 2.3 GiB/s | 1.8 GiB/s |
51-
| crc64fast-nvme (simd) | 28.2 GiB/s | 20.0 GiB/s |
51+
| crc64fast-nvme (SIMD) | 28.2 GiB/s | 20.0 GiB/s |
52+
| crc64fast-nvme (VPCLMULQDQ) | 52 GiB/s | n/a |
5253

5354
[crc 3.0.1]: https://docs.rs/crc/3.0.1/crc/index.html
5455

55-
## Experimental VPCLMULQDQ support
56+
## Experimental "Vector Carry-Less Multiplication of Quadwords" (VPCLMULQDQ) support
5657

5758
Using Rust's support for [AVX512 intrinsics](https://github.com/rust-lang/rust/issues/111137), specifically [VPCLMULQDQ](https://doc.rust-lang.org/src/core/stdarch/crates/core_arch/src/x86/vpclmulqdq.rs.html), we can massively improve throughput for x86_64 processors which support them (Intel Ice Lake+ and AMD Zen4+).
5859

@@ -79,6 +80,7 @@ cargo +nightly build --features="vpclmulqdq" -r
7980
* [StackOverflow PCLMULQDQ CRC32 question](https://stackoverflow.com/questions/21171733/calculating-constants-for-crc32-using-pclmulqdq) - Insightful question & answer to CRC32 implementation details.
8081
* [AWS S3 announcement about CRC64-NVME support](https://aws.amazon.com/blogs/aws/introducing-default-data-integrity-protections-for-new-objects-in-amazon-s3/)
8182
* [AWS S3 docs on checking object integrity using CRC64-NVME](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
83+
* [Vector Carry-Less Multiplication of Quadwords (VPCLMULQDQ) details](https://en.wikichip.org/wiki/x86/vpclmulqdq)
8284

8385
## License
8486

0 commit comments

Comments
 (0)