-
Notifications
You must be signed in to change notification settings - Fork 112
Open
Labels
enhancementNew feature or requestNew feature or request
Description
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
Compiler | SIMD Flag |
---|---|
GNU (gfortran) | -fopenmp-simd |
Intel (ifx) | -qopenmp-simd |
Flang | -fopenmp-simd (not sure if implemented yet) |
Cray (crayftn) | -h omp_simd or -fopenmp-simd |
NVIDIA (nvfortran) | No specific flag available |
LFortran | ? |
Possible Solution
Could this be added to the meta-package dependencies?
name = "my_openmp_package"
[dependencies]
openmp = "*"
openmp-simd = "*"
Additional Information
- SIMD Directives: https://www.openmp.org/spec-html/5.1/openmpsu49.html
- SIMD Vectorization with OpenMP: https://blog.rwth-aachen.de/hpc_import_20210107/attachments/28344675/30867475.pdf
- Explicit Vector Programming in Fortran: https://www.intel.com/content/www/us/en/developer/articles/technical/explicit-vector-programming-in-fortran.html
- OpenMP SIMD in Visual C++: https://learn.microsoft.com/de-de/cpp/parallel/openmp/openmp-simd?view=msvc-170#openmp-simd-in-visual-c
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request