Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement support for Intel crc32 instruction (SSE 4.2) #309

Closed
wants to merge 1 commit into from

Conversation

vadimskipin
Copy link

Added support for hardware crc32c instruction.

@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project, in which case you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed, please reply here (e.g. I signed it!) and we'll verify. Thanks.


  • If you've already signed a CLA, it's possible we don't have your GitHub username or you're using a different email address. Check your existing CLA data and verify that your email is set on your git commits.
  • If you signed the CLA as a corporation, please let us know the company's name.

@vadimskipin
Copy link
Author

I signed it!

@googlebot
Copy link

CLAs look good, thanks!

@AGSaidi
Copy link

AGSaidi commented Aug 23, 2016

This patch breaks support for non-x86 systems as written

@cmumford
Copy link
Contributor

Yes, noticed the break. In the process of manually pulling this fix in support for non x86 (and older CPU's) has been fixed. The change is currently stalled while waiting on something unrelated, and will hopefully be unblocked soon.

cmumford pushed a commit that referenced this pull request Feb 28, 2017
This change authored by vadimskipin and submitted via:

    #309

Changes made to support iOS builds and other architectures
without support for SSE 4.2.

db_bench reports original crc32 speed at:

    crc32c : 3.610 micros/op; 1082.0 MB/s (4K per op)

with this change performance has increased to:

    crc32c : 0.843 micros/op; 4633.6 MB/s (4K per op)

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148694935
@cmumford
Copy link
Contributor

Well it took forever (sorry), but we've finally landed this. It needed some changes, some of which could have been done by @vadimskipin, but a few tweaks were more easily made in the Google repo which is why this pull request isn't being merged the GitHub way.

Thanks for this pull request @vadimskipin.

@cmumford cmumford closed this Feb 28, 2017
@fanquake fanquake mentioned this pull request Apr 2, 2017
3 tasks
teambean pushed a commit to teambean/TestNet21 that referenced this pull request Jul 31, 2020
This change authored by vadimskipin and submitted via:

    google/leveldb#309

Changes made to support iOS builds and other architectures
without support for SSE 4.2.

db_bench reports original crc32 speed at:

    crc32c : 3.610 micros/op; 1082.0 MB/s (4K per op)

with this change performance has increased to:

    crc32c : 0.843 micros/op; 4633.6 MB/s (4K per op)

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148694935
maochongxin pushed a commit to maochongxin/leveldb that referenced this pull request Jul 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants