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

SmithWaterman result inconsistency by optimization level #202

Open
wook-choi opened this issue Mar 12, 2024 · 0 comments
Open

SmithWaterman result inconsistency by optimization level #202

wook-choi opened this issue Mar 12, 2024 · 0 comments

Comments

@wook-choi
Copy link

wook-choi commented Mar 12, 2024

Recently while testing SmithWaterman I've encountered inconsistent result between two machines - one of them is 12th Gen Intel(R) Core(TM) i7-12700 and the other is Intel(R) Xeon(R) Gold 6348 CPU @ 2.60GHz.

First, I comfirmed that invoking SmithWaterman i7 CPU flows into AVX2 and Xeon CPU flows into AVX512.

And I tried various optimization level through CMake build type such as debug/release/releasewithdebinfo.
Then found giving -O2+ optimization option for AVX512 on Xeon CPU breaks result consitency.
(I'm using GCC 10.2.1 on CentOS 7)

Below comparison result among platform / instruction / optimization:

i7 AVX2 with -O0 == i7 AVX2 with -O2
i7 AVX2 with -O0 == Xeon AVX2 with -O0 (Xeon forced to use AVX2)
i7 AVX2 with -O0 == Xeon AVX2 with -O2 (Xeon forced to use AVX2)
i7 AVX2 with -O0 == Xeon AVX512 with -O0

but

i7 AVX2 with -O0 != Xeon AVX512 with -O2

I wander if this is known issue so optimization should be avoided, or I'm missing something.

Thank in advnace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant