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

HMMER4 doesn't handle POWER architecture when booted in big-endian mode #120

Open
npcarter opened this issue Jan 26, 2017 · 4 comments
Open
Labels
H4 In HMMER4 development

Comments

@npcarter
Copy link
Member

HMMER currently only works on POWER when booted in little-endian mode.

We should have big-endian versions of the filters and similar "detect at run-time" switching to the way we handle AVX and AVX-512.

Priority: low, just needs to get done before release

@cryptogenomicon cryptogenomicon added the H4 In HMMER4 development label Jun 8, 2018
@lgbaldoni
Copy link

Indeed, 3.2 build fails on ppc64be.
Logfile if required.

@cryptogenomicon cryptogenomicon changed the title HMMER doesn't handle POWER architecture when booted in big-endian mode HMMER4 doesn't handle POWER architecture when booted in big-endian mode Jun 8, 2018
@cryptogenomicon
Copy link
Member

Actually, yours is a different issue. Nick's comment is specific to HMMER4, which has a prototype ppc64le implementation but no ppc64be yet. HMMER3 is the opposite: a ppc64be implementation but no ppc64le. We do intend for HMMER3.2 to build fine on ppc64be, so you're seeing a bug.

I think it's the same bug you reported in iss#141. Notice how the compiler is complaining about -maltivec being needed, but ./configure correctly included -maltivec. What's happening is that ./configure is lumping VMX_CFLAGS into its report, and the VMX_CFLAGS are only being included in compilation of vector-specific code in impl_vmx. This isn't going to be sufficient.

I don't currently have a ppc64be system available for test. To see if my suspicion is right, could you do:

    make clean
    make CFLAGS="-O3 -maltivec"

and see if that fixes the problem?

@lgbaldoni
Copy link

I see this now.

cryptogenomicon added a commit that referenced this issue Jun 10, 2018
All compilation commands need SSE_CFLAGS, VMX_CFLAGS. Vector code is
not as well separated in H3 as in H4. impl_{sse,vmx.h} are included in
other .c files, not just in impl_{sse,vmx} code.

Keep PTHREADS_CFLAGS, SSE_CFLAGS, VMX_CFLAGS separate in Makefiles,
rather than adding them to CFLAGS, so user can override CFLAGS without
messing up autoconf of pthreads, simd.

CFLAGS couldn't be set externally; user setting was being overridden
in ./configure.

Updates version to 3.2.1-dev in ./configure.
@cryptogenomicon
Copy link
Member

HMMER3 ppc64be compile problems fixed in e397297 along with issue #141.

Leaving this issue open, because it still applies to HMMER4 ppc64be, where we have no port yet.

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

No branches or pull requests

3 participants