-
Notifications
You must be signed in to change notification settings - Fork 971
Document vectorized STL algorithms #5789
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
base: main
Are you sure you want to change the base?
Conversation
@AlexGuteniev : Thanks for your contribution! The author(s) and reviewer(s) have been notified to review your proposed change. |
Learn Build status updates of commit 814cd8f: ❌ Validation status: errorsPlease follow instructions here which may help to resolve issue.
docs/standard-library/toc.yml
docs/standard-library/vectorized-stl-algoritms.md
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
Learn Build status updates of commit 4272d7e: ❌ Validation status: errorsPlease follow instructions here which may help to resolve issue.
docs/standard-library/toc.yml
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
Learn Build status updates of commit cc385c5:
|
File | Status | Preview URL | Details |
---|---|---|---|
docs/standard-library/toc.yml | Details | ||
docs/standard-library/vectorized-stl-algoritms.md | ✅Succeeded |
docs/standard-library/toc.yml
- Line 1654, Column 9: [Warning: file-not-found - See documentation]
Invalid file link: 'vectorized-stl-algorithms.md'.
For more details, please refer to the build report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
Learn Build status updates of commit 86a3e29: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why does github subscribe me to the issue when I start writing a review, not at the end when it's public?
|
||
Generally, programs either benefit in performance from this manual vectorization or are unaffected by it. In case of any problem, you can disable manual vectorization by defining `_USE_STD_VECTOR_ALGORITHMS` macro set to 0. | ||
|
||
The following algorithms have manual vectorization controlled via `_USE_STD_VECTOR_ALGORITHMS` macro: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having such a list kinda makes me nervous; if someone vectorizes a new function and forgets adding it here, we've got problems. This is very easy when it isn't even in the ms-stl repo.
Also what kind of sorting is that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know,
Plus it is accurate for like the latest Preview, not latest production.
But I still think providing an approximation here is useful and better than no list.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approximately standard order or cppreference.com order.
Learn Build status updates of commit 53ae06f: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
AFAIK new topics can't be added via the public repo and needs to be ported manually. Could check with @TylerMSFT for further comments. |
If you approve the new content in this PR, the commits must be moved to the private repository for automated checks and publishing. After you move the commits, close this PR ( #label:"aq-pr-triaged" |
Thank you for the content, @AlexGuteniev. Appreciate you taking the time to contribute to the docs. |
Learn Build status updates of commit 6c10dc3: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
Co-authored-by: Rageking8 <[email protected]>
Learn Build status updates of commit b1600d8: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
Co-authored-by: Rageking8 <[email protected]>
Learn Build status updates of commit becc300: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this contribution!
I did a preliminary pass, focused primarily on the clarity of the text.
I'll defer to @StephanTLavavej for the technical details.
Co-authored-by: David Justo <[email protected]>
Learn Build status updates of commit 053dac2: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
Co-authored-by: David Justo <[email protected]>
Learn Build status updates of commit 8f4b39f: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
Co-authored-by: StephanTLavavej <[email protected]>
Learn Build status updates of commit 6d98a0e: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
Learn Build status updates of commit 59f9977: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
Learn Build status updates of commit ce5dca4: ✅ Validation status: passed
For more details, please refer to the build report. |
PRMerger Results
|
|
||
Generally, programs either benefit in performance from this manual vectorization or are unaffected by it. In case of any problem, you can disable manual vectorization by defining the `_USE_STD_VECTOR_ALGORITHMS` macro set to 0. It defaults to 1 on x64 and x86, which means that manually vectorized algorithms are enabled by default. | ||
|
||
When overriding `_USE_STD_VECTOR_ALGORITHMS` make sure to set the same value for all linked translation units that use algorithms. Reliable way to achieve that is using project properties rather than defining it in the source. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you provide the steps for how to set this in the project. Since that's the main direction we want them to go, we should show them how. It also helps reassure the reader that they are doing it right if they aren't totally clear on what it means to set project properties.
@AlexGuteniev , I very much appreciate you doing the work to write this new topic. Please @mention me when you are ready for me to port this to the private repo so I can stage it and get it published. |
Fixes microsoft/STL#5556.
The intention is to make users aware of manual vectorization and
_USE_STD_VECTOR_ALGORITHMS
and_USE_STD_VECTOR_FLOATING_ALGORITHMS
macros.