pierrebarbera / epa-ng

Massively parallel phylogenetic placement of genetic sequences
GNU Affero General Public License v3.0
77 stars 7 forks source link

MacOS M1 neon support #49

Open jianshu93 opened 1 year ago

jianshu93 commented 1 year ago

Hello Team,

It is not supported on aarch64 or (arm64) platform such as macOS M1? Any plan to support it in the future?

Thanks, Jianshu

pierrebarbera commented 1 year ago

Hi Jianshu, I think you should be able to run it on apple silicon using rosetta, which allows x86 programs to run. The performance impact should be minimal.

Pierre

jianshu93 commented 1 year ago

Hello Pierre, Yes I can run it using rosetta after trying. Just wondering whether there will be neon instruction support such as x86, which will be faster and more convenient for us to use.

Thanks,

Jianshu

pierrebarbera commented 1 year ago

Jianshu,

there is no plans from my side to add apple silicon native vector intrinsics, no. It was my impression that when processing data large enough for it to matter, users were running that on supercomputers. Also I no longer work in academia and can't justify the time investment.

Pierre

jianshu93 commented 1 year ago

Hello again, the brew install channel is not working for the same reason I think because I have no problem on intel MACs?

Last 15 lines from /Users/jianshuzhao/Library/Logs/Homebrew/epa-ng/02.make: cpuid_count(leaf, subleaf, __eax, ebx, *ecx, *edx); ^ /Library/Developer/CommandLineTools/usr/lib/clang/14.0.3/include/cpuid.h:259:11: note: expanded from macro 'cpuid_count' : "=a"(eax), "=r" (ebx), "=c"(ecx), "=d"(edx) \ ^ /tmp/epa-ng-20230918-23224-12j46qj/epa-ng-0.3.8/build/genesis_unity_sources/lib/all.cpp:27664:9: error: invalid output constraint '=a' in asm cpuid_count( 1, 0, info[0], info[1], info[2], info[3] ); ^ /Library/Developer/CommandLineTools/usr/lib/clang/14.0.3/include/cpuid.h:259:11: note: expanded from macro '__cpuid_count' : "=a"(eax), "=r" (ebx), "=c"(ecx), "=d"(edx) \ ^ 5 errors generated. make[2]: [libs/genesis/lib/genesis/CMakeFiles/genesis_lib_static.dir/////genesis_unity_sources/lib/all.cpp.o] Error 1 make[1]: [libs/genesis/lib/genesis/CMakeFiles/genesis_lib_static.dir/all] Error 2 make: *** [all] Error 2

Thanks

Jianshu

lczech commented 1 year ago

Hi @jianshu93,

are those errors occurring on intel MAC? It looks like the internal C++ standard library files are causing the error here. Have you tried @pierrebarbera suggestion to use the rosetta tool to solve this?

Cheers Lucas