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

Convert Intel package simd vectorization directives to OpenMP standard #2849

Merged
merged 3 commits into from
Jul 27, 2021

Conversation

wmbrownIntel
Copy link
Collaborator

Summary

This converts SIMD vectorization directives from cilk to the OpenMP standard within the Intel package. Data alignment for vectorization still uses Intel-specific pragmas due to lack of a 1:1 mapping. Currently directives are still only enabled for Intel compilers, but this is a step towards more general support. The old directives are still in place and used with classic Intel compilers due to functionality issues with OpenMP directives. Unfortunately, due to differences in how the preprocessor treats pragmas, this is somewhat messy.

This also includes a commit that adds support back for nofdotr for the Intel package in the case when newton is off (and correct results should be obtained). Otherwise, newton off will fail regardless.

Related Issue(s)

This makes some changes from PR #2736 to support newton off with the Intel package.

Author(s)

Mike Brown (Intel)

Licensing

By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

Backward Compatibility

N/A

Implementation Notes

N/A

Post Submission Checklist

  • The feature or features in this pull request is complete
  • Licensing information is complete
  • Corresponding author information is complete
  • The source code follows the LAMMPS formatting guidelines
  • Suitable new documentation files and/or updates to the existing docs are included
  • The added/updated documentation is integrated and tested with the documentation build system
  • The feature has been verified to work with the conventional build system
  • The feature has been verified to work with the CMake based build system
  • Suitable tests have been added to the unittest tree.
  • A package specific README file has been included or updated
  • One or more example input decks are included

Further Information, Files, and Links

…hanging some more depracated vector intrinsics. Data alignment directives for compiler vectorization are still mostly intel specific.
@akohlmey akohlmey merged commit b1331f5 into lammps:master Jul 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants