-
Notifications
You must be signed in to change notification settings - Fork 109
OpenMP SIMD meta-option #1112
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
Comments
Are simd directives part of the standard? [dependencies]
openmp = ">=5.1" # if package uses SIMD another option would be to use the recently introduced compiler introspection #1051 to just check if the current compiler supports them, and add them by default if so. imho they should not be seen as a separate package (which they are not). |
SIMD directives are part of the standard since OpenMP 4.0. By default options like The reason there are separate flags is if only the SIMD directives are needed, it isn't necessary to link against an OpenMP runtime library (i.e. |
I found the place where it is stated for GNU compilers,
And for Intel Fortran Compiler,
I guess the better idea would be to promote the key-value pair into an inline table (borrowing from the answer here): openmp = "*" to openmp = { version=">=5.0", simd-only=true} One could extend this to include offloading to accelerator devices: openmp = { version=">=5.0", offload = true} I would need to survey what other OpenMP features can be controlled individually using compiler flags. |
Description
Some fpm packages may like to use OpenMP SIMD directives for vectorization.
Most compilers have specific flags to enable these separately from the multi-threading and target offloading.
OpenMP SIMD Flags
-fopenmp-simd
-qopenmp-simd
-fopenmp-simd
(not sure if implemented yet)-h omp_simd
or-fopenmp-simd
Possible Solution
Could this be added to the meta-package dependencies?
Additional Information
The text was updated successfully, but these errors were encountered: