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

travis: added ppc64le and s390x test. #607

Closed
wants to merge 2 commits into from

Conversation

junaruga
Copy link
Contributor

@junaruga junaruga commented May 17, 2020

This PR is to add ppc64le and s390x test to Travis CI. There are 2 commits. 1st commit is to rebase the commits used in #604 .

Travis is ok on my forked repository here.

It seems Debian minimap2 deb package already has both ppc64le and 390x builds using simde in their Makefile. I am not sure if we should set -fopenmp-simd -DSIMDE_ENABLE_OPENMP flag in Makefile.simde like Debian's one is doing.

@mbrcic
Copy link
Contributor

mbrcic commented May 18, 2020

Flags -fopenmp-simd -DSIMDE_ENABLE_OPENMP under SIMDe do indeed bring performance gains for ppc64le and s390x, assuming there is OpenMP support. These flags help when SIMDe does not know the translation to platform-native intrinsics so instead adds vectorization hints. In that case, OpenMP SIMD gives the best performance.

For ARM NEON, there should be no gains, because SSE4.1 and SSE2 are (almost?) completely transformed to NEON intrinsics.

@mr-c
Copy link

mr-c commented May 18, 2020

@mbrcic Luckily -fopenmp-simd/-qopemp-simd only require compiler support (gcc/icc respectively) and not the entire OpenMP API :-)

@junaruga
Copy link
Contributor Author

junaruga commented May 18, 2020

@mbrcic thanks for the detailed explanation. I found an explanation of -fopenmp-simd -DSIMDE_ENABLE_OPENMP in simde README.

For best performance, in addition to -O3 (or whatever your compiler's equivalent is), you should enable OpenMP 4 SIMD support by defining SIMDE_ENABLE_OPENMP before including any SIMDe headers, and enabling OpenMP support in your compiler.

I also found the explanation of -fopenmp-simd at gcc mailing list. That is why -fopenmp-simd is better than -fopenmp. I remember that in gcc 4.8 or 4.9 ppc64le version -fopenmp-simd is not supported while -fopenmp is supported.

@junaruga
Copy link
Contributor Author

@lh3 Could you check this PR? Here is the Travis result: https://travis-ci.org/github/lh3/minimap2/builds/688098723 . Thanks.

@lh3
Copy link
Owner

lh3 commented Jun 16, 2021

Closing as we are moving away from Travis. Thanks anyway.

@lh3 lh3 closed this Jun 16, 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.

4 participants