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

Is this program considering supporting the aarch64 architecture? #44

Closed
z4668640 opened this issue Nov 9, 2023 · 9 comments · Fixed by #45
Closed

Is this program considering supporting the aarch64 architecture? #44

z4668640 opened this issue Nov 9, 2023 · 9 comments · Fixed by #45

Comments

@z4668640
Copy link

z4668640 commented Nov 9, 2023

As the title shows, I now need to run it on an ARM chip. How can I compile it successfully?
image
image

@traviswheeler
Copy link
Member

Thanks for your interest in this implementation of NINJA. This repository is an "almost complete" reimplementation of the Java implementation at this site. The software generally works, but there remain a couple of small bugs, and the project is on hold (and not under active development) while we await the time to wrap it up to completion. For now, your best bet is probably to use the Java version listed in the previous sentence.

I'll leave this issue open, since this is a feature we'd like to support when we wrap things up

@z4668640
Copy link
Author

Thanks for your interest in this implementation of NINJA. This repository is an "almost complete" reimplementation of the Java implementation at this site. The software generally works, but there remain a couple of small bugs, and the project is on hold (and not under active development) while we await the time to wrap it up to completion. For now, your best bet is probably to use the Java version listed in the previous sentence.

I'll leave this issue open, since this is a feature we'd like to support when we wrap things up

Thank you for your reply, but I'm afraid not. Since your software is a dependency on another software, I expect this to be difficult to migrate. https://github.com/Dfam-consortium/RepeatModeler

@traviswheeler
Copy link
Member

Ah, yes. For that dependency, the specific release (0.98-cluster_only) of NINJA is the right one.

Have you tried compiling under Rosetta (https://support.apple.com/en-us/HT211861)?

@z4668640
Copy link
Author

Ah, yes. For that dependency, the specific release (0.98-cluster_only) of NINJA is the right one.

Have you tried compiling under Rosetta (https://support.apple.com/en-us/HT211861)?

No, I'm not using an apple. I use a Linux system. I'll look into the problem myself first. Thank you.

@z4668640
Copy link
Author

Ah, yes. For that dependency, the specific release (0.98-cluster_only) of NINJA is the right one.

Have you tried compiling under Rosetta (https://support.apple.com/en-us/HT211861)?

I may have found a solution to this problem.

  1. First we need to remove the "-mssse3" parameter from line 36 of the Makefile
  2. Second, we need to replace lines 8, 9, and 10 of the distancecalculater.hpp file with the following
#include <xmmintrin.h>        /* SSE  */
#include <emmintrin.h>        /* SSE2 */
#include <tmmintrin.h>      /* SSE3 */

replace with
#include "sse2neon.h"
3. Third, download the sse2neon.h file from this address and place it in the same directory as the DistanceCalculator.hpp file.
sse2neon.h The download address is as follows:
https://github.com/DLTcollab/sse2neon/blob/master/sse2neon.h

@z4668640
Copy link
Author

I refer to the Intel's official description: https://github.com/DLTcollab/sse2neon

@martin-g
Copy link
Contributor

I've opened a PR that makes the changes suggested by @z4668640 at #44 (comment)

@z4668640
Copy link
Author

I've opened a PR that makes the changes suggested by @z4668640 at #44 (comment)

Thank you very much for your help. But I must warn you that my method is only one possibility. He hasn't been rigorously tested.

@martin-g
Copy link
Contributor

I have used this solution in several other projects and it worked well!

I also added a CI job that runs make check on Linux ARM64!

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

Successfully merging a pull request may close this issue.

3 participants