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

feat(storage-proofs-porep): implement prefetch macro for aarch64 #1294

Merged
merged 3 commits into from
Oct 1, 2020
Merged

feat(storage-proofs-porep): implement prefetch macro for aarch64 #1294

merged 3 commits into from
Oct 1, 2020

Conversation

dgbo
Copy link
Contributor

@dgbo dgbo commented Sep 28, 2020

Co-authored-by: Wang Maozhang [email protected]

This implement prefetch marco for aarch64 in storage-proofs/porep/src/stacked/vanilla/macros.rs, with prefetch hints merged into core_arch library rust-lang/stdarch-PR918 and rust-lang/rust-PR77259.

Patch delivers about 23% performance improvement in (lotus-bench seal: preCommit phase 1) with --sector-size=512MB/32GiB on Kunpeng920 aarch64 server.

@cryptonemo
Copy link
Collaborator

Thanks! Will see if we can find a tester for this.

@dgbo
Copy link
Contributor Author

dgbo commented Sep 28, 2020

Thanks! Will see if we can find a tester for this.

The result on our server are very good.
Looking forward to see the results on other aarch64 based platforms.

Thanks.

@@ -1,6 +1,8 @@
//requires nightly, or later stable version
//#![warn(clippy::unwrap_used)]

#![cfg_attr(target_arch = "aarch64", feature(stdsimd))]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this means that aarch64 now requires a nightly compiler, which is fine, but should be documented

Copy link
Contributor Author

@dgbo dgbo Sep 29, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick review.

Seems the nightly compiler requirement has been documented in README.md already:

275 ## Building for Arm64
276
277 In order to build for arm64 the current requirements are
278
279 - nightly rust compiler
280
281 Example for building `filecoin-proofs`
282
283 ```
284 $ rustup +nightly target add aarch64-unknown-linux-gnu
285 $ cargo +nightly build -p filecoin-proofs --release --target aarch64-unknown-linux-gnu
286 ```

Do we need extra comments in storage-proofs/porep/src/lib.rs before the cfg_attr line or elsewhere? Maybe something like //requires nightly, or later stable version to build for aarch64?

Best Regards.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ha, I forgot about that, perfect thank you!

Copy link
Contributor

@dignifiedquire dignifiedquire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks

@dignifiedquire dignifiedquire changed the title Implement prefeth macro for aarch64 feat(storage-proofs-porep): implement prefetch macro for aarch64 Oct 1, 2020
@dignifiedquire dignifiedquire merged commit 675fc33 into filecoin-project:master Oct 1, 2020
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.

3 participants