pydata / bottleneck

Fast NumPy array functions written in C
BSD 2-Clause "Simplified" License
1.07k stars 103 forks source link

Build failing for arm64 #394

Open odidev opened 2 years ago

odidev commented 2 years ago

I have been working on installing and testing bottleneck package for amd64 and arm64 architectures. I am getting the below error on arm64 architecture for the command python setup.py build_ext --inplace

aarch64-linux-gnu-gcc -pthread -E -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/python3.8 -I/usr/include/python3.8 -o _configtest.i _configtest.c 
_configtest.c:1:10: fatal error: emmintrin.h: No such file or directory 

    1 | #include <emmintrin.h> 
      |          ^~~~~~~~~~~~~ 
compilation terminated. 

Further I explored about the issue, got that ARM CPUs do not support this.

Could you please provide your feedback regarding this.

Log for reference: https://github.com/odidev/bottleneck/runs/4380495013?check_suite_focus=true

odidev commented 2 years ago

Is there any update for the above issue?

rdbisme commented 2 years ago

Hello @odidev, no updates on this. We've recently been promoted as maintainers (see #388) to give a help to maintain the package. We've published a roadmap there. We'll try to see if fixing this can be taken into account once we have a working CI also for aarch64.

odidev commented 2 years ago

@rdbisme Thanks for update.

blthayer commented 2 years ago

Hello,

I am also interested in an ARM build for bottleneck. It looks like @odidev was able to get this to succeed:

Is there any plan for official bottleneck support for ARM?

rdbisme commented 2 years ago

Hello @blthayer, I think it's for sure interesting to have support for ARM as soon as it doesn't impact performance on other architectures. Pull requests welcome! :) I'd say to split the contribution as:

  1. Adding missing code needed to allow build on armv7 and aarch64 and Apple Silicon
  2. Ensure that the added code doesn't impact other architectures
  3. Tweaking CI to test, build and release for ARM