Implemented Codspeed testing and no_std functionality#14
Open
jurskidl wants to merge 20 commits into
Open
Conversation
This will allow regression testing to be performed to test performance changes in a sanitized environment
Contributor
Author
|
I believe the CodSpeed failed to run since you don't have a codspeed token associated with your library. As stated before, please look at my implementation as an example. |
Now the implementation should allow the user to choose whether to use the standard library or not.
This benchmark will serve as a comparison for suggesting the inlining of slightly larger functions
Contributor
Author
|
I have added a feature to allow the flag --nightly to be used. This enables Simd at the users discretion. If no feature is passed, it defaults to not using this. This does technically move the library to the nightly branch until Simd is fully stable. If this is not desired, We can create a nightly fork that does this until the feature is stable. For this, We can utilize the functionality until [Reworked Regional coefficients to match the nightly fork for easier merging] (9b02639). This will allow the fork to be easily implemented. |
Conditionally add portable_simd feature if --feature nightly is passed. This should allow the crate to be compiled via the stable and nightly toolchains
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Codspeed allows for regression testing in a sanitized and standardized environment. It allows speed improvements to be directly compared. You may need to create your own account (it is free and easy with a github account) to perform it. If you want to see the how it would look, feel free to look at mine for this library. You can compare runs via the 'runs' tab and selecting the ones you want to compare. You can also set minimum thresholds that it will identify as a change (mine is set to 10% which appears to sometimes allow noise in this library since it the times are so small).
The no_std functionality right now is relatively simply implemented by pulling the intrinsics library directly. This is what the std library uses, but further upstream. This may be able to be improved, but this is an initial implementation with an immeasurable impact on performance.