fastlib / fCWT

The fast Continuous Wavelet Transform (fCWT) is a library for fast calculation of CWT.
Apache License 2.0
263 stars 53 forks source link

MacBook M1 "zsh: illegal hardware instruction" #37

Open Curatum opened 1 year ago

Curatum commented 1 year ago

When I try to run the python example code it does not execute and I get the warning: zsh: illegal hardware instruction

Specs:

Mac M1 Ventura 13.4 cmake 3.26.4 numpy 1.24.3 linbomp 16.0.5 clang 14.0.3

felixdollack commented 1 year ago

@Curatum do you have any more information on this? I can build the library and run the examples on Mac M2 (Ventura 13.2.1) with Python 3.10.

fastlib commented 1 year ago

@Curatum, do you have any more information as @felixdollack asked? If not, we will close this issue for administrative reasons.

Curatum commented 1 year ago

Sorry. I had some turbulent weeks and completely overlooked the answer. I have no computer science background so maybe I am actually the problem. Is it sufficient to run pip install fcwt or do I have to manually build the library? I tried both and it did not work for me, but I will try again tomorrow. Sorry again for the late answer

fastlib commented 1 year ago

Don't worry. Thanks for the quick response. Can you post the error message you get when installing fCWT via pip?

Curatum commented 1 year ago

I get no error message, even after uninstalling and installing it again. Still, the error persists while executing the code. I am now switching to a Windows machine, where it worked just fine. For me, that's the problem solved for now, but if you have any interest in finding the fault, I am happy to help and try some things.

Other than that, thank you for the amazing library. It is really a game changer :).

I have one more question: What kind of padding do you recommend for an aperiodic sensor signal? Because from what I read, no padding is included in the fcwt right?

stellarpower commented 1 year ago

I think you probably need to be building dual-arch binaries. Although the fact that pip installs happily would indicate it's happy with the architecture.

As an aside, it is possible to get a SIGILL when there's nothing wrong with the build. If I forget to return a value from a function and get a warning that I don't see, this is how clang often implements to undefined behaviour. Can make me scratch my head for a bit until I see the warning on my scrollback.